Skip to content

Nuxter vs supastarter

Nuxter runs on Cloudflare Workers and handles failed payments and refunds; supastarter's docs cover six Node.js hosts, and its license covers client work.

Checked supastarter.dev

Feature check

Built in, of 14 rows

  • Nuxter: 11 of 14 rows built in.
  • supastarter: 3 of 14 rows built in, 1 partly.

Counted from the feature check below. A row that supastarter’s own site and docs do not mention is not counted. See the rows

01The short version

Which one to pick.

Nuxter handles what happens once customers pay: a customer whose renewal fails keeps access for 14 days by default while they fix the card, and a full refund or lost Stripe dispute takes back the access that payment bought. It builds into one Cloudflare Worker with its queue, storage and mail declared, so there is nothing to wire between services. Organizations can hold branches or sites under one plan.

supastarter suits a buyer who hosts on Vercel, Netlify or Docker, builds for several clients under one license, or wants a Discord community with the purchase.

  • Pick Nuxter if

    • You want hosting, queue, file storage, mail and rate limits on one Cloudflare account, declared in one file, with no job or mail service to sign up for.
    • You want failed renewals, refunds, Stripe disputes and coupon links handled before your first customer pays.
    • You sell to businesses with branches, sites or projects, and want each one under its parent's plan and admins.
    • You expect a security review and want rate limits, a bot check, security headers and an audit trail in the code from day one.
    • You want each kit update as one commit you review, with the kit's migrations in their own chain so an update never collides with yours.
  • supastarter may suit you better if

    • You host on Vercel, Netlify, Render, Fly.io, Coolify or your own Docker server.
    • You build products for several clients and want one license to cover them.
    • You want a Discord community, priority email support or a consulting call with the purchase.

02Feature check

Feature by feature.

What each kit ships for the things buyers ask about most. A question mark means supastarter’s own site and docs do not mention it.

Feature Nuxtersupastarter
Deploys to Cloudflare WorkersBuilt inNot in its docs
Sub-organizations (branches, sites)Built inNot in its docs
Failed-payment grace periodBuilt inNot in its docs
Access removed on a full refundBuilt inNot in its docs
Coupon and promo code linksBuilt inNot in its docs
Grant a plan from the admin areaBuilt inNot in its docs
Rate limits on every sign-in routeBuilt inNot in its docs
CAPTCHA and security headersBuilt inNot in its docs
Audit logBuilt inNot in its docs
Two-factor recovery codesBuilt inNot in its docs
Background jobs and cron(supastarter: guides, you install trigger.dev or QStash)Built inPartly
Deploys to Vercel, Netlify or DockerNot includedBuilt in
One license for many clientsNot includedBuilt in
Discord community for buyersNot includedBuilt in
  • Built in
  • Partly
  • Not included
  • Not in its docs

03Why Nuxter

Why pick Nuxter over supastarter.

What Nuxter ships on day one that supastarter’s own pages do not describe.

  • Built for Cloudflare Workers

    Nuxter builds into one Cloudflare Worker, and the queue, file storage, cache, mail, rate limiting, AI and database connection are bindings, resources Cloudflare attaches to the Worker, declared in wrangler.jsonc. You learn one platform, run one Cloudflare account and wire nothing between services. Postgres comes from a provider you choose, reached through Hyperdrive, Cloudflare's connection pooler.

  • Failed payments and refunds handled

    A customer whose renewal fails keeps access for 14 days by default and sees a banner with the date access ends and a button to fix the card. A full refund or a lost Stripe dispute removes the access that payment bought, and if a webhook never arrives, the page the buyer returns to asks Stripe or Polar and applies the payment.

  • Coupons and staff plan grants

    A ?coupon=CODE link carries a discount to checkout, and Nuxter checks the code with Stripe, Polar or Creem first, so a code that is unknown or does not fit the plan or buyer is refused, with the reason, before the buyer leaves your site. Staff can grant a plan, take it back or refund a one-time purchase from the customers page without opening the provider's dashboard.

  • Branches under an organization

    An organization can hold branches, sites or projects, declared in config. The parent's owners and admins run every child without joining it, and each child uses the parent's plan and seats. A customer with several locations fits the data model from the start.

  • Abuse protection in the code

    Every credential route is rate limited with a 15-minute lockout, Cloudflare Turnstile turns on with two keys, and a Content-Security-Policy is on by default. Each organization keeps an audit trail and each account a security log. A security questionnaire's questions on brute force and audit logs point at code that already ships.

  • A job queue with retries

    Background jobs are typed files that run on Cloudflare Queues, retried with growing delays. A job that fails its last retry moves to a dead letter queue, a holding queue for work that could not finish, and is logged and sent to any error tracker you set up.

  • Updates as one reviewed commit

    pnpm template:update brings everything the kit changed since your last update as one commit on a branch, and a table says which paths are the kit's and which are yours. The kit's migrations run in their own chain, so an update never collides with yours.

  • 335 test files ship with it

    The kit ships 230 unit, 97 component and 8 Playwright test files, and the unit tests run against PGlite, a real Postgres engine, with the migrations applied. About 50 of them cover payments, so the billing code you change already has tests around it.

04Where supastarter is ahead

Where supastarter is ahead.

The trade-offs to weigh before you decide.

  • Deploys to many hosts

    Its docs say the app can in general deploy to any provider that supports Node.js, with guides for Vercel, Netlify, Render, Fly.io, Docker and Coolify.

  • One license for client work

    The license lets you build multiple end products for yourself or for multiple clients, and the Agency tier lists unlimited client projects.

  • A community and a consulting call

    Buyers join a Discord community with a support channel for paying customers. The Startup and Agency tiers add priority email support and a 60-minute consulting call.

05Side by side

Every row, side by side.

The same nineteen rows on every comparison, so you can read two pages against each other.

Topic Nuxter supastarter
Stack
FrameworkNuxt 4 and Vue 3, with Nuxt UI 4 and Tailwind 4, in one appNuxt 4 with Nuxt UI 4 and Tailwind 4, as a Turborepo monorepo of four apps
HostingCloudflare Workers, with queues, storage, cache, mail and AI as native bindingsAny Node.js host in general, its docs say; guides for Vercel, Netlify, Render, Fly.io, Docker and Coolify
DatabasePostgres with Drizzle through Cloudflare Hyperdrive; runs locally with nothing to installPostgres, MySQL or SQLite; Prisma by default, Drizzle as an alternative; Docker locally
What ships
Sign-inPassword or magic link, passkeys, authenticator codes with recovery codes, GitHub and GooglePassword, magic link, passkeys, TOTP, and OAuth with GitHub and Google, on Better Auth
OrganizationsOrganizations with a second level for branches or sites, roles, invitations and seat caps per planOrganizations with owner, admin and member roles, invitations and per-seat pricing
PaymentsStripe, Polar, Lemon Squeezy and Creem: subscriptions, one-time, coupons, failed-payment grace, refunds; trials on Stripe and PolarStripe, Polar, Lemon Squeezy, Creem, Dodo Payments; subscription, one-time, trial, seat, usage (you report it)
EmailCloudflare Email Sending and Resend, with fallback between them, queued retry and one-click unsubscribeResend, Postmark, Mailgun or SMTP through Nodemailer; Maizzle templates and a preview app
Background jobsCloudflare Queues with retries and a dead letter queue, plus scheduled cleanup tasksGuides for trigger.dev and Upstash QStash, which you install and wire up
File storageCloudflare R2 with type, size and access rules per purpose; avatar and organization photo uploads built inAny S3-compatible service, with presigned uploads from the browser
AITyped server calls for text, image, speech, transcription, embeddings and video on Workers AIA chatbot with sessions, history and streaming on the Vercel AI SDK; OpenAI by default
LanguagesEnglish and Serbian, with localized routes, emails and legal pagesEnglish, German, Spanish and French, with translated emails
AdminCustomers list: edit, suspend, view as a customer, send resets; plan grants, one-time refunds and an audit trailUser and organization lists with edit, bans with an optional expiry, and impersonation
Blog and docsBlog with RSS and an AI drafting workflow, pricing page, legal page templates, sitemap and social imagesBlog, landing with FAQ and newsletter, pricing, changelog, contact form, VitePress docs
Working on it
Tests335 test files: 230 unit, 97 component and 8 PlaywrightPlaywright e2e on every pull request and Vitest API tests in CI
Updatespnpm template:update brings each kit update as one commit you reviewgit pull with a rebase from the kit's repository, added as a remote
AI coding agentsAGENTS.md, read by Claude Code, Cursor and CopilotAGENTS.md and Agent Skills; its site says Cursor rules ship too
Buying
Price$249 for one seat or $649 for five, one-time$299 for one seat, $799 for up to five or $1,499 for up to ten, one-time
LicenseAny number of your own products; one license per clientMultiple end products, for yourself or for multiple clients
SupportEmail support from Devilos LLC; public docsDiscord community; priority email and a consulting call from the Startup tier

06In detail

Part by part.

Stack and hosting

Nuxter is built for one platform on purpose. It is one Nuxt 4 app that builds into a single Cloudflare Worker, and the services it runs on, from the queue to the cache, sit on the same Cloudflare account, declared in wrangler.jsonc. Outside Cloudflare you pick a Postgres host, which the Worker reaches through Hyperdrive. The trade is that the app runs on Workers and nowhere else.

A GitHub workflow deploys main when CI passes: it runs the database migrations, then uploads the Worker, and a failed migration leaves the old Worker live. You create the Cloudflare resources once before the first deploy, with the commands in the deployment guide.

Both kits run Nuxt 4 with Nuxt UI 4 and Tailwind CSS 4. supastarter is a Turborepo monorepo of four apps (product, marketing site, docs and mail preview) plus shared packages, with an oRPC API that generates OpenAPI docs at /api/docs. Its docs say it can in general be deployed to any provider that supports Node.js, with guides for Vercel, Render, Fly.io, Netlify, Docker and Coolify, and do not mention Cloudflare Workers.

Sign-in and accounts

Setting up authenticator codes (TOTP) in Nuxter issues ten one-time recovery codes, so a lost phone does not lock anyone out. A deleted account is held for 30 days by default with a mailed restore link, so a user who deletes by mistake restores it themselves, and users can download their data as a JSON file. Each account has a security log of sign-ins, failed sign-ins, credential changes and anything staff did to it.

supastarter's Nuxt docs do not mention recovery codes, a deletion grace period or a data export. It ships an onboarding flow after signup, built from step components with a progress bar.

Both kits ship email and password, magic links, passkeys, TOTP and sign-in with GitHub and Google; supastarter builds them on Better Auth, Nuxter on nuxt-auth-utils.

Organizations and permissions

A Nuxter organization can hold a second level of branches, sites or projects, declared in config. The parent's owners and admins run every child without joining it, and a child uses its parent's plan and seats. If you sell to a restaurant group, a franchise or an agency with client sites, that structure is already in the data model and the permission checks.

Each organization also keeps an audit trail of thirteen event types, from members added and roles changed to plans granted and revoked, which its managers can read. You add organization roles and permissions in config, and a guard that names an undeclared permission fails the type check, so a misspelled permission is caught before the code ships. Each plan sets a member cap that invitations respect.

supastarter's organizations have owner, admin and member roles, invitations and a typed permission matrix with six built-in keys, and it can require an organization after signup. Its docs do not mention levels under an organization or an audit log. In both kits the organization in the URL is the active one.

Payments and billing

Nuxter handles what happens when a payment goes wrong, which supastarter's docs do not describe. Both kits sell subscriptions and one-time plans through Stripe, Polar, Lemon Squeezy and Creem, and supastarter adds Dodo Payments.

Nuxtersupastarter
A renewal charge failsAccess continues for 14 days by default, with a banner to fix itNot in its docs
A payment is fully refundedThe access it bought is removedNot in its docs
A Stripe dispute is lostAccess is removedNot in its docs
A webhook never arrivesThe return page asks Stripe or Polar and applies the paymentNot in its docs
A buyer cancels and resubscribesCheckout offers no second free trialNot in its docs
A link carries ?coupon=CODENuxter checks the code with Stripe, Polar or Creem before checkoutNot in its docs

The grace period runs from the first failed charge, and everyone who can bill the organization sees the date access ends. Webhooks are signature-checked, a duplicate delivery is skipped, and an older event never overwrites a newer one, so a provider that retries or reorders events cannot grant a plan twice or move a subscription backwards. The payments docs cover each case.

supastarter offers more pricing models: a seatBased price is multiplied by the number of organization members, and its usage-based billing guide gives example functions that report usage from your own server code.

Database, jobs and files

Nuxter uses Postgres with Drizzle. The database is hosted by a provider you choose, such as Neon, Supabase or PlanetScale, and the Worker reaches it through Hyperdrive, Cloudflare's connection pooler. Locally, pnpm dev starts an embedded Postgres (PGlite) with the migrations applied, so a fresh clone runs with no Docker and no database account.

Background jobs run on Cloudflare Queues, each one a typed file. A failed job retries with growing delays, and a job that fails its last retry goes to a dead letter queue, where it is reported. Six cleanup tasks run on a daily cron. supastarter covers jobs with guides for trigger.dev and Upstash QStash, in which you install the SDK and write the task files.

supastarter defaults to Prisma on Postgres, ships Drizzle schemas as an alternative and supports MySQL and SQLite. Locally, Postgres and S3 storage run in Docker Compose. Its files go to any S3-compatible service, uploaded from the browser straight to the bucket through presigned URLs. Nuxter stores files in Cloudflare R2 with type, size and access rules per purpose, and identifies each upload by its first bytes, whatever type the browser claims. Both wire avatar and organization logo uploads.

Email and notifications

Nuxter sends mail through Cloudflare Email Sending or Resend. List both and the sender falls back to the second when the first fails, then queues the mail for retry when every provider is down for a moment, so an outage does not lose a password reset. Product and marketing mail respects each user's opt-out and carries a one-click unsubscribe link. supastarter's docs do not mention retrying outgoing mail or unsubscribe links.

supastarter ships more providers: Resend by default, Postmark, Mailgun, and Nodemailer for any SMTP server, plus a mail preview app. Both write templates as Vue components compiled by Maizzle, with copy per language.

Both have an in-app notification center with preferences. supastarter's notification kinds can also go out by email.

AI

Nuxter ships AI as a server module: the typed calls a product makes for text, images, speech, transcription, embeddings and video. Cloudflare Workers AI is wired through the Worker's binding with no API key, providers are tried in the order you set, and another provider is one file you add.

supastarter ships a working chatbot with chat sessions, history and streaming responses on the Vercel AI SDK, with OpenAI models by default for text, images and audio.

Content, languages and marketing pages

Nuxter's blog is Markdown on Nuxt Content with tag pages, an RSS feed per language, and a GitHub workflow that drafts a post with an AI model, translates it and opens a pull request for you to review. Analytics are recorded on the server, with no vendor script or tracking cookie, and sent to Cloudflare Analytics Engine, PostHog or Umami. A consent banner ships and honors the browser's Global Privacy Control signal. supastarter's Nuxt docs do not mention a consent banner.

supastarter leads on the marketing site: a separate Nuxt app with a landing page (hero, features, FAQ and newsletter sections), pricing and changelog pages and a contact form, with a VitePress docs site beside it. Its interface and emails come in English, German, Spanish and French. Nuxter ships English and Serbian, with localized routes, emails and legal pages, and a test holds every language file to the same keys, so a missing translation fails the unit tests before it ships.

Admin and operations

Nuxter's customers page lets staff edit, suspend and impersonate an account, grant a plan and refund a one-time purchase, and every staff action lands in the affected user's security log. On a fresh deploy the first account to prove its email becomes the administrator, so you do not touch the database to get in; supastarter's admin docs have you set the role field to admin in Prisma Studio. Its admins can search users and organizations, edit and ban users, and impersonate them.

Nuxter rate-limits every credential route (sign-in, registration, password reset, magic link, TOTP and passkeys) with a 15-minute lockout, counted in a Durable Object, a small stateful Cloudflare service. Turnstile, Cloudflare's CAPTCHA, turns on with two keys, and a Content-Security-Policy and hardening headers are on by default. /api/health checks the database, so an uptime monitor can tell a dead Worker from a dead database. Every response carries a request id that the error page also shows, so a user's screenshot leads to the log line, and server errors can go to Sentry or Better Stack without an SDK.

supastarter's changelog records an origin allowlist for auth redirects and CORS, and tracking of failed two-factor attempts. Its Nuxt docs do not mention rate limiting, CAPTCHA, security headers or a health check, and its Sentry guide has you install @sentry/nuxt.

Nuxter also ships typed feature flags evaluated on the server, with targeting by role, user or locale and percentage rollouts, so you can release a feature to part of your users without a flag service. supastarter's Nuxt docs use the term feature flags for the config switches that turn sign-in methods and organizations on and off.

Tests

Nuxter ships 335 test files: 230 unit, 97 component and 8 Playwright. The unit tests run against PGlite, a real Postgres engine, with the migrations applied.

supastarter ships a Playwright setup for the product app and the marketing site, which a GitHub Action runs on every pull request once you add the secrets the app needs. Its CI has separate lint, type-check, unit and e2e jobs, with Vitest tests for API procedures. Its docs do not say how many tests ship.

Updates

Nuxter's pnpm template:update brings everything the kit changed since your last update as one commit on a branch, which you review as a pull request. A table names every path as the kit's, yours or shared, so you know where your code can live without touching kit files. The kit's database migrations run in a chain separate from yours.

supastarter's update docs have you add the kit's repository as a remote and run git pull upstream main --allow-unrelated-histories --rebase. They say each change you make to your app makes updating harder, because the update is a rebase onto the latest kit.

supastarter's Nuxt edition launched in November 2023 and was rewritten in March 2026, and the changelog on its site lists 141 dated entries across its three editions, the latest on 16 September 2026.

Docs and AI coding agents

Nuxter ships an AGENTS.md with pointer files, so Claude Code, Cursor and GitHub Copilot read the same brief before they edit code: setup commands, the checks to run before finishing, the code standards, a list of traps with their causes, and where each kind of code belongs.

Both kits publish their docs before you buy; Nuxter's docs run to 25 pages with search.

supastarter ships AGENTS.md and Agent Skills, instructions for common workflows written to an open specification. Its Nuxt docs listed 22 of them when checked, and its site says Cursor rules ship too.

Price and license

Nuxtersupastarter
One seat$249$299 (Solo)
Five seats$649$799 (Startup, up to five)
Ten seatsTwo Team licenses (seats add up)$1,499 (Agency, up to ten)

Each kit is a one-time payment. The two Nuxter licenses differ only in seats, and each includes the private GitHub repository, every update and any number of your own products; the license never expires. supastarter's pricing section and FAQ promise lifetime updates, and these are the list prices for its Nuxt edition.

Client work takes one Nuxter license per client, which can be bought in the client's name, so the client holds its own license when you hand the project over. supastarter's license lets you create multiple end products for yourself or for multiple clients, and lets resellers and freelancers buy on a client's behalf.

Support and community

Nuxter's support is by email to Devilos LLC, the company that makes it. The public docs and the AGENTS.md brief your coding agent reads cover the rest.

supastarter's FAQ describes a Discord community, which its site puts at 1200+ members, and a support channel for paying customers. The Agency tier adds a private Discord channel with direct access to the founder.

07Sources

Where this comes from.

Every claim about supastarter was read from its own pages on . The main ones are below, and the rest are linked where they are used. Nuxter’s side comes from its own docs and code.

  1. supastarter for Nuxt, product page and pricingsupastarter.dev/nuxt
  2. supastarter docs: introductionsupastarter.dev/docs/nuxt
  3. supastarter docs: deploymentsupastarter.dev/docs/nuxt/deployment/overview
  4. supastarter licensesupastarter.dev/legal/license
  5. supastarter FAQsupastarter.dev/faq
  6. supastarter changelogsupastarter.dev/changelog
  7. supastarter docs: payment planssupastarter.dev/docs/nuxt/payments/plans
  8. supastarter docs: authenticationsupastarter.dev/docs/nuxt/authentication/overview
  9. supastarter docs: databasesupastarter.dev/docs/nuxt/database/overview
  10. supastarter docs: permissionssupastarter.dev/docs/nuxt/authentication/permissions
  11. supastarter docs: updating the codebasesupastarter.dev/docs/nuxt/codebase/update
  12. supastarter docs: agent skillssupastarter.dev/docs/nuxt/skills

supastarter is a trademark of its owner, and Nuxter is not affiliated with it. Found something out of date? Tell us.

Docs

Read the docs before you decide.

Every page of the docs is public, so you can see how each part works before you buy. From $249, one-time.