{"id":24167268,"url":"https://github.com/makerkit/nextjs-saas-starter-kit-lite","last_synced_at":"2025-04-06T12:07:30.173Z","repository":{"id":269003036,"uuid":"905496651","full_name":"makerkit/nextjs-saas-starter-kit-lite","owner":"makerkit","description":"Lite version of the Makerkit SaaS Starter Kit based on Next.js and Supabase","archived":false,"fork":false,"pushed_at":"2025-02-24T02:52:36.000Z","size":1303,"stargazers_count":107,"open_issues_count":1,"forks_count":39,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T11:06:54.630Z","etag":null,"topics":["nextjs-boilerplate","nextjs-starter","saas-boilerplate","saas-template","supabase"],"latest_commit_sha":null,"homepage":"https://makerkit.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makerkit.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-19T00:22:49.000Z","updated_at":"2025-03-29T12:11:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"53c9db91-16dd-49aa-b7e6-535cac701805","html_url":"https://github.com/makerkit/nextjs-saas-starter-kit-lite","commit_stats":null,"previous_names":["makerkit/nextjs-saas-starter-kit-lite"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerkit%2Fnextjs-saas-starter-kit-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerkit%2Fnextjs-saas-starter-kit-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerkit%2Fnextjs-saas-starter-kit-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makerkit%2Fnextjs-saas-starter-kit-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makerkit","download_url":"https://codeload.github.com/makerkit/nextjs-saas-starter-kit-lite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478318,"owners_count":20945266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs-boilerplate","nextjs-starter","saas-boilerplate","saas-template","supabase"],"created_at":"2025-01-12T21:12:53.475Z","updated_at":"2025-04-06T12:07:30.143Z","avatar_url":"https://github.com/makerkit.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Makerkit - Next.js Supabase SaaS Starter Kit \\[Lite version\\]](apps/web/public/images/makerkit.webp)\n\n# NEW! Next.js Supabase SaaS Starter Kit (Lite)\n\nStart building your SaaS faster with our Next.js 15 + Supabase starter kit.\n\n👉 **Looking for a full-featured SaaS Starter Kit?** [Check out the complete version](https://makerkit.dev)\n\n⭐️ **Why Developers Trust Makerkit:**\n- Production-grade architecture decisions\n- Comprehensive TypeScript setup\n- Modern stack: Next.js 15, Supabase, TailwindCSS v4\n- Quality Code tooling: ESLint v9, Prettier, strict TypeScript, etc.\n- Regular updates and active maintenance\n\nPS: the documentation for this kit is still being updated, so please check back later for more details.\n\n## What's Included\n\n### Core Architecture\n- 🏗️ Next.js 15 + Turborepo monorepo setup\n- 🎨 Shadcn UI components with TailwindCSS v4\n- 🔐 Supabase authentication \u0026 basic DB\n- 🌐 i18n translations (client + server)\n- ✨ Full TypeScript + ESLint v9 + Prettier configuration\n\n### Key Features\n- 👤 User authentication flow\n- ⚙️ User profile \u0026 settings\n- 📱 Responsive marketing pages\n- 🔒 Protected routes\n- 🎯 Basic test setup with Playwright\n\n### Technologies\n\nThis starter kit provides core foundations:\n\n🛠️ **Technology Stack**:\n- [Next.js 15](https://nextjs.org/): A React-based framework for server-side rendering and static site generation.\n- [Tailwind CSS](https://tailwindcss.com/): A utility-first CSS framework for rapidly building custom designs.\n- [Supabase](https://supabase.com/): A realtime database for web and mobile applications.\n- [i18next](https://www.i18next.com/): A popular internationalization framework for JavaScript.\n- [Turborepo](https://turborepo.org/): A monorepo tool for managing multiple packages and applications.\n- [Shadcn UI](https://shadcn.com/): A collection of components built using Tailwind CSS.\n- [Zod](https://github.com/colinhacks/zod): A TypeScript-first schema validation library.\n- [React Query](https://tanstack.com/query/v4): A powerful data fetching and caching library for React.\n- [Prettier](https://prettier.io/): An opinionated code formatter for JavaScript, TypeScript, and CSS.\n- [Eslint](https://eslint.org/): A powerful linting tool for JavaScript and TypeScript.\n- [Playwright](https://playwright.dev/): A framework for end-to-end testing of web applications.\n\nThis kit is a trimmed down version of the [full version of this SaaS Starter Kit](https://makerkit.dev). It is a good way to evaluate small part of the full kit, or to simply use it as a base for your own project.\n\n## Comparing Lite vs Full Version\n\nThe lite kit is perfect for:\n- Evaluating our code architecture and patterns\n- Building basic SaaS prototypes\n- Learning our tech stack approach\n- Building a basic SaaS tool\n\nThe [full version](https://makerkit.dev) adds production features:\n- 💳 Complete billing and subscription system\n- 👥 Team accounts and management\n- 📧 Mailers and Email Templates (Nodemailer, Resend, etc.)\n- 📊 Analytics (GA, Posthog, Umami, etc.)\n- 🔦 Monitoring providers (Sentry, Baselime, etc.)\n- 🔐 Production database schema\n- ✅ Comprehensive test suite\n- 🔔 Realtime Notifications\n- 📝 Blogging system\n- 💡 Documentation system\n- ‍💻 Super Admin panel\n- 🕒 Daily updates and improvements\n- 🐛 Priority bug fixes\n- 🤝 Support\n- ⭐️ Used by 1000+ developers\n- 💪 Active community members\n- 🏢 Powers startups to enterprises\n\n[View complete feature comparison →](https://makerkit.dev/#pricing)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18.x or later (preferably the latest LTS version)\n- Docker\n- PNPM\n\nPlease make sure you have a Docker daemon running on your machine. This is required for the Supabase CLI to work.\n\n### Installation\n\n#### 1. Clone this repository\n\n```bash\ngit clone https://github.com/makerkit/next-supabase-saas-kit-lite.git\n```\n\n#### 2. Install dependencies\n\n```bash\npnpm install\n```\n\n#### 3. Start Supabase\n\nPlease make sure you have a Docker daemon running on your machine.\n\nThen run the following command to start Supabase:\n\n```bash\npnpm run supabase:web:start\n```\n\nOnce the Supabase server is running, please access the Supabase Dashboard using the port in the output of the previous command. Normally, you find it at [http://localhost:54323](http://localhost:54323).\n\nYou will also find all the Supabase services printed in the terminal after the command is executed.\n\n##### Stopping Supabase\n\nTo stop the Supabase server, run the following command:\n\n```bash\npnpm run supabase:web:stop\n```\n\n##### Resetting Supabase\n\nTo reset the Supabase server, run the following command:\n\n```bash\npnpm run supabase:web:reset\n```\n\n##### More Supabase Commands\n\nFor more Supabase commands, see the [Supabase CLI documentation](https://supabase.com/docs/guides/cli).\n\n```\n# Create new migration\npnpm --filter web supabase migration new \u003cname\u003e\n\n# Link to Supabase project\npnpm --filter web supabase db link\n\n# Push migrations\npnpm --filter web supabase db push\n```\n\n#### 4. Start the Next.js application\n\n```bash\npnpm run dev\n```\n\nThe application will be available at http://localhost:3000.\n\n#### 5. Code Health (linting, formatting, etc.)\n\nTo format your code, run the following command:\n\n```bash\npnpm run format:fix\n```\n\nTo lint your code, run the following command:\n\n```bash\npnpm run lint\n```\n\nTo validate your TypeScript code, run the following command:\n\n```bash\npnpm run typecheck\n```\n\nTurborepo will cache the results of these commands, so you can run them as many times as you want without any performance impact.\n\n## Project Structure\n\nThe project is organized into the following folders:\n\n```\napps/\n├── web/                  # Next.js application\n│   ├── app/             # App Router pages\n│   │   ├── (marketing)/ # Public marketing pages\n│   │   ├── auth/        # Authentication pages\n│   │   └── home/        # Protected app pages\n│   ├── supabase/        # Database \u0026 migrations\n│   └── config/          # App configuration\n│\npackages/\n├── ui/                  # Shared UI components\n└── features/           # Core feature packages\n    ├── auth/           # Authentication logic\n    └── ...\n```\n\nFor more information about this project structure, see the article [Next.js App Router: Project Structure](https://makerkit.dev/blog/tutorials/nextjs-app-router-project-structure).\n\n### Environment Variables\n\nYou can configure the application by setting environment variables in the `.env.local` file.\n\nHere are the available variables:\n\n| Variable Name | Description | Default Value |\n| --- | --- | --- |\n| `NEXT_PUBLIC_SITE_URL` | The URL of your SaaS application | `http://localhost:3000` |\n| `NEXT_PUBLIC_PRODUCT_NAME` | The name of your SaaS product | `Makerkit` |\n| `NEXT_PUBLIC_SITE_TITLE` | The title of your SaaS product | `Makerkit - The easiest way to build and manage your SaaS` |\n| `NEXT_PUBLIC_SITE_DESCRIPTION` | The description of your SaaS product | `Makerkit is the easiest way to build and manage your SaaS. It provides you with the tools you need to build your SaaS, without the hassle of building it from scratch.` |\n| `NEXT_PUBLIC_DEFAULT_THEME_MODE` | The default theme mode of your SaaS product | `light` |\n| `NEXT_PUBLIC_THEME_COLOR` | The default theme color of your SaaS product | `#ffffff` |\n| `NEXT_PUBLIC_THEME_COLOR_DARK` | The default theme color of your SaaS product in dark mode | `#0a0a0a` |\n| `NEXT_PUBLIC_SUPABASE_URL` | The URL of your Supabase project | `http://127.0.0.1:54321` |\n| `NEXT_PUBLIC_SUPABASE_ANON_KEY` | The anon key of your Supabase project | ''\n| `SUPABASE_SERVICE_ROLE_KEY` | The service role key of your Supabase project | ''\n\n## Architecture\n\nThis starter kit uses a monorepo architecture.\n\n1. The `apps/web` directory is the Next.js application.\n2. The `packages` directory contains all the packages used by the application.\n3. The `packages/features` directory contains all the features of the application.\n4. The `packages/ui` directory contains all the UI components.\n\nFor more information about the architecture, please refer to the [Makerkit blog post about Next.js Project Structure](https://makerkit.dev/blog/tutorials/nextjs-app-router-project-structure).\n\n### Marketing Pages\n\nMarketing pages are located in the `apps/web/app/(marketing)` directory. These pages are used to showcase the features of the SaaS and provide information about the product.\n\n### Authentication\n\nAuthenticated is backed by Supabase. The `apps/web/app/auth` directory contains the authentication pages, however, the logic is into its own package `@kit/auth` located in `packages/features/auth`.\n\nThis package can be used across multiple applications.\n\n### Gated Pages\n\nGated pages are located in the `apps/web/app/home` directory. Here is where you can build your SaaS pages that are gated by authentication.\n\n### Database\n\nThe Supabase database is located in the `apps/web/supabase` directory. In this directory you will find the database schema, migrations, and seed data.\n\n#### Creating a new migration\nTo create a new migration, run the following command:\n\n```bash\npnpm --filter web supabase migration new --name \u003cmigration-name\u003e\n```\n\nThis command will create a new migration file in the `apps/web/supabase/migrations` directory. \n\n#### Applying a migration\n\nOnce you have created a migration, you can apply it to the database by running the following command:\n\n```bash\npnpm run supabase:web:reset\n```\n\nThis command will apply the migration to the database and update the schema. It will also reset the database using the provided seed data.\n\n#### Linking the Supabase database\n\nLinking the local Supabase database to the Supabase project is done by running the following command:\n\n```bash\npnpm --filter web supabase db link\n```\n\nThis command will link the local Supabase database to the Supabase project.\n\n#### Pushing the migration to the Supabase project\n\nAfter you have made changes to the migration, you can push the migration to the Supabase project by running the following command:\n\n```bash\npnpm --filter web supabase db push\n```\n\nThis command will push the migration to the Supabase project. You can now apply the migration to the Supabase database.\n\n## Going to Production\n\n#### 1. Create a Supabase project\n\nTo deploy your application to production, you will need to create a Supabase project.\n\n#### 2. Push the migration to the Supabase project\n\nAfter you have made changes to the migration, you can push the migration to the Supabase project by running the following command:\n\n```bash\npnpm --filter web supabase db push\n```\n\nThis command will push the migration to the Supabase project.\n\n#### 3. Set the Supabase Callback URL\n\nWhen working with a remote Supabase project, you will need to set the Supabase Callback URL.\n\nPlease set the callback URL in the Supabase project settings to the following URL:\n\n`\u003curl\u003e/auth/callback`\n\nWhere `\u003curl\u003e` is the URL of your application.\n\n#### 4. Deploy to Vercel or any other hosting provider\n\nYou can deploy your application to any hosting provider that supports Next.js.\n\n#### 5. Deploy to Cloudflare\n\nThe configuration should work as is, but you need to set the runtime to `edge` in the root layout file (`apps/web/app/layout.tsx`).\n\n```tsx\nexport const runtime = 'edge';\n```\n\nRemember to enable Node.js compatibility in the Cloudflare dashboard.\n\n## Contributing\n\nContributions for bug fixed are welcome! However, please open an issue first to discuss your ideas before making a pull request.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n\n## Support\n\nNo support is provided for this kit. Feel free to open an issue if you have any questions or need help, but there is no guaranteed response time, nor guarantee a fix.\n\nFor dedicated support, priority fixes, and advanced features, [check out our full version](https://makerkit.dev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerkit%2Fnextjs-saas-starter-kit-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakerkit%2Fnextjs-saas-starter-kit-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakerkit%2Fnextjs-saas-starter-kit-lite/lists"}