A Next.js + AWS foundation. Auth, billing, i18n and infra already wired.
Google Lighthouse
Performance
Accessibility
Best Practices
SEO
Marketing pages
app/(front-pages)Routed marketing surfaces with locale switching.
Login & auth pages
app/[lang]/loginSign-in, password reset, account screens.
Dashboard layout
app/(dashboard)A real gated `(dashboard)` segment with sidebar.
Legal & cookies
app/(legal)Terms, privacy, cookies, sitemap, robots.
Cognito user pools
amplify/auth · CognitoEmail + password sign-in defined in code.
Protected routes
middleware.tsMiddleware-enforced auth boundary.
Custom auth emails
auth/customMessageVerification, invite and reset templates.
Post-confirmation triggers
auth/postConfirmationLambda hook that runs after sign-up.
Stripe checkout
functions/stripe-*Sessions, plan changes, webhooks.
Paddle checkout
functions/paddle-*Same surface with Merchant of Record on top.
Webhook handlers
functions/*-webhookProvider-agnostic intake.
Entitlements layer
server/billing · entitlementsOne source of truth for plan grants.
Amplify Gen 2
amplify/backend.ts · Gen 2Backend defined in TypeScript.
Lambda functions
amplify/functions · LambdaHandlers for billing, email, API routing.
DynamoDB
amplify/data · DynamoDBSingle-table access patterns, typed queries.
S3 storage
amplify/storage · S3Buckets defined in code.
SES transactional email
amplify/functions/email-* · SESTemplates, sending, bounce handling.
URL locale routing
i18n/routing`[lang]` segments with typed link helpers.
3 locales · EN/FR/AR
i18n/messages · EN/FR/ARTranslated marketing, dashboard, auth, with RTL.
JSON-LD metadata
lib/seo · JSON-LDPage-level structured data.
Sitemap & robots
app/sitemap.xml · robots.txtGenerated at build with locale variants.
MUI v9 system
theme/ · MUI v9Token-driven theming, custom surface layer.
Tailwind utilities
tailwind.configLayout helpers alongside MUI.
Light/dark mode
theme/colorSchemesCookie-backed scheme switching.
Theme showcase page
theme-showcaseA live `/theme-showcase` route.
Written setup docs
docs/Step-by-step guides in `/docs`.
CLAUDE.md house rules
CLAUDE.mdHow to extend the codebase safely.
.cursor/rules
.cursor/rulesWorkflow rules for AI agents.
Authentication
Cognito sign-in. Protected routes.
Authentication
Final screenshots ship soon. Inspect the working UI in the live demo.
Open in live demosrc/├─ app/[lang]/ # App Router · per-locale routes│ ├─ (front-pages)/ # marketing · no auth in bundle│ ├─ (dashboard)/ # gated app surfaces│ └─ (legal)/ # policies, sitemap, robots├─ components/ # ui · features · layout├─ lib/ # billing · seo · email · cookies├─ server/ # auth · billing · entitlements├─ i18n/ # typed namespaces · en/fr/ar · RTL├─ configs/ # billing · theme · navigation└─ theme/ # MUI tokens · Tailwind utilities amplify/ # Cognito · data · functions (CDK)├─ auth/ # Cognito + triggers├─ data/ # DynamoDB + access patterns├─ functions/ # Lambdas: Stripe + Paddle + email└─ storage/ # S3 buckets docs/ # 8 written guidesCLAUDE.md # house rules for AI iteration.cursor/rules/ # workflow rules · always-applied
Auth flows + Cognito integration
1–2 weeks
Wired
Stripe + Paddle billing + webhooks
2–3 weeks
Wired
AWS bootstrap (Amplify + CDK)
1–2 weeks
Wired
Entitlements + plan changes
≈ 1 week
Wired
i18n + RTL + SEO metadata
1–2 weeks
Wired
Theme system + dark mode
≈ 1 week
Wired
Transactional email (SES + templates + bounces)
3–5 days
Wired
AI conventions + repo rules + docs
a few days
Wired
Total avoided rebuild
≈ 8–12 weeks
Day-one feature work
Next.js 15
React 19
TypeScript
MUI v9
Tailwind
AWS Amplify Gen 2
Lambda
Cognito
DynamoDB
S3
SES
Stripe
Paddle
pnpm
ESLint
Prettier
billing providers · Stripe + Paddle
locales · EN · FR · AR with RTL
of updates included
Lighthouse score
Pricing plans will appear once a billing provider is configured.
It's a boilerplate, but built for a different goal. Most starters optimise the first demo; CleanFrame optimises the tenth feature — one set of conventions, strict types and documented placement, so the codebase stays reviewable as it grows.
Those are strong for launching a SaaS fast, often around a specific stack. CleanFrame targets a different buyer: freelancers and studios delivering serious B2B apps on Next.js + AWS, where maintainability across many features matters more than a five-minute launch. Pick the one that matches how you actually ship.
No. The AWS decisions — Amplify Hosting, CDK resources, Cognito, caching — are already made and wired. You deploy on them and pick up the pieces you need as you go. Deeper AWS knowledge helps later, but it isn't required to ship.
Yes. Billing providers sit behind one interface and are gated by feature flags. Run Stripe only, Paddle only, both, or remove billing entirely — the rest of the app doesn't depend on a specific provider.
One seat, full source code, commercial use for your own products, client work for a solo developer, unlimited personal projects, 12 months of updates, basic support, and lifetime access to the version you purchased.
Up to five seats, full source code, unlimited client projects, commercial client work, reuse rights across client projects, 12 months of updates, priority support, and lifetime access to the version you purchased.
Your license doesn't expire. You keep lifetime access to everything released during your update window, and the app keeps working. After 12 months you simply stop receiving new updates — a renewal may be offered, but nothing you already have is taken away.
A tagged snapshot of the codebase at the version you purchase, plus 12 months of subsequent updates. Final delivery details are confirmed at checkout; during early access, scoping is handled manually via /contact.
Yes. Solo covers client work for a single developer; Studio covers unlimited client projects across a team, with reuse rights between projects. See the license tiers for the exact terms.
Because this is a source-code product, purchases are final once repository access has been granted — there's no blanket money-back guarantee. Before buying, inspect the live demo, the walkthrough, the docs and the feature list, and ask any pre-sales question. Exceptional cases may be reviewed manually at our discretion.

I'm a full-stack engineer with around ten years building B2B apps on Next.js and AWS — client portals, dashboards and internal tools that have to hold up in production, not just in a demo.
I built CleanFrame for the part everyone underestimates: keeping a codebase clean while features, deadlines and AI-assisted edits pile up. It's the base I wanted on every delivery.
Full source. The conventions. The AWS path. One license.
Get CleanFrame