Nuxter vs SuperSaas
Nuxter ships four payment providers, 335 test files and passkeys that work on Workers; SuperSaas covers unlimited client work in one purchase.
Checked supersaas.dev
Feature check
Built in, of 14 rows
- Nuxter: 11 of 14 rows built in.
- SuperSaas: 3 of 14 rows built in, 2 partly.
Counted from the feature check below. A row that SuperSaas’s own site and docs do not mention is not counted. See the rows
01The short version
Which one to pick.
Nuxter lets your app sell through Stripe, Polar, Lemon Squeezy or Creem, with one-time purchases and coupon links, where the SuperSaas docs cover Stripe subscriptions. It arrives with 335 test files and CI, so you change billing code against tests that already cover each provider. Passkeys and authenticator codes work on Workers from the first deploy, and a failed renewal keeps access for 14 days by default while the customer fixes their card.
SuperSaas suits a freelancer who builds for many clients under one purchase, or a product that bills per seat.
Pick Nuxter if
- You sell through Polar, Lemon Squeezy or Creem, or want a merchant of record, a provider that is the legal seller and handles sales tax.
- You sell one-time purchases or hand out coupon links next to subscriptions.
- You want a test suite, CI and a deploy pipeline in the repository from the first commit.
- You want passkeys and authenticator-app codes working on Cloudflare Workers from the first deploy.
- You ship in more than one language and want translated pages and emails from the start.
SuperSaas may suit you better if
- You build for several clients and want one purchase to cover all of them.
- You charge your customers per seat and want seat changes with a proration preview already built.
- You want Turso or SQLite as your database, or a build for Vercel or a Node server; its docs mark Vercel as tested with the Demo App.
02Feature check
Feature by feature.
What each kit ships for the things buyers ask about most. A question mark means SuperSaas’s own site and docs do not mention it.
- Built in
- Partly
- Not included
- Not in its docs
03Why Nuxter
Why pick Nuxter over SuperSaas.
What Nuxter ships on day one that SuperSaas’s own pages do not describe.
Four payment providers
Nuxter ships adapters for Stripe, Polar, Lemon Squeezy and Creem, picked in one config array. Polar, Lemon Squeezy and Creem act as merchant of record and handle sales tax for you, and on Stripe one environment variable turns on Stripe Tax. The SuperSaas docs cover Stripe and describe no other provider.
One-time sales and coupon links
Nuxter lets you sell one-time and repeatable purchases next to subscriptions, so a lifetime deal or a credit pack needs no checkout code of your own. A coupon link carries a discount code to checkout on all four providers. The SuperSaas payments docs cover monthly and yearly subscriptions and do not mention one-time purchases or coupons.
335 test files and CI
Nuxter ships 230 unit, 97 component and 8 Playwright test files, about 50 of them on payments. GitHub Actions runs the unit and component suites with lint, typecheck and a build on every pull request, so you change billing code against tests that already cover each provider adapter, the webhook route and the refund rules. The SuperSaas docs mention no automated tests.
Passkeys and two-factor on Workers
Nuxter ships passkeys and authenticator-app codes with ten recovery codes, both on by default and both running on Workers. Your users can sign in with a fingerprint or PIN, or add a second factor, from the first deploy. The SuperSaas docs say its passkeys are temporarily disabled because they error on Cloudflare, and the docs do not document two-factor authentication, which its home page lists.
Failed renewals keep working
When a renewal fails, Nuxter keeps access for 14 days by default and shows the people who manage the organization's billing a banner with the end date and a button to the provider's portal. A customer whose card expired keeps working while they fix it and knows the deadline. SuperSaas keeps access during what its docs call a deliberate grace period; the docs give it no length and say the failure is logged to the console.
Background jobs and cron
Nuxter runs typed jobs on Cloudflare Queues with growing retry delays. A job that fails its last retry moves to a dead letter queue, a holding queue for failed messages. The Worker logs it there and forwards it to Sentry or Better Stack once you turn on monitoring and add a DSN. A daily cron runs six cleanup tasks. The SuperSaas docs describe no job queue or scheduled jobs.
Two languages built in
Nuxter ships in English and Serbian, with Serbian pages under /sr/ and translated emails, legal pages and blog, so a product for two markets launches translated. A test fails when one language file misses a key the other has. The SuperSaas docs do not mention internationalization.
04Where SuperSaas is ahead
Where SuperSaas is ahead.
The trade-offs to weigh before you decide.
Client work under one purchase
Its license covers unlimited end products for you or for multiple clients, and its FAQ says client projects carry no additional fees.
Per-seat subscription billing
Subscriptions are billed per seat on Stripe, and a seat change previews its proration before you commit it. Nuxter sets a member cap per plan, and an organization that grows moves to a plan with a higher cap.
$149, with a Demo App
Essentials costs $149 one-time, and the purchase includes the Demo App repository with five worked modules: an AI chat with streaming replies, posts, tasks, a URL shortener and a file manager.
More databases and build targets
Essentials comes as Turso, NuxtHub SQLite or Postgres on Neon, one git branch each, and one environment variable builds it for Workers, Vercel or a Node server. Its docs mark Workers as tested, Vercel as tested with the Demo App and the Node guide as untested.
05Side by side
Every row, side by side.
The same nineteen rows on every comparison, so you can read two pages against each other.
06In detail
Part by part.
Stack and hosting
Nuxter is built for Cloudflare Workers on purpose. Queues, file storage, cache, mail, rate limiting, AI and the database connection are bindings, resources the Worker reaches by name with no API key, declared in one wrangler.jsonc. You learn one platform and run one Cloudflare account, and the code for each binding ships with the kit. Your Postgres database sits with a provider you choose and is reached through Hyperdrive, Cloudflare's connection pooler for Postgres. The trade is that the app runs on Workers and nowhere else. The deployment docs list the commands that create each resource.
Both kits are Nuxt 4 apps on Nuxt UI 4, Tailwind 4 and Drizzle. SuperSaas sells its SaaS kit as Essentials, with the Demo App as a second repository. Essentials builds sign-in, organizations, admin and Stripe billing on Better Auth, an auth library with a plugin for each part. Nuxter's sign-in, sessions and organizations are its own code on nuxt-auth-utils, a Nuxt module for encrypted session cookies, password hashing and OAuth.
SuperSaas builds for Workers, Vercel or a Node server by one environment variable, and its deployment docs mark Workers as the tested host for Essentials.
Sign-in and accounts
Nuxter's passkeys and authenticator codes run on Workers from the first deploy, and each new passkey mails its owner a notice. You choose password or magic-link sign-in and add GitHub and Google. SuperSaas turns on email and password, magic links, a six-digit email code and GitHub, Google and Discord together. Nuxter's build mounts routes for the methods you chose and none for the rest, so a method you turned off has no endpoint anyone can call; the SuperSaas docs say its flags hide a method's form while the endpoint still works.
A provider sign-in whose email already has an account is refused until the owner connects that provider from Settings, so a GitHub or Google account with a matching address cannot sign in to someone else's account. Nuxter checks the session row on every request, so signing out a device or changing a role applies on the next one. SuperSaas caches sessions in a cookie for five minutes by default, so a revocation can take that long unless you shorten the cache.
Organizations and permissions
Nuxter declares named permissions in config, and the type check rejects a guard that names one you never declared. A plan can sell a permission, and a route guarded by it answers 402 upgrade-required, so your front end knows to show an upgrade prompt. An organization can have branches, sites or projects under it that share its plan and seats and are run by its owners and admins, so a customer with several locations holds one plan for all of them. The SuperSaas docs describe no level below an organization. Membership, role and invitation changes, and plans that staff grant or revoke, land in an audit trail the organization's managers can read.
In Nuxter, open invitations count toward the member cap, and the seat is checked again at acceptance, so a team cannot invite past its plan. SuperSaas blocks an invitation when no seat is free, and its invitation docs add that pending invitations do not reserve seats, so on a plan with several free seats you can send more invitations than seats, and the last acceptances fail.
Nuxter refuses to delete an account that is the only owner of an organization other people belong to, and by default holds a deleted account for 30 days with a restore link before erasing it. The SuperSaas docs warn that when the only owner deletes their account, nobody is left who can manage billing.
In both kits the organization owns members, invitations, seats and the subscription, with owner, admin and member roles. For anything finer than those three roles, the SuperSaas docs tell you to check the role inside the route.
Payments and billing
| Nuxter | SuperSaas | |
|---|---|---|
| Providers | Stripe, Polar, Lemon Squeezy, Creem | Stripe |
| What you sell | Subscriptions, one-time and repeatable purchases | Subscriptions, monthly and yearly |
| Sales tax | Merchant of record on three providers; Stripe Tax switch | Not mentioned in its docs |
| Refunds and disputes | A full refund or lost dispute removes the access it bought | Not mentioned in its docs |
| Plans live in | starter.config.ts | Stripe, synced by an admin action |
You pick providers in one config array. On Stripe, Polar and Creem, the code in a coupon link is checked with the provider before the buyer is sent to pay. A free trial set in config, on Stripe or Polar, goes to each buyer once, so cancelling and resubscribing does not earn a second one.
Failed renewals keep access for pastDueGraceDays (14 by default) behind a payment banner. If the webhook for a paid checkout never arrives, the return page asks Stripe or Polar directly and applies the purchase, so a buyer who paid is not left on the free plan. A payments:refunded event lets your code take back anything else a refunded payment handed out.
SuperSaas runs Stripe through the @better-auth/stripe plugin, which mounts the webhook endpoint for you. You create plans in Stripe, and its Stripe docs say to re-run the sync after each change.
Database, jobs and files
Nuxter runs on Postgres, hosted by a provider you choose and reached through Hyperdrive. Locally it runs PGlite, Postgres compiled to WebAssembly, so pnpm dev needs no database server. Kit tables and yours migrate in separate chains, so a kit update never renumbers a migration you wrote.
Each background job is one file in server/jobs/, and a wrong payload shape fails the type check where you enqueue it.
SuperSaas leads on database choice: Essentials comes as Turso, NuxtHub SQLite or Postgres, one git branch each.
Nuxter stores uploads in R2 with formats, a size cap and access set per upload purpose, and an owner-only purpose serves a file to the signed-in user who owns it and nobody else. SuperSaas stores files in an S3-compatible bucket such as AWS S3, Cloudflare R2 or Backblaze B2, and its Demo App docs say the file manager serves uploads to anyone with the URL unless you add a check.
Email and notifications
Nuxter sends mail through Cloudflare Email Sending or Resend. If one provider fails, the next one sends the mail, and if every provider is down for a moment, a background job retries it later, so a password-reset mail survives a brief provider outage. Mail goes out in the reader's language, and product and marketing mail carries a one-click unsubscribe. An in-app notification bell ships with payment notifications already wired.
SuperSaas supports more email providers: the maker's open-source useEmail library covers six, from Resend to ZeptoMail. Its docs list five templates written as Vue components, with mail rendered and sent in one call, and describe no queue or retry behind it and no in-app notifications.
AI
Nuxter ships the typed server calls a product makes: text, images, speech, transcription, embeddings and video, through the Workers AI binding with no API key. Models are named by role in config, and one environment variable swaps a role's model for a deploy. The AI docs show each call.
SuperSaas's AI docs say Essentials ships no AI code. The Demo App has an organization-scoped chat with streaming replies, generated titles and a model picker, built on the Vercel AI SDK, with Workers AI, OpenAI or Google Gemini picked by environment variable.
Content, languages and marketing pages
Nuxter ships a Markdown blog with tags, RSS and generated Open Graph images, a pricing page built from the plan config, legal page templates and sitemaps. A GitHub Actions workflow drafts a post with an AI model, translates it, makes a cover and opens a pull request for you to review. The languages docs show how Nuxter serves each language and how to add a third.
Nuxter records page views and product events from the server to Cloudflare Analytics Engine, PostHog or Umami with no tracking cookie, has a consent banner that honours Global Privacy Control, and ships typed feature flags with percentage rollouts. The SuperSaas docs describe no analytics provider or cookie consent, and the feature flags they document hide login methods from the UI.
Essentials has no marketing site, and the SuperSaas docs say its root route is the login page. The pricing page lists "Landing, pricing and blog in the Demo App". The docs describe no blog, legal pages or sitemap.
Admin and operations
Your staff get a searchable customers list where they edit and suspend accounts, send reset links, grant a plan and refund a one-time purchase, so support can give a customer a plan or return money without opening the provider's dashboard; the SuperSaas admin docs describe no refunds or plan grants. Impersonation is read-only, ends after 30 minutes and appears in the customer's own activity log with the staff member as actor, so a support session cannot change data and the customer sees it in their log.
SuperSaas's admin area runs on Better Auth's admin plugin, and its user management docs say there is no impersonation audit log out of the box.
Nuxter locks a sign-in route for 15 minutes once its limit is spent, so a script guessing passwords gets ten tries per address and IP before it waits. Every response carries a Content-Security-Policy and other security headers, and with two keys set, Cloudflare Turnstile, Cloudflare's bot check, screens sign-in forms. Turn on monitoring and paste the DSN your tracker gives you, and server errors go to Sentry or Better Stack; GET /api/health lets an uptime monitor tell a dead database from a dead Worker. The SuperSaas docs document Better Auth's rate limit of 100 requests a minute per client and describe no security headers, bot check or error tracking.
Tests
Nuxter's GitHub Actions workflow runs lint, typecheck, both Vitest suites and a build on every pull request, and the Playwright smoke set runs when you add the e2e label to a pull request, or by hand.
A deploy workflow runs database migrations before it uploads the Worker, so a failed migration leaves the old version live. The build refuses a starter.config.ts that cannot work, such as a queue with no consumer, and names the key to fix, so a broken config fails before it reaches production.
The package.json the SuperSaas docs publish for Essentials has lint and typecheck scripts and no test script. Its home page says every feature is exercised against real inputs and edge cases before it ships. The repositories are private, so this describes what the docs show.
Updates
Nuxter's pnpm template:update puts everything the kit changed since your last update into one commit on a branch, which you review as a pull request. The update docs list which paths are the kit's and which are yours, so you know where to put code that no update touches.
SuperSaas's update docs have you add the kit as a git remote, create a temporary branch, run git pull for the branch you cloned and resolve conflicts in your editor's merge tool. They describe no update script, and for schema conflicts they say to keep both sides and regenerate migrations. SuperSaas keeps a changelog on its website with twelve dated entries between 17 April and 18 September 2026.
Docs and AI coding agents
Nuxter's docs are public, 25 pages with search, and nuxter.app serves an llms.txt and an llms-full.txt. In the code, one 330-line AGENTS.md covers setup, checks, code standards and known traps, and pointer files make Claude Code, Cursor and GitHub Copilot read it.
SuperSaas adds an "Ask AI" assistant to its docs, an MCP server for the docs that its pricing page lists, and eight agent skills in Claude Code's format that ship with the Demo App and, its docs say, are not in Essentials yet.
Price and license
| Nuxter | SuperSaas | |
|---|---|---|
| Price | $249 for one seat, $649 for five, one-time | $149 one-time |
| What it buys | The kit repository | The Essentials and Demo App repositories |
| Client work | One license per client | Included, no additional fees |
| Updates | Every update; the license never expires | Every update, for the life of the product |
When this page was checked, the SuperSaas home page button read "Buy Now for $149 (Save $99)" above a counter reading "90/100 used".
Nuxter's license defines a seat as one person with one GitHub account: everyone who reads or changes code containing the kit needs one, and CI and AI coding tools need none. The SuperSaas pricing page says there is no seat count, and its license forbids sharing it with other people or companies. Both licenses cover any number of your own products and forbid a public repository that contains the kit.
Support and community
Nuxter's support is by email to Devilos LLC, the company that makes it; the public docs and AGENTS.md cover the rest.
SuperSaas gives a support email on its pricing page, links a Discord community in its footer and says you can raise issues and feature requests on GitHub. Its FAQ says support covers setup, configuration and understanding the code, and not your own business logic or custom features. The maker's about page says he reads and answers every message himself.
07Sources
Where this comes from.
Every claim about SuperSaas 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.
- SuperSaas pricingsupersaas.dev/
pricing - SuperSaas docs: introductionsupersaas.dev/
docs/ getting-started - SuperSaas docs: tech stacksupersaas.dev/
docs/ getting-started/ tech-stack - SuperSaas docs: deploymentsupersaas.dev/
docs/ deployment - SuperSaas docs: authenticationsupersaas.dev/
docs/ authentication - SuperSaas docs: Stripesupersaas.dev/
docs/ payments/ stripe - SuperSaas about pagesupersaas.dev/
about - SuperSaas docs: pull updatessupersaas.dev/
docs/ getting-started/ updates - SuperSaas docs: user managementsupersaas.dev/
docs/ admin/ user-management - SuperSaas licensesupersaas.dev/
license - SuperSaas home pagesupersaas.dev/
- SuperSaas docs, blog and changelog as one text filesupersaas.dev/
llms-full.txt
SuperSaas 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.