Listicle·

Cursor + Nuxt: Prompts and Workflows to Ship SaaS Faster

Use Cursor with a Nuxt SaaS starter kit to scaffold routes, auth, billing, i18n, emails, admin, and more so you can ship a paid product fast.

You do not need help writing your core feature. The drag is the scaffolding around it: routes, auth, billing, i18n, admin, uploads, and the copy and tests that glue it together. Pair Cursor with a Nuxt SaaS starter kit and you can turn that plumbing backlog into a handful of prompts you can run before lunch.

Set up Cursor with the right Nuxt context

Start by giving Cursor a one-page brief that describes your stack, folder layout, and house rules. Include Nuxt version, TypeScript, linting settings, and where business logic lives. Spell out conventions so Cursor names things the way you do.

Example details to include:

  • Folders and routes: /pages for routes, /layouts/default.vue and /layouts/auth.vue, /middleware/auth.global.ts, /server/api/* for endpoints, /components/ui/* for shared UI.
  • State and data: Pinia in /stores/*, ORM in /server/db/*, Postgres via Prisma in prisma/schema.prisma.
  • Runtime config: public keys in runtimeConfig.public, secrets in runtimeConfig, .env.example kept in sync.
  • Testing: unit tests with Vitest in /tests, component tests in /components/__tests__.

Then ask Cursor to map the repo and create an docs/architecture.md that lists:

  • Route patterns and dynamic params, e.g. /account, /admin/users/[id].
  • Shared layout slots and their purpose.
  • Auth boundaries and which middleware runs where.
  • Where environment variables are read and validated.

Use a diff-first rule: “Before writing, show the file list and a unified diff, explain risky changes, and propose a commit message.” This keeps edits traceable as the repo grows.

Ship the core screens in one pass

Turn the first mile into a single prompt that scaffolds your base routes and ties them to your layout and SEO utilities. Ask Cursor to create or update:

  • Public pages: /pages/index.vue (home), /pages/pricing.vue (pricing), /pages/legal/[slug].vue.
  • Auth pages: /pages/login.vue, /pages/register.vue, /pages/reset-password.vue.
  • App pages: /pages/dashboard/index.vue, /pages/account/index.vue, /pages/admin/index.vue.

If your starter ships a landing page, keep its structure and only swap copy and media. Wire titles and descriptions with useSeoMeta so Open Graph and Twitter tags are set from page data. Ask for a tiny OG image endpoint in /server/routes/og.ts that renders a title and brand color so you do not hunt for images later.

Have Cursor create a small set of typed, reusable components with minimal props and examples in comments:

  • components/ui/AppButton.vue with variant, size, and loading.
  • components/pricing/PricingTable.vue that accepts an array of plans and emits select with the plan id.
  • components/forms/TextField.vue with label, help text, and v-model.

Ask Cursor to include a usage note below each component block so future prompts reuse them rather than duplicating UI. Consistency is free speed.

Wire the hard parts once: auth, billing, i18n, uploads, emails

Authentication. Prompt Cursor to implement sign up, sign in, sign out, and password reset using the kit’s auth provider. Cover email+password, magic links, and Google. Guard protected pages with auth.global.ts and redirect new users to /onboarding, returning users to /dashboard. Add server-side checks in admin routes, not only middleware.

Billing. Keep the implementation provider-agnostic. Ask Cursor to:

  • Create /pages/pricing.vue that renders plans from ~/config/plans.ts.
  • Implement /server/api/billing/create-checkout-session.post.ts that accepts a planId and returns a redirect URL.
  • Add success and cancel pages at /pages/checkout/success.vue and /pages/checkout/cancel.vue with simple state messaging.
  • Handle webhooks in /server/api/webhooks/billing.post.ts, updating User.subscriptionStatus and plan.
  • Expose a useBilling() composable to query subscription status and gate premium features.

Localization. Ask Cursor to extract visible strings into /locales/en.json and another locale you plan to support, for example es.json. Provide a glossary for product terms so translations stay consistent. Add a language switcher in the header that persists the choice and falls back to browser language. Include number, date, and currency formatting in plugins/i18n.ts so pricing renders correctly across locales.

Uploads. Implement secure file uploads with S3-compatible storage. Ask Cursor to:

  • Create /server/api/uploads/sign.post.ts that validates content type and size, returns a signed URL, and stores metadata in your ORM.
  • Build components/uploads/AvatarUploader.vue that uses the signed URL, shows progress, and updates the profile.
  • Restrict read access server-side so users can only fetch their own files. Add an allowlist for MIME types.

Emails. Use the starter’s email templates. Ask Cursor to draft welcome, password reset, and receipt emails in /emails/*, each with a text fallback. Wire sendPasswordReset and sendWelcome in your auth flows and add a simple preview route in dev that renders templates with fake data. Store provider keys in runtime config and make .env.example accurate.

Build growth loops and reliability early

Analytics. Ask Cursor to add a lightweight useAnalytics() composable that tracks page_view, signup, checkout_started, subscription_activated, and your core feature actions. Add calls in page hooks and in the billing flow. Create a small tile on the dashboard that shows yesterday vs today for signups and activations so you can see movement without opening another tool.

Content and SEO. Turn on the blog with Nuxt Content. Ask Cursor to generate a content/blog/ structure with front matter for title, description, and og:image. Draft one practical post that matches your feature, like a walkthrough that your pricing page links to. Let your SEO helper create meta tags and sitemap entries automatically. Mirror the i18n setup so content ships in multiple languages using the same pipeline.

Cron jobs. Describe the recurring work you need: daily summaries, a weekly report, and nudges for inactive users. Ask Cursor to create scheduled tasks that call your server functions and log outcomes to a simple table. Route results into your email templates. Keep retry logic simple: exponential backoff and a max attempts count written next to the job code so failures are visible.

Admin. Request a basic admin dashboard that lists users with filters for plan and status, includes a ban action with a reversible flag, and shows last login time. Add server-side permission checks in /server/api/admin/* and a tiny audit log when admin actions run.

A diff-first workflow that stays fast

Speed comes from small, safe steps. Keep prompts narrow and ask for diffs, risks, and tests. Make Cursor follow a checklist that mirrors the starter kit: auth, protected pages, billing, emails, i18n, admin, analytics, SEO, storage, cron jobs, and optional AI features.

Concrete workflow that works for small teams:

  • Setup (90 minutes): write the project brief, get a repo map, and agree on file naming and commit message patterns.
  • Core routes (60 minutes): scaffold pages, layouts, nav, and SEO meta wiring.
  • Auth and billing (2 - 3 hours): flows, middleware, success and cancel routes, webhooks, and a plan-aware dashboard.
  • Polish (2 hours): i18n extraction, avatar uploads, transactional emails, and analytics events.
  • Growth (1 hour): blog enabled, a starter post drafted, and a weekly cron that sends a usage report to you.

If your backlog reads like a plumbing checklist, buy a Nuxt boilerplate that already ships the foundations and is shaped for Cursor. You will spend your prompts on product decisions instead of wiring. The result is a working SaaS you can price and share, not another weekend of setup.

Key takeaways

  • Give Cursor a clear Nuxt brief and ask for diffs, risks, and commit messages before it writes.
  • Scaffold core pages, layouts, and SEO in one pass, then reuse a small set of typed UI components.
  • Implement auth, billing, i18n, uploads, and emails once with provider-agnostic server routes and strict middleware.
  • Add analytics, a blog, and cron jobs early so you see signal and drive retention from day one.
  • Use a checklist that mirrors the starter kit and keep prompts small so speed does not break safety.

FAQ

What is Cursor and how does it help with Nuxt?

Cursor is an AI coding editor that can read your repo and propose edits. With a clear project brief, it can scaffold Nuxt pages, wire middleware, and generate consistent components faster.

Can I use Cursor with a Nuxt SaaS starter kit?

Yes. A Nuxt SaaS starter kit that’s designed to work with AI coding tools lets Cursor handle auth, payments, i18n, emails, and more through targeted prompts.

How do I prompt Cursor to set up authentication in Nuxt?

Point it to the starter kit’s auth files, describe the flows you want, and ask it to add middleware for protected pages. Request diffs first, then test sign up, sign in, and reset.

Is it safe to let an AI edit my Nuxt repo?

Keep edits diff-first and small, require file citations, and review before saving. This workflow is safe and helps you catch regressions early.

How do I build and sell an AI tool online with Nuxt?

Start with a Nuxt starter kit that includes AI chat, text, and image modules plus payments. Use Cursor to connect the flows, add pricing, and publish a landing page.

Ready to ship your SaaS?

Everything you need is already built. Start today.
See Demo