feat(app): public app/[lang] routes — locale migration L1 - #172
Merged
Conversation
Mirror internal-marketing pilots under indexable app/[lang]/* paths with shared LocaleAppLayout and publicAppMetadata helpers. Extend proxy locale header, playground route parsing, preview smoke, and Playwright e2e. Profile pages stay noindex (matches Pages Router). Skip generateStaticParams on [lang] layout to avoid Next 16.3 SSG conflict with Pages i18n.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
mkayander
marked this pull request as ready for review
August 22, 2026 20:12
github-actions Bot
pushed a commit
that referenced
this pull request
Aug 22, 2026
# [1.384.0](v1.383.0...v1.384.0) (2026-08-22) ### Features * **app:** add public app/[lang] routes for locale migration L1 ([#172](#172)) ([5b2c777](5b2c777))
|
🎉 This PR is included in version 1.384.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Locale migration L1: add indexable public
app/[lang]/*routes mirroring the internal-marketing App Router pilots, while Pages Router +next.configi18nremain canonical for unprefixed URLs until L2.app/[lang]/— home, privacy, daily, playground, profile (shared views + metadata)locale-app/—LocaleAppLayout,publicAppMetadata,publicPageMetadataFromTranslationproxy.ts— locale header for/:localeand/:locale/:path*playgroundRoute.ts—appLocalePlaygroundBasePathfor/{lang}/playgrounde2e/app-locale-routes.spec.ts(5 tests: indexable marketing routes + noindex profile)previewSmoke.ts— smoke paths for/en,/en/privacy,/en/daily,/en/playgroundNotes
noindex, follow(matches existing PagesSiteSeoHeadbehavior).generateStaticParamsfromapp/[lang]/layout— combining SSG params withforce-dynamiccaused a Next 16.3 build failure on/ar/dailywhile Pagesi18nis still enabled.LocaleAppLayout(still noindex).Instant-Navigations-TODO.md.Testing
pnpm lint— passpnpm test— 455 unit tests passpnpm build— passpnpm test:e2e— 12/12 pass locally (7 pilot + 5 app-locale)Next (L2)
Rewrites/redirects from Pages to App for default-locale URLs; then retire duplicate Pages marketing routes (L3).