supastarter uses a monorepo structure, which allows you to easily extend your project (for example with a mobile app) and share code and configs between applications.
By default the monorepo contains the following apps and packages:
apps saas – SaaS application (port 3000)
marketing – Marketing site (port 3001)
docs – Documentation (VitePress, port 3002)
mail-preview – Email template preview (Maizzle, port 3005)
packages api – API server (oRPC + Hono)
auth – Authentication setup (Better Auth)
database – Database setup (Prisma + Drizzle)
i18n – Internationalization config and translations
mail – Mail provider and templates
payments – Payment providers and billing logic
storage – Storage providers and upload logic
ui – Shared UI components
utils – Shared utilities and helpers
tooling – Configuration for the monorepo tailwind – Tailwind config and theme
typescript – TypeScript config
The SaaS application is located in the apps/saas folder. It contains the following folders:
modules ai – AI integration components
auth – Authentication pages and composables
dashboard – Dashboard page
onboarding – Onboarding flow
organizations – Organization management
payments – Billing and payment components
settings – User and organization settings
shared – Shared components, composables and utilities
pages – Nuxt file-based routes
server – Backend API handler
plugins – Vue plugins (oRPC client, Vue Query)
i18n – i18n configuration
assets – Static assets and CSS
types – TypeScript type definitions
The marketing application is located in the apps/marketing folder:
modules analytics – Analytics providers
blog – Blog pages and components
changelog – Changelog page
home – Homepage components
shared – Shared components and utilities
pages – Nuxt file-based routes
content – Markdown content (blog posts, legal pages)
i18n – i18n configuration
assets – Static assets and CSS