Just add product
The boring half of your SaaS, already built.
Nuxter is a Nuxt 4 starter kit for Cloudflare Workers. Sign-in, teams, billing and an admin panel work from the first deploy, so your first commit can be your product.
$249 once · about 215 hours of work already done
Hours saved so far
0of 215
01Sign-in
People sign in the way they expect.
Email and password, magic links, passkeys, two-factor codes, and GitHub or Google. Lockouts and bot checks keep everyone else out.
About 47 hours saved
- Sessions you can list and sign out
- Proof asked again before sensitive changes
- Email verification before checkout
A sign-in card takes an email and password, then a six-digit two-factor code, and ends on Maya’s sessions: this Chrome on macOS, and a Safari on iPhone she can sign out.
02Teams
Then they bring their team.
Organizations with roles, seat limits and email invitations, plus an audit log of who changed what.
About 30 hours saved
- Owner, admin and member roles
- Seats that follow the plan
- Invitations that expire after 14 days
A members panel invites a new teammate whose invitation expires in 14 days, the seats go from 4 to 5 of 10, and a member is made an admin, which the audit log records.
03Billing
And the team starts paying.
Stripe, Polar, Lemon Squeezy or Creem behind one plan list. Every webhook is verified and applied once, and a failed renewal gets a grace period before access stops.
About 45 hours saved
- Subscriptions and one-time sales
- Trials and coupon codes
- Refunds and plan grants from the admin
The same plans check out through Stripe, Polar, Lemon Squeezy or Creem, then the team switches to yearly prices and buys Pro, and the webhook log shows the payment verified, applied, and a duplicate ignored.
04Admin
You run the business from one screen.
Find any customer, sign in as them to see what they see, grant a plan or suspend an account.
About 15 hours saved
- Search and filters across every account
- Sign in as a customer
- Grant a plan or refund a purchase
A customers table led by Maya is searched for Rosa, staff sign in as her from the row menu, and a banner says the session can look but not change anything.
05Platform
It all runs on Cloudflare.
The app, background jobs, files, flags and rate limits run on one Cloudflare account. Your Postgres database connects through Hyperdrive.
About 34 hours saved
- Jobs retry five times, then park in a dead letter queue
- File uploads stored on R2
- Rate limits and lockouts in Durable Objects
A request goes from the browser through a Worker and Hyperdrive to Postgres and back in 41 ms, a queued job fails once and succeeds on retry, R2 stores a file, a KV flag turns on, and a Durable Object locks sign-in for 15 minutes after five attempts.
06Quality
Mistakes stop at the build.
More than 5,000 tests, a typecheck and a full build run on every pull request. A setting that can’t work fails the build with a message that says how to fix it.
About 22 hours saved
- Tests that catch a schema change without its migration
- A language missing a key fails the suite
- Rules files for Claude Code, Cursor, Codex and Copilot
A pull request’s lint, format, typecheck and 5,284 tests pass one by one, then the build fails on a 14-day trial setting that Lemon Squeezy can’t apply, with a message that says how to fix it.
07Updates
And it keeps getting better.
The kit stays connected to your app as a git remote. Each update lands as one commit you review in a pull request, and your own folders are never touched.
- One command:
pnpm template:update - Conflicts only where you edited kit files
- Every update, and the license never expires
Three kit changes land on nuxter-app/kit, pnpm template:update brings them into your app’s pull request, and it passes its checks and is merged with your own folders untouched.
Hours
About 215 hours you don’t spend.
- 01
Sign-in and accounts
Password, verification and reset · Sessions and re-authentication · Passkeys and two-factor codes · Account settings and activity · Magic links, GitHub and Google · Deletion with restore and export
47 hours
- 02
Teams and permissions
Organizations, with optional branches · Organization switcher · Roles and seat limits · Email invitations · Audit log
30 hours
- 03
Billing
Four provider adapters · Webhooks, trials and failed-renewal grace · Checkout, coupons and guest checkout · Billing pages and portal · Plan gate
45 hours
- 04
Admin
Customer search and edits · Plan grants and refunds · Sign in as a customer, bans
15 hours
- 05
Platform and operations
Transactional email and unsubscribe · Background jobs and events · Notifications and file storage · Analytics and ad conversions · Security headers, rate limits, lockout · Error tracking, flags, health check
34 hours
- 06
Database, tests and CI
Typed config and bindings · Schema and two migration chains · Local Postgres and seed data · Build-time checks and CI
22 hours
- +
Blog, AI and languages
AI-written blog posts from CI · Blog with tags and RSS · AI on Workers AI · Legal pages and share images · Two languages
22 hours
Total
215 hours
Estimates for a senior developer using AI coding tools to rebuild each part to the same standard, tests included. We counted each part’s code in the kit, priced it at 200 lines an hour and rounded down. The dashboard shell, the translations and the update tooling are not counted.
Pricing
Pay once. Keep every update.
Each license includes the private GitHub repository and every update, and it never expires.
Individual
1 seatFor one developer.
Buy Individual$249one-time
Team
5 seatsFor you, your employees or your contractors.
Buy Team$649one-time
Client projects need their own license.
Pricing details