CleanFrame
HomeFoundationStackPricingFAQDemoResources
Get CleanFrame
CleanFrame

CleanFrame SRL

Mouscron

Belgium

support@cleanfra.me

Company

About

Explore

Home

Product

Pricing

Resources & Support

FAQHelp Center

Legal & Trust

TermsPrivacyCookie Policy

© 2026 • Made with ❤️ by CleanFrame SRL

The foundation for serious B2B apps.

A Next.js + AWS foundation. Auth, billing, i18n and infra already wired.

Get CleanFrameSee the live demo

Google Lighthouse

100

Performance

100

Accessibility

100

Best Practices

100

SEO

Next.js App Router
AWS Amplify Gen 2
cleanframe
front-pages
dashboard

Theme

Token-based system

SEO

JSON-LD & sitemap

Auth

Cognito-backed access

Email

Transactional SES

AWS CDK

Hosting, S3, monitoring

i18n

URL locales, RTL

Billing

Stripe & Paddle

API

REST & GraphQL
01 · What's wired on day one

Start past the parts thatusually slow you down.

App surfaces

Marketing pages

app/(front-pages)

Routed marketing surfaces with locale switching.

Login & auth pages

app/[lang]/login

Sign-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.

Auth & access

Cognito user pools

amplify/auth · Cognito

Email + password sign-in defined in code.

Protected routes

middleware.ts

Middleware-enforced auth boundary.

Custom auth emails

auth/customMessage

Verification, invite and reset templates.

Post-confirmation triggers

auth/postConfirmation

Lambda hook that runs after sign-up.

Billing

Stripe checkout

functions/stripe-*

Sessions, plan changes, webhooks.

Paddle checkout

functions/paddle-*

Same surface with Merchant of Record on top.

Webhook handlers

functions/*-webhook

Provider-agnostic intake.

Entitlements layer

server/billing · entitlements

One source of truth for plan grants.

AWS backend

Amplify Gen 2

amplify/backend.ts · Gen 2

Backend defined in TypeScript.

Lambda functions

amplify/functions · Lambda

Handlers for billing, email, API routing.

DynamoDB

amplify/data · DynamoDB

Single-table access patterns, typed queries.

S3 storage

amplify/storage · S3

Buckets defined in code.

SES transactional email

amplify/functions/email-* · SES

Templates, sending, bounce handling.

i18n & SEO

URL locale routing

i18n/routing

`[lang]` segments with typed link helpers.

3 locales · EN/FR/AR

i18n/messages · EN/FR/AR

Translated marketing, dashboard, auth, with RTL.

JSON-LD metadata

lib/seo · JSON-LD

Page-level structured data.

Sitemap & robots

app/sitemap.xml · robots.txt

Generated at build with locale variants.

UI & theme

MUI v9 system

theme/ · MUI v9

Token-driven theming, custom surface layer.

Tailwind utilities

tailwind.config

Layout helpers alongside MUI.

Light/dark mode

theme/colorSchemes

Cookie-backed scheme switching.

Theme showcase page

theme-showcase

A live `/theme-showcase` route.

Docs & AI workflow

Written setup docs

docs/

Step-by-step guides in `/docs`.

CLAUDE.md house rules

CLAUDE.md

How to extend the codebase safely.

.cursor/rules

.cursor/rules

Workflow rules for AI agents.

02 · See what you'd ship

Inspect the modulesbefore you buy.

Authentication

Cognito sign-in. Protected routes.

demo.cleanfra.me/login

Authentication

Final screenshots ship soon. Inspect the working UI in the live demo.

Open in live demo
03 · Repo structure

The repo shape is partof what you buy.

cleanframe-demo
Abbreviated tree · main branches shown
src/├─ 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
04 · Where the time goes

Stop rebuildingthe same foundation.

What you'd otherwise buildTypical effortCleanFrame

Auth flows + Cognito integration

1–2 weeks

1–2 weeks

Wired

Stripe + Paddle billing + webhooks

2–3 weeks

2–3 weeks

Wired

AWS bootstrap (Amplify + CDK)

1–2 weeks

1–2 weeks

Wired

Entitlements + plan changes

≈ 1 week

≈ 1 week

Wired

i18n + RTL + SEO metadata

1–2 weeks

1–2 weeks

Wired

Theme system + dark mode

≈ 1 week

≈ 1 week

Wired

Transactional email (SES + templates + bounces)

3–5 days

3–5 days

Wired

AI conventions + repo rules + docs

a few days

a few days

Wired

Total avoided rebuild

≈ 8–12 weeks

Day-one feature work

Estimates assume an experienced team. Real-world varies with scope and stack familiarity.
05 · The stack

Stable choices for a stackthat ages well.

Next.js 15

React 19

TypeScript

MUI v9

Tailwind

AWS Amplify Gen 2

Lambda

Cognito

DynamoDB

S3

SES

Stripe

Paddle

pnpm

ESLint

Prettier

0

billing providers · Stripe + Paddle

0

locales · EN · FR · AR with RTL

0

of updates included

98–100

Lighthouse score

Pricing

Pricing plans will appear once a billing provider is configured.

FAQ

Questionsbefore you buy.

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.

Read the full FAQ
Built by

Someone who shipsclient work for a living.

Clément Hommez

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.

Clément Hommez

Full-stack engineer · ~10 years of B2B delivery

Start your next B2B app on a foundation that lasts.

Full source. The conventions. The AWS path. One license.

Get CleanFrame
Delivery-grade Next.js + AWS foundation | CleanFrame