Tech Stack
For a better understanding of the codebase, let's first go over the tools and libraries that supastarter uses and why we chose them.
Turborepo
TurboRepo is a monorepo tool that helps you manage your project's dependencies and scripts. We chose a monorepo setup to make it easier to manage to structure the different features and enable code sharing between the different packages. It also allows you to easily add further apps (like a mobile app or a different frontend) to the project and reuse the existing codebase.
Nuxt
Nuxt is a one of the most popular Vue frameworks. We use it for the frontend of supastarter and also utilize it's api functions to serve the API for the application.
Prisma
Prisma is an ORM (Object-Relational Mapping) tool that helps you access your database in a type-safe way. We use Prisma to define our database schema and to generate the necessary TypeScript types for our application. It also helps us to write queries in a type-safe way and to easily migrate our database schema.
Lucia Auth
Lucia Auth is an authentication library that helps you manage user authentication and authorization in your application. Unlike popular authentication services like Auth0 or Clerk, Lucia Auth is a self-hosted solution that you can run on your own infrastructure. This gives you full control over your user data and authentication flow.
Tailwind CSS
Tailwind CSS is a utility-first CSS framework that helps you build custom designs without writing any CSS. We use it to style the frontend of supastarter and to create a consistent design system.
Radix Vue
Radix Vue is a collection of headless UI components that help you build accessible and composable user interfaces. supastarter is also compatible with the popular wrapper of Radix called shadcn-vue and enables you to generate pre-designed components with a single command.
nuxt/content
nuxt/content is a markdown-based CMS that helps you manage your content in a structured way within your codebase. We use it to manage the content of the supastarter blog, the documentation and other content pages (like the legal pages) with MDX.