Skip to content

Conversation

@honzajavorek
Copy link
Collaborator

@honzajavorek honzajavorek commented Sep 8, 2025

The aim of this PR is to publish the new JS course as described in the PR description of #1584, and to unlist the old JS course. The old one should be still accessible for a grace period.

Replacing the old JS course with a new one, which is identical to the Python course, has been previously sanctioned by both Ondra and Michał.

The Plan

  • The scraping_basics_javascript root leads to the new JS course.
  • The pages of the old JS course move to legacy/web-scraping-for-beginners. It's gonna be a read-only archive. Must be noindex to avoid cannibalization issues.
  • The web-scraping-for-beginners, i.e. the root of the old JS course URLs, leads to redirects which take people to corresponding pages in the new JS course. This lets us use the SEO juice from the old URLs.
  • The redirects add #old-js-course to the URL. The new JS course pages contain a component which, if #old-js-course is present in the URL, displays a commemorative plaque about the change and link the old JS course. This improves UX: "Hey, you have until 1.1.2026 to go through this course. After that please refer to the newly updated JS course ."
  • At some point in future, we'll nuke the archive of the old JS course and link Internet Archive instead in the commemorative plaque.

The Plan is a result of a long discussion between Michał, Aleš, and me, which takes into account both the UX of existing users of the JS course and SEO.

Related Work


Note

Publishes the new JS course, archives the old one with redirects and an on-page notice, and updates links, content, and Nginx rewrites across the docs.

  • Academy: New JS course rollout
    • Publishes academy/webscraping/scraping_basics_javascript/* (new slugs, content, and index) and updates internal references to it.
    • Archives the old JS course under academy/webscraping/scraping_basics_legacy/* with noindex and a legacy notice.
    • Adds src/components/LegacyJsCourseAdmonition.jsx and integrates it into new course pages to show a notice when ?legacy-js-course= is present.
    • Updates course metadata (titles/sidebar labels) in Expert/Anti‑scraping lessons and adds caution notes where content depends on the legacy course.
    • Updates homepage card and other references to point to '/academy/scraping-basics-javascript'.
  • Routing/Redirects (Nginx)
    • Redirects old JS course paths ^/academy/web-scraping-for-beginners... to '/academy/scraping-basics-javascript' with ?legacy-js-course=....
    • Adds other redirects (e.g., output-schema → dataset-schema, academy php path, advanced web scraping path fix).
  • Content/link maintenance
    • Repoints numerous lessons to new paths (e.g., tutorials, Puppeteer/Playwright, advanced courses) and updates sample URLs in integrations (Make) to the new JS course.
    • Minor copy/heading tweaks (e.g., RPA title), and consistent slug/slug changes across documents.

Written by Cursor Bugbot for commit 2840ebd. Configure here.

@honzajavorek honzajavorek changed the title feat: publish the JS course feat: publish new JS course Sep 8, 2025
@honzajavorek honzajavorek added the t-academy Issues related to Web Scraping and Apify academies. label Sep 8, 2025
@honzajavorek honzajavorek force-pushed the honzajavorek/publish-js-course branch from 3ea45eb to 2c5b0c2 Compare October 15, 2025 12:34
@apify-service-account
Copy link

Preview for this PR was built for commit 2c5b0c2 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit ce9758b2 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit 717e49c7 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit a24ff8e5 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit b2726ec0 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit 04754526 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit 10f13d0b and is ready at https://pr-1907.preview.docs.apify.com!

@honzajavorek honzajavorek marked this pull request as ready for review October 16, 2025 08:07
@honzajavorek honzajavorek requested a review from TC-MO as a code owner October 16, 2025 08:07
@honzajavorek honzajavorek force-pushed the honzajavorek/publish-js-course branch from 10f13d0 to 92d189a Compare October 16, 2025 08:08
@apify-service-account
Copy link

Preview for this PR was built for commit 92d189a and is ready at https://pr-1907.preview.docs.apify.com!

@honzajavorek
Copy link
Collaborator Author

I'm getting a ton of conflicts after #2056 merged before this one 😞

@honzajavorek honzajavorek force-pushed the honzajavorek/publish-js-course branch from 92d189a to 2840ebd Compare November 19, 2025 14:46
@apify-service-account
Copy link

Preview for this PR was built for commit 2840ebd and is ready at https://pr-1907.preview.docs.apify.com!

@honzajavorek
Copy link
Collaborator Author

Conflicts resolved!

bike-mud

@apify-service-account
Copy link

Preview for this PR was built for commit e7745879 and is ready at https://pr-1907.preview.docs.apify.com!

@apify-service-account
Copy link

Preview for this PR was built for commit 8b000c73 and is ready at https://pr-1907.preview.docs.apify.com!

1 similar comment
@apify-service-account
Copy link

Preview for this PR was built for commit 8b000c73 and is ready at https://pr-1907.preview.docs.apify.com!

Copy link
Contributor

@TC-MO TC-MO left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀

@honzajavorek
Copy link
Collaborator Author

This deserves a song! (do not click the image, you've been warned)

65q6yg-64213482

nginx.conf Outdated
rewrite ^/platform/actors/development/testing-and-maintenance$ /platform/actors/development/deployment/automated-tests redirect;
rewrite ^/platform/actors/development/source-code$ /platform/actors/development/deployment/source-types redirect;

# Rename output schema to dataset schema
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TC-MO I think this part is a leftover from the rebase as well 👀 I'll remove it.

honzajavorek and others added 26 commits November 21, 2025 11:17
Co-authored-by: Michał Olender <[email protected]>
Co-authored-by: Michał Olender <[email protected]>
Co-authored-by: Michał Olender <[email protected]>
Co-authored-by: Michał Olender <[email protected]>
@honzajavorek honzajavorek force-pushed the honzajavorek/publish-js-course branch from 8b000c7 to 0164c83 Compare November 21, 2025 10:20
@apify-service-account
Copy link

Preview for this PR was built for commit 0164c83 and is ready at https://pr-1907.preview.docs.apify.com!

@honzajavorek honzajavorek merged commit d3406ef into master Nov 21, 2025
11 checks passed
@honzajavorek honzajavorek deleted the honzajavorek/publish-js-course branch November 21, 2025 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-academy Issues related to Web Scraping and Apify academies.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update the Web scraping basics for JavaScript devs course Update Academy's approach to setting up a Node.js project

4 participants