{"repo":"ixartz/SaaS-Boilerplate","free":true,"listed":false,"github":"https://github.com/ixartz/SaaS-Boilerplate","clone":"git clone https://github.com/ixartz/SaaS-Boilerplate.git","description":"🚀🎉📚 SaaS Boilerplate built with Next.js + Tailwind CSS + Shadcn UI + TypeScript. ⚡️ Full-stack React application with Auth, Multi-tenancy, Roles & Permissions, i18n, Landing Page, DB, Logging, Testing","language":"TypeScript","stars":7361,"topics":["authentication","boilerplate","multi-tenancy","nextjs","react","reactjs","saas","saas-app","saas-application","saas-boilerplate","saas-kit","shadcn-ui","stack","starter","starter-kit","starter-project","starter-template","template","template-project","typescript"],"license":"MIT","category":"saas_boilerplate","readme_excerpt":"# Free and Open Source SaaS Boilerplate with Tailwind CSS and Shadcn UI\n\n<p align=\"center\">\n  <a href=\"https://react-saas.com\"><img height=\"300\" src=\"public/assets/images/nextjs-starter-banner.png?raw=true\" alt=\"Next.js SaaS Template\"></a>\n</p>\n\n🚀 **SaaS Boilerplate** is a powerful and fully customizable template to kickstart your SaaS applications. Built with **Next.js** and **Tailwind CSS**, and the modular UI components of **Shadcn UI**. This **Next.js SaaS Template** helps you to quickly build and launch SaaS with minimal effort.\n\nPacked with essential features like built-in **Authentication**, **Multi-Tenancy** with Team support, **Role & Permission**, Database, I18n (internationalization), Landing Page, User Dashboard, Form handling, SEO optimization, Logging, Error reporting with [Sentry](https://sentry.io/for/nextjs/?utm_source=github&utm_medium=paid-community&utm_campaign=general-fy25q1-nextjs&utm_content=github-banner-nextjsboilerplate-logo), Testing, Deployment, Monitoring, and **User Impersonation**, this SaaS template provides everything you need to get started.\n\nDesigned with developers in mind, this **Next.js Starter Kit** uses TypeScript for type safety and integrates ESLint to maintain code quality, along with Prettier for consistent code formatting. The testing suite combines Vitest and Playwright for robust unit, integration, and E2E testing. Continuous integration and deployment are managed via GitHub Actions. For user management, authentication is handled by [Clerk](https://go.clerk.com/zGlzydF). For database operations, it uses Drizzle ORM for type-safe database management across popular databases like PostgreSQL, SQLite, and MySQL. One recommended option is to use [Neon](https://get.neon.com/BMFYNtx), which provides a free PostgreSQL database that is compatible and has been tested with SaaS Boilerplate.\n\nWhether you're building a new SaaS app or looking for a flexible, **production-ready SaaS template**, this boilerplate has you covered. This free, open-source starter kit has everything you need to accelerate your development and scale your product with ease.\n\nClone this project and use it to create your own SaaS. You can check the live demo at [SaaS Boilerplate](https://react-saas.com), which is a demo with a working authentication and multi-tenancy system.\n\n## Sponsors\n\n<table width=\"100%\">\n  <tr height=\"187px\">\n    <td align=\"center\" width=\"33%\">\n      <a href=\"https://go.clerk.com/zGlzydF\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/ixartz/SaaS-Boilerplate/assets/1328388/6fb61971-3bf1-4580-98a0-10bd3f1040a2\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/ixartz/SaaS-Boilerplate/assets/1328388/f80a8bb5-66da-4772-ad36-5fabc5b02c60\">\n          <img alt=\"Clerk – Authentication & User Management for Next.js\" src=\"https://github.com/ixartz/SaaS-Boilerplate/assets/1328388/f80a8bb5-66da-4772-ad36-5fabc5b02c60\">\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\" width=\"33%\">\n      <a href=\"https://www.coderabbit.ai?utm_source=next_js_starter&utm_medium=github&utm_campaign=next_js_starter_oss_2025\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"public/assets/images/coderabbit-logo-dark.svg?raw=true\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"public/assets/images/coderabbit-logo-light.svg?raw=true\">\n          <img alt=\"CodeRabbit\" src=\"public/assets/images/coderabbit-logo-light.svg?raw=true\">\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\" width=\"33%\">\n      <a href=\"https://sentry.io/for/nextjs/?utm_source=github&utm_medium=paid-community&utm_campaign=general-fy25q1-nextjs&utm_content=github-banner-nextjsboilerplate-logo\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"public/assets/images/sentry-white.png?raw=true\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"public/assets/images/sentry-dark.png?raw=true\">\n          <img alt=\"Sentry\" src=\"public/assets/images/sentry-dark.png?raw=true\">\n        </picture>\n      </a>\n      <a href=\"https://about.codecov.io/codecov-free-trial/?utm_source=github&utm_medium=paid-community&utm_campaign=general-fy25q1-nextjs&utm_content=github-banner-nextjsboilerplate-logo\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"public/assets/images/codecov-white.svg?raw=true\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"public/assets/images/codecov-dark.svg?raw=true\">\n          <img alt=\"Codecov\" src=\"public/assets/images/codecov-dark.svg?raw=true\">\n        </picture>\n      </a>\n    </td>\n  </tr>\n  <tr height=\"187px\">\n    <td align=\"center\" width=\"33%\">\n      <a href=\"https://launch.arcjet.com/Q6eLbRE\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"public/assets/images/arcjet-dark.svg?raw=true\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"public/assets/images/arcjet-light.svg?raw=true\">\n          <img alt=\"Arcjet\" src=\"public/assets/images/arcjet-light.svg?raw=true\">\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\" width=\"33%\">\n      <a href=\"https://l.crowdin.com/next-js\">\n        <picture>\n          <source media=\"(prefers-color-scheme: dark)\" srcset=\"public/assets/images/crowdin-white.png?raw=true\">\n          <source media=\"(prefers-color-scheme: light)\" srcset=\"public/assets/images/crowdin-dark.png?raw=true\">\n          <img alt=\"Crowdin\" src=\"public/assets/images/crowdin-dark.png?raw=true\">\n        </picture>\n      </a>\n    </td>\n    <td align=\"center\" style=width=\"33%\">\n      <a href=\"https://nextjs-boilerplate.com/pro-saas-starter-kit\">\n        <img src=\"public/assets/images/nextjs-boilerplate-saas.png?raw=true\" alt=\"Next.js SaaS Boilerplate with React\" />\n      </a>\n    </td>\n  </tr>\n  <tr height=\"187px\">\n    <td align=\"center\" width=\"33%\">\n      <a href=\"mailto:contact@creativedesignsguru.com\">\n        Add your logo here\n      </a>\n    </td>\n  </tr>\n</table>\n\n### Demo\n\n**Live demo: [SaaS Boilerplate](https://react-saas.com)**\n\n| Landing Page | User Dashboard |\n| --- | --- |\n| [![Next.js Boilerplate SaaS Landing Page](public/assets/images/nextjs-boilerplate-saas-landing-page.png)](https://react-saas.com) | [![Next.js Boilerplate SaaS User Dashboard](public/assets/images/nextjs-boilerplate-saas-user-dashboard.png)](https://react-saas.com/dashboard) |\n\n| Team Management | User Profile |\n| --- | --- |\n| [![Next.js Boilerplate SaaS Team Management](public/assets/images/nextjs-boilerplate-saas-multi-tenancy.png)](https://react-saas.com/dashboard/organization-profile/organization-members) | [![Next.js Boilerplate SaaS User Profile](public/assets/images/nextjs-boilerplate-saas-user-profile.png)](https://react-saas.com/dashboard/user-profile) |\n\n| Sign Up | Sign In |\n| --- | --- |\n| [![Next.js Boilerplate SaaS Sign Up](public/assets/images/nextjs-boilerplate-saas-sign-up.png)](https://react-saas.com/sign-up) | [![Next.js Boilerplate SaaS Sign In](public/assets/images/nextjs-boilerplate-saas-sign-in.png)](https://react-saas.com/sign-in) |\n\n| Landing Page with Dark Mode (Pro Version) | User Dashboard with Dark Mode (Pro Version) |\n| --- | --- |\n| [![Next.js Boilerplate SaaS Landing Page Dark Mode](public/assets/images/nextjs-boilerplate-saas-landing-page-dark-mode.png)](https://pro-demo.nextjs-boilerplate.com) | [![Next.js Boilerplate SaaS User Dashboard Dark Mode](public/assets/images/nextjs-boilerplate-saas-user-dashboard-sidebar-dark-mode.png)](https://pro-demo.nextjs-boilerplate.com/dashboard) |\n\n| User Dashboard with Sidebar (Pro Version) |\n| --- |\n| [![Next.js Boilerplate SaaS User Dashboard Sidebar](public/assets/images/nextjs-boilerplate-saas-user-dashboard-sidebar.png)](https://pro-demo.nextjs-boilerplate.com) |\n\n### Features\n\nDeveloper experience first, extremely flexible code structure and only keep what you need:\n\n- ⚡ [Next.js](https://nextjs.org) with App Router support\n- 🔥 Type checking [TypeScript](https://www.typescriptlang.org)\n- 💎 Integrate with [Tailwind CSS](https://tailwindcss.com) and Shadcn UI\n- ✅ Strict Mode for TypeScript and React 19\n- 🔒 Authentication with [Clerk](https://go.clerk.com/zGlzydF): Sign up, Sign in, Sign out, Forgot password, Reset password, and more.\n- 👤 Passwordless Authentication with Magic Links, Multi-Factor Auth (MFA), Social Auth (Google, Facebook, Twitter, GitHub, Apple, and more), Passwordless login with Passkeys, User Impersonation\n- 👥 Multi-tenancy & team support: create, switch, update organization and invite team members\n- 📝 Role-based access control and permissions\n- 👤 Multi-Factor Auth (MFA), Social Auth (Google, Facebook, Twitter, GitHub, Apple, and more), User Impersonation\n- 📦 Type-safe ORM with DrizzleORM, compatible with PostgreSQL, SQLite, and MySQL\n- 💽 Offline and local development database with PGlite\n- ☁️ Remote and production database with [Neon](https://get.neon.com/BMFYNtx)\n- 🌐 Multi-language (i18n) with [next-intl](https://next-intl-docs.vercel.app/) and [Crowdin](https://l.crowdin.com/next-js)\n- ♻️ Type-safe environment variables with T3 Env\n- ⌨️ Form with [React Hook Form](https://react-hook-form.com)\n- 🔴 Validation library with [Zod](https://zod.dev)\n- 📏 Linter with [ESLint](https://eslint.org) (default NextJS, NextJS Core Web Vitals, Tailwind CSS and Antfu configuration)\n- 💖 Code Formatter with [Prettier](https://prettier.io)\n- 🦊 Lefthook for Git hooks\n- 🚓 Lint git commit with Commitlint\n- 📓 Write standard compliant commit messages with Commitizen\n- 🦺 Unit Testing with [Vitest](https://vitest.dev) and Browser Mode\n- 🧪 Integration and E2E Testing with [Playwright](https://playwright.dev)\n- 👷 Run tests on pull requests with GitHub Actions\n- 🎉 [Storybook](https://storybook.js.org) for UI development\n- 🚨 Error Monitoring with [Sentry](https://sentry.io/for/nextjs/?utm_source=github&utm_medium=paid-community&utm_campaign=general-fy25q1-nextjs&utm_content=github","default_branch":"main","files":155,"tree":[".env",".env.production",".github/FUNDING.yml",".github/actions/setup-project/action.yml",".github/dependabot.yml",".github/workflows/CI.yml",".github/workflows/checkly.yml",".github/workflows/crowdin.yml",".github/workflows/release.yml",".gitignore",".storybook/main.ts",".storybook/preview.ts",".storybook/vitest.config.ts",".storybook/vitest.setup.ts",".vscode/extensions.json",".vscode/launch.json",".vscode/settings.json",".vscode/tasks.json","LICENSE","README.md","checkly.config.ts","codecov.yml","commitlint.config.ts","components.json","crowdin.yml","drizzle.config.ts","eslint.config.mjs","knip.config.ts","lefthook.yml","migrations/0000_init-db.sql","migrations/meta/0000_snapshot.json","migrations/meta/_journal.json","next.config.ts","package-lock.json","package.json","playwright.config.ts","public/apple-touch-icon.png","public/assets/images/arcjet-dark.svg","public/assets/images/arcjet-light.svg","public/assets/images/clerk-logo-dark.png","public/assets/images/clerk-logo-white.png","public/assets/images/codecov-dark.svg","public/assets/images/codecov-white.svg","public/assets/images/coderabbit-logo-dark.svg","public/assets/images/coderabbit-logo-light.svg","public/assets/images/crowdin-dark.png","public/assets/images/crowdin-white.png","public/assets/images/nextjs-boilerplate-saas-landing-page-dark-mode.png","public/assets/images/nextjs-boilerplate-saas-landing-page.png","public/assets/images/nextjs-boilerplate-saas-multi-tenancy.png","public/assets/images/nextjs-boilerplate-saas-sign-in.png","public/assets/images/nextjs-boilerplate-saas-sign-up.png","public/assets/images/nextjs-boilerplate-saas-user-dashboard-dark-mode.png","public/assets/images/nextjs-boilerplate-saas-user-dashboard-sidebar-dark-mode.png","public/assets/images/nextjs-boilerplate-saas-user-dashboard-sidebar.png","public/assets/images/nextjs-boilerplate-saas-user-dashboard.png","public/assets/images/nextjs-boilerplate-saas-user-profile.png","public/assets/images/nextjs-boilerplate-saas.png","public/assets/images/nextjs-starter-banner.png","public/assets/images/sentry-dark.png","public/assets/images/sentry-white.png","public/assets/images/surveyjs.svg","public/favicon-16x16.png","public/favicon-32x32.png","public/favicon.ico","skills/saas-builder/SKILL.md","src/app/[locale]/(auth)/(center)/layout.tsx","src/app/[locale]/(auth)/(center)/sign-in/[[...sign-in]]/page.tsx","src/app/[locale]/(auth)/(center)/sign-up/[[...sign-up]]/page.tsx","src/app/[locale]/(auth)/dashboard/layout.tsx","src/app/[locale]/(auth)/dashboard/organization-profile/[[...organization-profile]]/page.tsx","src/app/[locale]/(auth)/dashboard/page.tsx","src/app/[locale]/(auth)/dashboard/user-profile/[[...user-profile]]/page.tsx","src/app/[locale]/(auth)/layout.tsx","src/app/[locale]/(auth)/onboarding/organization-selection/page.tsx","src/app/[locale]/(marketing)/page.tsx","src/app/[locale]/layout.tsx","src/app/global-error.tsx","src/app/robots.ts","src/app/sitemap.ts","src/components/ActiveLink.tsx","src/components/Background.stories.tsx","src/components/Background.tsx","src/components/DemoBadge.tsx","src/components/LocaleSwitcher.tsx","src/components/MenuToggle.test.tsx","src/components/MenuToggle.tsx","src/components/ui/accordion.tsx","src/components/ui/badge.tsx","src/components/ui/badgeVariants.ts","src/components/ui/button.tsx","src/components/ui/buttonVariants.ts","src/components/ui/dropdown-menu.tsx","src/components/ui/separator.tsx","src/features/billing/PricingCard.tsx","src/features/billing/PricingFeatureItem.tsx","src/features/billing/PricingFeatureList.tsx","src/features/dashboard/CenteredContainer.tsx","src/features/dashboard/DashboardHeader.tsx","src/features/dashboard/MobileNavigation.tsx","src/features/dashboard/OrganizationMenu.tsx","src/features/dashboard/PageMessage.tsx","src/features/dashboard/SlashIcon.tsx","src/features/dashboard/TitleBar.tsx","src/features/landing/CTABanner.tsx","src/features/landing/CenteredFooter.test.tsx","src/features/landing/CenteredFooter.tsx","src/features/landing/CenteredHero.tsx","src/features/landing/CenteredMenu.tsx","src/features/landing/FeatureCard.tsx","src/features/landing/LogoCloud.tsx","src/features/landing/Section.tsx","src/features/landing/StickyBanner.tsx","src/features/sponsors/SponsorLogos.tsx","src/hooks/UseMenu.test.ts","src/hooks/UseMenu.ts","src/instrumentation-client.ts","src/instrumentation.ts","src/libs/DB.ts","src/libs/Env.ts","src/libs/I18n.ts","src/libs/I18nNavigation.ts","src/libs/I18nRouting.ts","src/libs/Logger.ts","src/locales/en.json","src/locales/fr.json","src/models/Schema.ts","src/proxy.ts","src/styles/global.css","src/templates/CTA.tsx","src/templates/DemoBanner.tsx","src/templates/FAQ.tsx","src/templates/Features.tsx","src/templates/Footer.tsx","src/templates/Hero.tsx","src/templates/Logo.tsx","src/templates/Navbar.tsx","src/templates/Pricing.tsx","src/templates/Sponsors.tsx","src/types/Auth.ts","src/types/Enum.ts","src/types/I18n.ts","src/types/Subscription.ts","src/types/globals.d.ts","src/utils/AppConfig.ts","src/utils/DBConnection.ts","src/utils/Helpers.test.ts","src/utils/Helpers.ts","src/utils/PricingPlans.ts","tests/e2e/I18n.e2e.ts","tests/e2e/Sanity.check.e2e.ts","tests/e2e/Visual.e2e.ts","tests/integration/.gitkeep","tsconfig.json","vitest.config.ts"],"storefront":"/r/ixartz","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ixartz/SaaS-Boilerplate/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}