Skip to content

Conversation

@honzajavorek
Copy link
Collaborator

@honzajavorek honzajavorek commented Oct 16, 2025

I need these fixes so that #1907 passes linters. I carved them out to a separate PR so that they don't pollute the diff of changes there. If this gets reviewed first, I'll rebase the other PR so that it doesn't contain these changes.

@honzajavorek honzajavorek requested a review from TC-MO October 16, 2025 07:56
@apify-service-account
Copy link

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

@apify-service-account
Copy link

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

@honzajavorek honzajavorek marked this pull request as ready for review October 16, 2025 08:04
@honzajavorek honzajavorek mentioned this pull request Oct 16, 2025
5 tasks
@honzajavorek honzajavorek added the t-academy Issues related to Web Scraping and Apify academies. label Oct 16, 2025
honzajavorek added a commit that referenced this pull request Nov 21, 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
- [x] The `scraping_basics_javascript` root leads to the new JS course.
- [x] 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.
- [x] 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.
- [x] 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
<link>."
- [ ] 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](https://pyvec.slack.com/archives/C03BHBQNNG3/p1756992893312119),
which takes into account both the UX of existing users of the JS course
and SEO._

### Related Work
- Depends on #1889
- Closes #1584
- Closes #1579
- Fixes #947
- Discovered #1900
- Closes #2009 (PoC)
- Contains #2023
- Closes #1550

<!-- CURSOR_SUMMARY -->
---

> [!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.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
2840ebd. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Michał Olender <[email protected]>
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.

3 participants