Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Production-ready multilingual Next.js 16 boilerplate with next-intl 4, shadcn/ui, RTL support, and complete locale-aware SEO.

A full-stack Next.js TypeScript template focused on functionality over UI, featuring Zustand, TanStack Query, and ESLint 9 support.
Next.js 16 i18n Starter is a production-ready boilerplate for building multilingual Next.js apps, bundling next-intl 4 localization, shadcn/ui components, and a complete locale-aware SEO setup in one template.
Next.js 16 i18n Starter is a multilingual boilerplate for the Next.js 16 App Router, built with React 19, next-intl 4, Tailwind CSS 4, and shadcn/ui. It ships with five locales — English, Arabic, Chinese, Spanish, and Japanese — and produces fully localized pages with currency/date formatting, RTL layout, cookie-based theme SSR, and SEO metadata for every locale. It runs on Turbopack in development and deploys to Vercel without extra configuration. Created by Sovers Tonmoy Pandey (S0vers), the template is MIT-licensed and maintained on GitHub.
useFormatter, useNow, and per-request message/timezone/format loading.localePrefix: "as-needed" routing strategy (English at /, others under /ar, /zh, /es, /ja).src/i18n/regional.ts (for example, English uses USD and America/New_York, Japanese uses JPY and Asia/Tokyo).next-themes.dir="rtl" on Arabic pages and an OmitRTL utility component (also published on npm as react-omit-rtl) to keep code blocks and logos LTR.metadataBase, per-locale hreflang alternates, JSON-LD WebSite/Person schemas, dynamic sitemap.ts and robots.ts, Open Graph/Twitter cards, and Google Search Console verification.global.d.ts (derived from en.json), so a missing key in another locale fails the TypeScript build.OmitRTL to keep code snippets and terminal output left-to-right.src/app/[locale]/about/page.tsx, add an About namespace to all dictionary files, and extend sitemap.ts with getPathname for locale-aware URLs.Routing is defined in src/i18n/routing.ts with defineRouting; the localePrefix: "as-needed" strategy gives the default locale (English) no URL prefix. A src/proxy.ts file runs on every request to detect the locale from the URL, cookie, or Accept-Language header, and all navigations should use wrappers from @/i18n/navigation (localized Link, useRouter, usePathname) rather than next/link directly.
Yes, the template is open source under the MIT license and free to use for personal and commercial projects.
Bun 1.x (recommended) or Node.js 24+, plus a basic familiarity with the Next.js App Router and React Server Components.
Copy dictionary/en.json to a new locale file (e.g., fr.json), register the locale in src/i18n/routing.ts, add regional defaults in src/i18n/regional.ts, add a UI label in LanguageSwitcher.tsx, and add an Open Graph locale in src/lib/site.ts. TypeScript will verify keys across all dictionaries on build.
/ instead of /en?The template uses localePrefix: "as-needed", so the default locale (English) has no URL prefix. All other locales get a prefix like /ar, /zh, /es, /ja. The getPathname helper from @/i18n/navigation should be used to build URLs so this is handled automatically.
Set NEXT_PUBLIC_SITE_URL to your production domain. The template uses metadataBase in generateMetadata to resolve the relative /og-image.png path to an absolute URL.
