# Learnitive Legacy URL Migration Map

This registry documents the public URL migration contract for the Learnitive writer/research launch. Runtime behavior is implemented in `server/public-legacy-redirects.mjs`; this document is the human-readable release reference.

## Rules

- Use a direct permanent 301 when a previous URL has a clear current equivalent.
- Use 410 only for retired integrations/features with no useful replacement.
- Do not redirect unrelated retired pages to the homepage.
- Keep redirects in place for at least one year after launch; longer is preferable where backlinks remain.
- Preserve the existing URL when a curated legacy blog article is later republished in the structured CMS; the CMS article takes precedence over the fallback redirect.

## Page redirects

| Previous URL | Current destination | Intent |
|---|---|---|
| `/pages/terms` | `/terms` | Canonical legal route |
| `/pages/privacy` | `/privacy` | Canonical legal route |
| `/pages/about` | `/about` | Preserve About equity |
| `/pages/faq` | `/faq` | Preserve FAQ equity |
| `/pages/branding` | `/about` | Brand/company information |
| `/pages/contact` | `/contact` | Contact |
| `/pages/pricing` | `/pricing` | Pricing |
| `/pages/roadmap` | `/change-log` | Product updates |
| `/pages/legal` | `/terms` | Terms |
| `/pages/legal-notice` | `/terms` | Terms |
| `/legal-notice` | `/terms` | Terms |
| `/lifetime-deal` | `/pricing` | $29 Lifetime Pro offer |
| `/notepad` | `/features` | Current Markdown/writing feature surface |
| `/project` | `/features` | Current project/workspace feature surface |
| `/ai-api` | `/docs/ai-overview` | Current AI/BYOK documentation |
| `/blog/categories/Articles` | `/blog` | Consolidated launch blog |
| `/blog/categories/Tutorials` | `/blog` | Consolidated launch blog |
| `/blog/categories/News` | `/blog` | Consolidated launch blog |
| `/blog/categories/Announcements` | `/blog` | Consolidated launch blog |
| `/blog/categories/Events` | `/blog` | Consolidated launch blog |
| `/blog/categories/Courses` | `/blog` | Consolidated launch blog |
| `/training` | `/learn` | Learn hub |
| `/request-software` | `/features` | Current product capabilities |
| `/drive` | `/features` | Local-first project/storage story |

## Legacy Learn lesson redirects

The old single-level lesson URLs map to the current LaTeX Fundamentals course hierarchy, including `first-document`, `latex-in-30-minutes`, `mathematics`, `figures`, `tables`, `bibliography`, `cross-references`, `tikz`, `thesis-projects`, `arxiv-submission`, `debugging`, and `collaborative-writing`.

## Legacy blog redirects

| Previous article | Current destination |
|---|---|
| `/blog/What-is-Learnitive` | `/about` |
| `/blog/Introducing-Learnitive-Project` | `/features` |
| `/blog/How-to-collaborate-in-Learnitive-AI-Writer` | `/features` |
| `/blog/Learnitive-Create-content-with-AI` | `/features` |
| `/blog/Learnitive-Productivity-Tools-Notepad-and-Canvas` | `/features` |
| `/blog/Learnitive-Notepad-Your-Evernote-and-Codepen-alternative` | `/features` |
| `/blog/What-is-Learnitive-Notepad` | `/features` |
| `/blog/How-to-access-Notepad` | `/features` |
| `/blog/Use-SSH-on-Learnitive` | `/features` |
| `/blog/Introducing-Learnitive-Virtual-Desktop` | `/features` |
| `/blog/Learnitive-Windows-App` | `/features` |
| `/blog/Mastering-the-Terminal` | `/features` |
| `/blog/Benefits-of-Learnitive-com` | `/about` |
| `/blog/Learnitive-Instant-Access-to-Terminals-and-IDEs` | `/features` |
| `/blog/Learnitive-IDE-HTML-Builder` | `/features` |
| `/blog/Learnitive-is-on-AppSumo` | `/pricing` |

These fallback redirects do not prevent later editorial restoration. If a legacy article is rewritten and published with the same slug in the CMS, the real article is served first.

## Explicitly retired (410)

- `/blog/How-to-use-Learnitive-WP-Plugin`
- `/blog/How-to-download-Learnitive-WP-Plugin`
- `/blog/How-to-use-Learnitive-AI-API`

These integrations are intentionally retired and should not be represented as current product capabilities.

## Release verification

`scripts/verify-public-seo-production.sh` reads the redirect/410 registries directly and checks every registered migration after deployment. `scripts/learnitive-seo-hardening-audit.mjs` guards the high-value mappings in source before release.
