Last month I pushed v3.4 "Premium Polish" of Multi-language SaaS Starter - and this release adds 50+ new routes on top of v3.3. Total shipped routes in the template: 60+. Before reading further: live demo at starter.kpboards.com.
This is an update post because too many SaaS templates leave you to build:
- Notification bell + activity feed
- ⌘K command palette
- Integrations catalog + webhooks
- Onboarding flow (welcome + setup checklist)
- Feature-request voting board
- RSS feeds (site + blog + changelog)
- Print stylesheet for invoices/blog
v3.4 ships all of it. That's the differentiator worth highlighting.
What's in v3.4
I named v3.4 "Premium Polish" because the theme is turning the template from "complete SaaS surface" into "ready-to-photograph for the launch deck". Twelve phases, ~50 new routes layered on v3.3.
1. Landing personalisation - 5 hero variants
One config knob in LANDING.heroVariant:
- bento - feature grid (default)
- split-video - copy left, demo video right
- minimal - single H1 + CTA
- conversion - testimonial-first
- product-shot - dashboard screenshot
Plus 3 optional strips: <LandingLogos />, <LandingStats />, <LandingComparison />. A/B test variants without touching code.
2. Trust + comparison + vertical SEO
The surface every enterprise pitch needs that templates skip:
/trust,/security,/status(footer pill: green/yellow/red)/vs+ per-competitor pages - comparisons against ShipFast / Makerkit / Achromatic/use-cases+ per-vertical pages/alternatives/[slug]
All static, generated at build, indexable. Long-tail SEO surface for ranking on "ShipFast alternative" or "SaaS template for fintech".
3. Resources hub + 3 free tools
/resources + 3 SEO-magnet tools: slug-generator, contrast-checker, UUID generator. Pull organic search traffic without paid acquisition.
4. Sales-led path
Four lead-gen forms: /demo, /contact-sales, /quote, /onboarding-call. Each form persists ContactMessage.tag so the admin inbox filters by funnel.
5. Company surface
/careers + [id], /press, /partners, /brand, /manifesto. Solo founders get a "company page" without hiring a designer.
6. App polish - notifications + activity + integrations + webhooks
<NotificationBell />topbar dropdown with 60s poll/app/notificationswith mark-all-read/app/activityreads from audit log/app/integrations9-entry typed catalog +/app/integrations/[slug]/app/webhookswith signed secrets shown once
7. App polish - power features
- ⌘K
<GlobalSearch />command palette (cmdk) <KeyboardShortcutsDialog />(?)/app/exportsasync export center/app/templates8-entry typed gallery<BulkActionBar />+<SavedViews />adopted in/app/tasks
8. Onboarding
/welcome first-signup intro, <SetupChecklist /> dashboard widget tracking 5 steps + Profile.onboarding jsonb backing it.
9. Visual polish library
<EmptyState /> + 5 inline-SVG illustrations, <CardSkeleton /> / <TableSkeleton /> / <DetailSkeleton /> / <ListSkeleton />, <AnimatedCounter />, useConfetti(), <PageTransition />, useScrollReveal().
10. Community + feedback
/feature-requests voting board, /feature-requests/new, /showcase, floating <FeedbackButton /> on every authed page.
11. Content depth + RSS
/newsletterarchive +/newsletter/[issue]/podcast/events+[id]with RSVP / replay- 3 RSS feeds (
/feed.xml,/blog/feed.xml,/changelog/feed.xml)
12. Document polish
Print stylesheet covering blog + docs + invoices + admin lists, /admin/exports admin-side export center.
Six new Prisma models (Notification, IntegrationConnection, Webhook, ExportRequest, FeatureRequest, FeatureRequestVote) plus the Profile.onboarding jsonb column. RLS owner-scoped on every new user-facing table; admin-gated where appropriate. RLS_EXPECTATIONS now lists 16 tables; all asserted in bun run verify:rls.
Why indie devs buy this instead of building it
Three real reasons:
1. 10 locales pre-wired (EN/VN/ES/FR/JA/KO/ZH/AR + RTL/ID/TH)
Most popular SaaS templates (ShipFast, Makerkit, Achromatic) ship 1-2 locales. Expanding is your problem. This template ships 10 working locales, each with:
- Type-safe keys - TypeScript fails the build if a key is missing in any locale
- Auto-detect by browser locale + timezone
hreflangalternates auto-generated- Multi-locale sitemap
- Arabic ships with RTL as the worked example
Adding a new locale (de.ts, pt.ts): drop the file in src/locales/, register one line in template.config.ts, done. i18next + hreflang + sitemap pick it up.
2. Two parallel stacks - flip 2 env vars, no code change
Default: Supabase Auth + Supabase Postgres. Set AUTH_PROVIDER=nextauth + DB_PROVIDER=neon → Auth.js v5 + Neon. Same API surface (requireUser, requireAdmin), same admin panel, no code changes.
Many teams don't want Supabase lock-in. Switching stacks usually costs 1-2 weeks of debugging. Here: 2 env vars.
3. Production RLS + verify:rls fails CI on drift
Other templates ship "auth wired up". This one ships full RLS:
- 11+ paired SQL migrations with explicit
CREATE POLICYblocks for every table on_auth_user_createdtrigger materializes the Profile row on signupenforce_role_immutabilitytrigger blocks role escalation via the user-facing PATCHprofiles_update_self_safe_columnspolicy blocks user-side billing tamperingbun run verify:rlsasserts every table has RLS on + the expected policy - drift fails CI
That's the actual differentiator from "RLS-off, fix it later" templates.
Test pyramid + dev tooling
- 339 unit tests (Vitest, 40 files)
- 28 Playwright specs, deterministic - single worker, locale-pinned
en-US, timezoneUTC - knip dead-code audit, i18n parity validator (10 locales), bundle-size budget, Lighthouse, linkinator
- husky + lint-staged + commitlint pre-commit gate
bun run verify= lint + type-check + knip + i18n + test + build
Stack
Next.js 16 (App Router, React Compiler, standalone output) · React 19 · TypeScript 5.9 strict · Tailwind 4 · shadcn/ui (Base UI) · TanStack Table v8 · recharts · cmdk · vaul · react-resizable-panels · papaparse · i18next + react-i18next · Supabase Auth · Prisma 7 + Postgres · Stripe · Resend · Zod · Vitest · Playwright
Pricing + license
- Launch $149 for the first 1000 buyers (then $249)
- Single-developer commercial - unlimited apps for self + direct clients, no source redistribution
- 6 months of free updates. After that, paid upgrade unlocks 12 more months
- 7-day no-questions refund - if
bun install && bun devdoesn't boot on a fresh machine, email me and I refund within one business day
Who buys this, who doesn't
Buy if:
- Indie dev shipping a SaaS - you don't want 2 months of plumbing before the first paying customer
- Solo founder going multi-locale on day one - 10 pre-wired locales, multi-currency Stripe
- Agency building white-label SaaS for clients - production RLS, audit log, branded admin shell
Skip if:
- You already have a codebase and only need 1-2 features - copy-paste is cheaper
- You're not deploying multi-locale - simpler templates (ShipFast) are a better fit
- You only need a landing page - this is a full SaaS, overkill
Try it + buy
→ Live demo at starter.kpboards.com
Demo admin login: demo+admin@example.com / demo. Read-only - writes return 403, but the panel renders fully.