Nuxter vs ShipFast
For a Vue product sold to teams, Nuxter ships organizations, roles, seats and staff tools; ShipFast is a Next.js boilerplate built to launch fast.
Checked shipfa.st
Feature check
Built in, of 14 rows
- Nuxter: 10 of 14 rows built in, 1 partly.
- ShipFast: 3 of 14 rows built in.
Counted from the feature check below. A row that ShipFast’s own site and docs do not mention is not counted. See the rows
01The short version
Which one to pick.
Nuxter is for Vue developers building a product that companies buy for their teams. It ships what ShipFast's docs do not describe: organizations that own the billing, with roles, invitations and seat caps; passkeys and two-factor codes; staff tools for support; and an update command, with 335 test files to run after each update.
ShipFast suits a React developer launching a product for individual users on Vercel, Netlify or Render who wants landing page sections and Stripe checkout.
Pick Nuxter if
- You write Vue and Nuxt, and you are building a product that companies buy for their teams.
- You need organizations with roles, invitations and seat caps, and a plan that belongs to the organization.
- You want password sign-in, passkeys and authenticator codes ready the day a customer asks for them.
- You want staff to look up a customer, suspend them, see the app as they see it, grant them a plan or refund a one-time purchase from the first day.
- You plan to keep taking kit updates after launch, with a test suite to run after each one.
ShipFast may suit you better if
- You write React and Next.js and plan to stay there.
- You want to deploy on Vercel, Netlify or Render.
- You are launching a product for individual users and want ready landing page sections.
02Feature check
Feature by feature.
What each kit ships for the things buyers ask about most. A question mark means ShipFast’s own site and docs do not mention it.
- Built in
- Partly
- Not included
- Not in its docs
03Why Nuxter
Why pick Nuxter over ShipFast.
What Nuxter ships on day one that ShipFast’s own pages do not describe.
Organizations that own the billing
Every account gets an organization, and the organization holds the plan, the members and the seats. Owners, admins and members have roles built from named permissions, invitations go out by email, each plan caps the member count, and an audit trail records membership and plan changes. You sell to a company without designing the team model first.
Sign-in a business customer asks for
You choose password or magic-link sign-in, passkeys, authenticator codes with recovery codes, and GitHub and Google sign-in in one config block. Sessions are database rows, so users see their devices and sign one out. Authenticator codes and passkeys are on by default.
Staff tools for support
Staff search customers, edit or suspend an account, view the app as that customer read-only, grant a plan and refund a one-time purchase, and each action lands in the customer's activity log. When a customer is locked out, staff clear the lockout or mail a new reset link from the same page.
Billing that handles the hard cases
Stripe, Polar, Lemon Squeezy and Creem ship as adapters, so you can sell through a merchant of record, a provider that sells in its own name and files the sales tax. Trials on Stripe and Polar are limited to one per buyer, coupon links reach checkout, a failed renewal gets a grace period, 14 days by default, with a banner, and a webhook sent twice is applied once. A customer whose card expires keeps access while they fix it.
One platform, bindings declared
Queues, file storage, cache, mail, rate limiting, AI and the database connection are bindings, services Cloudflare attaches to your app by name, declared in one file. A background job that keeps failing moves to a dead letter queue, a holding queue the app reports on, and avatar uploads go to R2, Cloudflare's file storage. You learn one platform, and only the database runs outside Cloudflare, at the Postgres provider you choose.
Updates you can keep taking
Running
pnpm template:updatebrings each kit update into your app as one commit you review, and you run the kit's 335 test files against it before you merge. Both licenses include every update, and the license never expires.
04Where ShipFast is ahead
Where ShipFast is ahead.
The trade-offs to weigh before you decide.
Next.js and React
ShipFast is a Next.js boilerplate, offered in JavaScript and TypeScript, so a React developer keeps the framework they know.
Vercel, Netlify or Render hosting
Its docs say the app deploys anywhere Next.js is supported and name those three hosts, and its FAQ says a first app can launch for $0 a month on free tiers.
Landing page sections
Hero, problem, features, pricing, FAQ, testimonial, CTA and footer sections ship as components, each with its own docs page, so you assemble a marketing page from parts.
A Discord of makers
The All-in tier and the bundle add a Discord that its site says has 5,000+ makers, and a public leaderboard where startups are ranked by revenue verified by Stripe.
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 a Nuxt 4 app on Vue 3, Nuxt UI 4 and Tailwind CSS 4, written in TypeScript, and it builds into a single Cloudflare Worker. Its queue, file storage, cache, default mail, rate limiting, AI and database connection are bindings, services Cloudflare attaches to the Worker by name. You learn one platform and keep the app on one Cloudflare account, beside the Postgres provider you choose. Since wrangler.jsonc already declares every binding, creating each resource is one documented wrangler command. The trade is that the app runs on Cloudflare Workers and nowhere else.
| Nuxter | ShipFast | |
|---|---|---|
| Framework | Nuxt 4, Vue 3 | Next.js, React |
| Language | TypeScript | JavaScript or TypeScript |
| UI | Nuxt UI 4, Tailwind CSS 4 | daisyUI, Tailwind CSS |
| Hosting | Cloudflare Workers | Vercel, Netlify, Render and other Next.js hosts |
ShipFast is a Next.js boilerplate whose React components are built with Tailwind CSS, with daisyUI for simple elements such as buttons, inputs and tabs. Its deployment page says the app deploys anywhere Next.js is supported and names Vercel, Netlify and Render. ShipFast's repository is not public, so this page describes it from its site and docs.
Sign-in and accounts
You choose Nuxter's sign-in methods in one block of starter.config.ts: email and password or magic links as the primary method, then passkeys, authenticator codes with recovery codes, and GitHub and Google sign-in. Sessions are database rows, so a user sees each signed-in device and can sign one out. The auth docs cover each method.
Users can also change their email, download their data and delete their account, with 30 days to restore it by default. Authenticator codes and passkeys are on in the kit's default config, so when a business customer asks for two-factor sign-in, each of their users can enrol from settings.
ShipFast has two built-in sign-in methods, magic links and Google OAuth, through NextAuth on its main branch or Supabase on its supabase branch. Its docs do not mention password sign-in, two-factor codes, passkeys, other OAuth providers or account deletion.
Signed-in users land in a dashboard with a collapsible sidebar, an organization switcher, a Cmd+K command palette, and settings and billing pages, so your product's pages start inside a layout with navigation. ShipFast's /dashboard is a private example page, and its docs describe no sidebar or settings pages.
Organizations and permissions
In Nuxter the organization owns the plan, the members and the seats. Every account gets one at signup and can belong to several. Owners, admins and members hold roles built from named permissions, invitations go out by email with a chosen role, each plan caps how many members an organization may hold, and an audit trail records membership and plan changes. An optional second level puts branches or sites under a company, as the tenancy docs describe.
The edge cases of a team product are handled in code: an admin cannot make anyone an owner, the last owner cannot leave, and two people cannot take the last seat at once. Your own routes check named permissions that come from a role or from the organization's plan, and tell the browser when an upgrade would allow it (HTTP 402).
In ShipFast, paid access is a boolean on the user, hasAccess (or has_access on the Supabase profiles table), which the payment webhook turns on or off. Its docs do not mention teams, organizations, roles, invitations or seats.
Payments and billing
Nuxter ships adapters for Stripe, Polar, Lemon Squeezy and Creem, each covering subscriptions and one-time purchases, and you pick them in config. Around the checkout it handles the cases a subscription business runs into in its first months:
| When | Nuxter |
|---|---|
| A buyer wants to try first | Free trials on Stripe and Polar, one per buyer, so cancelling and resubscribing earns no second trial |
| You run a promotion | A ?coupon=CODE link carries the code to checkout, and on Stripe, Polar and Creem the kit checks it with the provider before opening checkout |
| A renewal fails | Access continues for a grace period, 14 days by default, with a banner that opens the provider's portal |
| A provider repeats a webhook | The event is stored once and applied once |
| A webhook never arrives | The page the buyer returns to asks Stripe or Polar whether the checkout was paid and grants the access |
| Money goes back | A full refund of a one-time purchase, or a lost Stripe dispute, removes the access it bought |
| Sales tax is due | Polar, Lemon Squeezy and Creem handle it as merchant of record; on Stripe you switch on Stripe Tax |
ShipFast uses Stripe by default for one-time payments and subscriptions, and adds Lemon Squeezy through a copy-paste tutorial. Its Stripe webhook updates the user's access and is where your own logic goes. For a failed subscription payment, its payments page suggests two options: revoke access, or email the user and wait for the subscription to be deleted. Its docs do not mention free trials or tax handling.
Both kits send buyers to the provider's hosted checkout and hosted customer portal.
Database, jobs and files
Nuxter runs on Postgres through Drizzle ORM, with migrations in two chains, one for the kit's tables and one for yours, so a kit update never collides with a migration you wrote. You host the database at a provider you choose, such as Neon or Supabase, and the Worker reaches it through Hyperdrive, Cloudflare's connector to outside databases. pnpm dev starts an embedded Postgres, so a fresh clone runs with no database to install.
Background jobs run on Cloudflare Queues. A job is one typed file, a failed one retries with growing delays, and after its last retry it moves to a dead letter queue, where the Worker reports it. Uploads go to R2, Cloudflare's file storage, and each kind of upload has its own rules for file type, size and who may read it. Avatar and organization photo uploads are wired, as the storage docs describe.
ShipFast's main branch uses MongoDB on Atlas, with Mongoose optional, and its supabase branch uses Supabase with PostgreSQL, where you create tables by running SQL in the Supabase SQL Editor. Its database page does not mention a migration tool or an ORM for Postgres, and its docs do not mention background jobs, cron or file uploads.
Email and notifications
Nuxter sends mail through Cloudflare Email Sending or Resend, falls through to the next provider when one fails, and queues the mail for retry when the failure looks temporary, so a password reset is retried instead of lost during a provider outage. Nine account mails ship written and compiled, in English and Serbian, so the sign-in, reset, verification and invitation mails are ready before you start, as the email docs list. A notification bell and drawer ship in the dashboard, with payment notifications already wired.
ShipFast's code ships with Resend: magic links go out over SMTP and other mail through sendEmail() in libs/resend.js. Mailgun is a tutorial on its emails page, and with Mailgun a webhook route from the tutorial forwards mail sent to your support address to your inbox. Its docs do not mention shipped email templates, retry or in-app notifications.
AI
Nuxter ships a typed server module for the model calls a product makes: text, image, speech, transcription, embeddings and video. Cloudflare Workers AI is wired through a binding, so it needs no API key, and you name each model in config by the job it does, such as copy or transcript, and can swap one per deploy with an environment variable. A summary, an image or a transcript is one typed call from your server code. The AI docs show the entry points.
ShipFast's home page says it is for building a SaaS, an AI tool or any other web app. Its docs do not document an AI SDK, a model provider integration or a chat UI.
Content, languages and marketing pages
Nuxter's blog posts are Markdown files per language with tags, drafts, RSS and a generated social image for each post, as the blog docs describe. A GitHub Actions workflow drafts and translates posts with an AI model and opens a pull request for your review. The whole app ships in English and Serbian, with localized routes, emails and legal pages, so the routing, language switcher and per-language sitemaps are in place when you add a language. Both kits generate a sitemap and robots.txt.
ShipFast leads on marketing pages: its landing sections ship as components, and a ButtonLead form collects emails for a waitlist. Its blog keeps posts, authors and categories in one file, /app/blog/_assets/content.js, and its docs do not mention internationalization.
Nuxter ships terms, privacy and refund outlines with a factual appendix of what the app stores, for you to finish with reviewed text. ShipFast keeps ChatGPT prompts in its terms and privacy page files for you to fill in and run.
Admin and operations
Nuxter gives staff a customers list with search and filters. From it they edit or suspend an account, view the app as that customer read-only, send a reset or verification mail, clear a sign-in lockout, grant a plan and refund a one-time purchase, and each action is written to the customer's activity log. When a customer says a page looks wrong, staff open the app as that customer and see what they see.
Nuxter rate limits its sign-in, registration and email routes and locks a caller out for 15 minutes after too many attempts, so password guessing is slowed from the first deploy. Every response carries a Content-Security-Policy, which limits where a page may load scripts from, plus the usual hardening headers, and Turnstile, Cloudflare's bot check, guards sign-in and registration once its two keys are set. Server errors can be forwarded to Sentry or Better Stack, and /api/health tells an uptime monitor whether the database answers.
ShipFast's docs do not mention an admin panel or user management. Its rate limiting tutorial has you set up Upstash Redis and add middleware, with a sample limit of 5 requests per minute per IP, and its security headers tutorial adds four headers to next.config.js, with no Content-Security-Policy in the sample.
ShipFast's error page has a support button that opens Crisp chat or an email, and its docs do not mention error tracking or health checks.
Tests
Nuxter ships 335 test files: 230 unit, 97 component and 8 Playwright specs. Unit tests run against an embedded Postgres with the real migrations applied, and the included GitHub Actions workflow runs lint, typecheck, the unit and component suites and a build on every pull request. About 50 of those files cover payments, so a change to a billing rule, or a kit update that touches billing, runs against them. The testing docs explain each suite.
ShipFast's docs and site mention no unit, component or end-to-end tests and no test runner.
Updates
Nuxter's pnpm template:update brings everything the kit changed since your last update as one commit you review. It is a three-way merge against the kit version you last took, so git compares only what the kit changed since then. A written table marks which files are the kit's and which are yours, so you know where to put code an update never touches.
ShipFast's FAQ says the kit is built to let you launch without being slowed down by constant dependency changes or breaking updates, and that you get an update whenever the maker improves or fixes it for his own launches.
ShipFast's setup steps run git remote remove origin after cloning, and its docs give no procedure for pulling later changes into a started project. If you plan to build on a kit for years, Nuxter's update command is how its later fixes reach your app.
Docs and AI coding agents
Nuxter's docs are public before you buy, at nuxter.app/docs: 25 pages with search. The kit ships AGENTS.md, a 330-line brief with setup commands, code standards and known traps with their causes, plus short files that point Claude Code, Cursor and GitHub Copilot to it, so your coding agent reads it before it edits your code.
ShipFast's docs are public too, at shipfa.st/docs. Its FAQ says the kit is built for AI code editors, because a complete codebase gives the editor context. Its site and docs name no AGENTS.md, Cursor or Claude rules, MCP server or llms.txt shipped with the kit.
Price and license
Nuxter is sold as two licenses, paid once: Individual at $249 with one seat and Team at $649 with five. A seat is one person, and a license covers any number of your own products. Client work is allowed: each client gets its own license, which you may buy in the client's name, as the pricing page sets out. The license sets no expiry and ends only through breach, an unpaid chargeback or a full refund.
| Nuxter | ShipFast (list price) | |
|---|---|---|
| For one developer | $249, Individual, every update | $299 Starter (updates marked as not included) or $349 All-in |
| For a team | $649, Team, five seats, every update | A Team License on its license page, with no seat count; its pricing shows no team tier |
| Tiers differ by | Seats (1 or 5) | Discord, discounts, updates, a course |
ShipFast also sells a $648 bundle that adds the CodeFast coding course to All-in. On 2026-09-29 its pricing showed Starter at $199 and All-in at $249 under a banner offering $100 off, and the bundle at $299.
ShipFast's license defines a Personal License and a Team License, both for unlimited projects. Neither the license nor the terms mention client work. Its terms describe access as perpetual and say the licensor may terminate the license without conditions.
Support and community
Nuxter's support is by email to Devilos LLC, the company that makes it, for questions about the kit, a purchase or a license. The 25 public docs pages and the AGENTS.md brief in the repository cover the rest.
ShipFast's support is the hello@shipfa.st address and the maker's X account. The All-in tier and the bundle add the Discord and the revenue leaderboard, and $1,210 worth of discounts, which its FAQ says come from companies the maker partners with.
07Sources
Where this comes from.
Every claim about ShipFast 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.
- ShipFast home page, pricing and FAQshipfa.st/
- ShipFast docs: get startedshipfa.st/
docs - ShipFast docs: paymentsshipfa.st/
docs/ features/ payments - ShipFast docs: SEO and blogshipfa.st/
docs/ features/ seo - ShipFast docs: user authenticationshipfa.st/
docs/ tutorials/ user-auth - ShipFast docs: databaseshipfa.st/
docs/ features/ database - ShipFast docs: deploymentshipfa.st/
docs/ deployment - ShipFast docs: componentsshipfa.st/
docs/ components - ShipFast docs: emailsshipfa.st/
docs/ features/ emails - ShipFast docs: rate limiting API routesshipfa.st/
docs/ security/ rate-limiting-api-routes - ShipFast licenseshipfa.st/
license - ShipFast terms and conditionsshipfa.st/
tos
ShipFast 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.