Multi-language i18n (any number of locales)
Type-safe translation keys, automatic language detection by browser locale + timezone, hreflang alternates, multi-locale sitemap, and a language switcher dropdown. Ships with EN + VN demo content — drop in es.ts, fr.ts, ja.ts, anything, and the build picks it up automatically.
Live Theme Studio — colors + fonts
A built-in /settings/theme page with a brand-color picker (primary, foreground, muted, accent), font selector (Inter, Manrope, Geist, Plus Jakarta, IBM Plex, custom Google Font URL), light/dark/system mode, and live preview. Settings persist to localStorage and apply instantly via CSS variables — no rebuild required.
Full SEO scaffolding
Per-page metadata helper, Open Graph + Twitter Card, JSON-LD (WebSite, Organization, Person, BreadcrumbList, FAQPage), multi-locale sitemap.xml, robots.txt, canonical URLs, OG image generator route.
8 production-ready landing sections
Hero (gradient + badge + 3 CTAs), feature grid, showcase grid, testimonial strip, services teaser, newsletter capture, FAQ, footer. Every section reads from i18n keys and respects the active theme.
shadcn/ui + Tailwind 4 tokens
CSS-variable theme tokens (primary, foreground, muted, accent, ring), dark/light/system mode, Tailwind 4 setup, and shadcn components pre-installed (Button, Card, Badge, Input, Form, Dropdown, Tooltip).
Framer Motion reveal animations
Scroll-triggered fade-in-up on sections, animated radial gradients in the hero backdrop, reduced-motion respected — accessible by default.
Resend newsletter integration
API route /api/subscribe wired to Resend, localized double-opt-in email template, Zod validation, rate limit, success/error states. Drop in your API key and ship.
Type-safe environment variables
Zod-validated env.ts so the build fails loudly if a key is missing — no more "why is my newsletter broken in prod" debugging at 2am.
Optional multi-locale blog scaffold
Off by default. Flip a flag and you get /blog with multi-locale MDX articles, OG image per post, and JSON-LD Article schema for every locale.