Production-ready Next.js 16 boilerplate for building multi-branch SaaS applications. Enterprise-grade RBAC, audit logging, real-time collaboration, and hierarchical organization managementโall in one powerful starter template.
Launch your multi-location business faster. Skip months of foundational work and start building features that matter.
| Category | Features |
|---|---|
| ๐ Auth & Security | Supabase Auth โข Row-Level Security โข RBAC (96 permissions) โข Password Reset โข Email Notifications |
| ๐๏ธ Architecture | Multi-branch Hierarchy โข Soft Delete Pattern โข Audit Trail (8 tables) โข Server Components โข Server Actions |
| โก Real-time | Live Data Sync โข WebSocket Updates โข Collaborative Editing โข Toast Notifications |
| ๐ File Management | Avatar Upload โข Logo Upload โข Supabase Storage โข Image Optimization |
| ๐งช Testing | Playwright E2E (16 tests) โข Vitest Unit Tests โข Coverage Reports โข CI/CD Ready |
| ๐จ UI/UX | Dark/Light Mode โข Responsive Design โข shadcn/ui โข Tailwind CSS 4 โข Professional Themes |
| ๐ง Email | Transactional Emails โข React Email Templates โข Welcome โข Password Reset โข Role Changes |
| ๐ ๏ธ Developer Tools | Permission Matrix โข Sample Data Seeding โข Database Reset โข TypeScript โข ESLint |
Building a multi-location SaaS application requires solving the same foundational challenges every time:
- Complex RBAC: Managing permissions across organizational hierarchies (HQ โ Branch โ Sub-branch) is tedious and error-prone
- Audit Requirements: Compliance and business needs demand complete tracking of who did what and when
- Real-time Collaboration: Modern users expect instant updates without manual refreshes
- Security First: Implementing proper RLS, authentication, and authorization takes weeks
- Boilerplate Fatigue: Setting up auth, file uploads, email, testing infrastructure eats 40-60% of early development time
Most teams spend 2-3 months on these foundations before building actual business features.
Next.js Multi-Branch Boilerplate provides everything you need to launch a production-ready multi-location application in days, not months.
| Task | Typical Time | With Boilerplate | Saved |
|---|---|---|---|
| Auth setup (Supabase + RLS) | 1-2 weeks | 5 minutes | ~10 days |
| RBAC system (6 roles, 96 permissions) | 3-4 weeks | Pre-configured | ~21 days |
| Audit logging (8 tables, soft delete) | 1-2 weeks | Built-in | ~10 days |
| Real-time updates infrastructure | 1 week | Hooks ready | ~5 days |
| File upload system | 3-5 days | Integrated | ~4 days |
| Email system (templates + sending) | 1 week | 4 templates ready | ~5 days |
| E2E + Unit testing setup | 1 week | Configured | ~5 days |
| Total saved | ~60 days | ~30 minutes | Save 2-3 months |
- Complete authentication flow with Supabase Auth
- 6 pre-configured roles (Super Admin โ Regular User) with 96 granular permissions
- Hierarchical branch system supporting HQ โ Branch โ Sub-branch organizational structures
- Complete audit trail with soft deletes across all entities
- Real-time collaboration with WebSocket-powered live updates
- File upload system for avatars and logos with Supabase Storage
- Email notification system with 4 professional React Email templates
- E2E test suite with 16 Playwright tests covering major workflows
- Developer admin tools for permission management and data seeding
- Modern UI with dark/light themes and responsive design
96 Granular Permissions organized into 4 scopes:
- CREATE: Control who can create new entities (users, branches, tickets, etc.)
- READ: Manage data visibility across organizational hierarchy
- UPDATE: Fine-tune edit permissions for different user levels
- DELETE: Secure deletion rights with soft-delete audit trail
6 Role Levels with inheritance:
1. SUPER_ADMIN โ Full system access (level 100)
2. GENERAL_MANAGER โ Cross-branch management (level 80)
3. BRANCH_MANAGER โ Branch administration (level 60)
4. STAFF_ADMIN โ Branch staff management (level 40)
5. TECHNICIAN โ Field operations (level 20)
6. USER โ Basic access (level 10)
Features:
- Row-Level Security (RLS) at database layer
- Branch-scoped data access (users only see their branch hierarchy)
- Permission inheritance (higher roles include lower role permissions)
- Dynamic permission checking in UI and server actions
- Email notifications on role changes
Organizational Structure:
Headquarters (HQ)
โโโ Branch A (BRANCH)
โ โโโ Sub-Branch A1 (SUB_BRANCH)
โ โโโ Sub-Branch A2 (SUB_BRANCH)
โโโ Branch B (BRANCH)
โ โโโ Sub-Branch B1 (SUB_BRANCH)
โโโ Branch C (BRANCH)
Features:
- Unlimited depth (HQ โ Branch โ Sub-branch โ Sub-sub-branch...)
- Cascade permissions (managers see their branch + all children)
- Location-based filtering (users, tickets, inventory all branch-scoped)
- Branch logos with Supabase Storage integration
- Hierarchical visualization with collapsible tree UI
- Soft delete protection (can't delete branch with active users/sub-branches)
ERP-Integration Ready with who/when/what tracking on 8 core tables:
| Table | Audit Fields |
|---|---|
users |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
profiles |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
branches |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
roles |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
permissions |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
role_permissions |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
user_roles |
createdBy, createdAt, updatedBy, updatedAt, deletedBy, deletedAt |
audit_logs |
userId, action, resource, timestamp, metadata |
Features:
- Soft delete pattern (data never truly deleted, only marked)
- Complete history (every create/update/delete tracked with user + timestamp)
- Audit log table for sensitive operations (login, permission changes, etc.)
- Compliance ready (SOC 2, HIPAA, GDPR tracking capabilities)
- Restore functionality (can undo soft deletes)
- Prisma helpers (
createAuditData,updateAuditData,softDelete)
Live Data Synchronization powered by Supabase Realtime:
Implemented Hooks:
// Users table real-time updates
useRealtimeUsers(onInsert, onUpdate, onDelete)
// Branches table real-time updates
useRealtimeBranches(onInsert, onUpdate, onDelete)Features:
- Instant updates across all connected clients
- Toast notifications on CREATE/UPDATE/DELETE operations
- Automatic re-fetch to sync local state
- Optimistic updates for immediate UI feedback
- Multi-user collaboration (see changes as they happen)
- WebSocket connection (no polling overhead)
- Automatic cleanup on component unmount
Example Use Cases:
- Admin creates user โ All users see new entry instantly
- Manager updates branch โ Everyone sees changes live
- User gets role changed โ Notification appears immediately
Supabase Storage Integration with security and optimization:
Supported Uploads:
- User Avatars: Profile pictures (max 2MB, JPG/PNG/WebP)
- Branch Logos: Organization branding (max 2MB, JPG/PNG/WebP/SVG)
Features:
- Client-side validation (file type, size)
- Server-side validation (double-check security)
- Automatic image optimization (resize, compress)
- Storage buckets with RLS policies
- Public URLs for avatars/logos
- Replace functionality (update without breaking references)
- Storage cleanup on user/branch deletion
Security:
- RLS policies ensure users can only upload to their own profile
- File type whitelist prevents malicious uploads
- Size limits prevent abuse
- Signed URLs for temporary access
Transactional Emails with React Email + Resend:
4 Professional Templates:
- Welcome Email โ Sent on user creation
- Password Reset Email โ Forgot password flow
- Role Changed Email โ Role assignment updates (shows added/removed roles)
- Account Status Changed Email โ Account activation/suspension
Features:
- React Email for template building (component-based)
- Resend for reliable delivery (99%+ deliverability)
- Professional design with gradient headers, badges, responsive layout
- Non-blocking sends (email failures don't break user operations)
- Smart change detection (only sends if data actually changed)
- Customizable support email in templates
- HTML + plain text versions
Developer Experience:
// Simple API
await sendWelcomeEmail({ to, userName, userEmail })
await sendRoleChangedEmail({ to, userName, oldRoles, newRoles, changedBy })
await sendAccountStatusChangedEmail({ to, userName, newStatus, changedBy })E2E Testing with Playwright:
16 Test Cases across 3 suites:
- Audit Logging (7 tests): Admin access, CRUD logging, filtering, search, pagination
- File Upload (5 tests): Validation, avatar upload, logo upload, replace functionality
- Real-time Updates (4 tests): Multi-user sync, create/update/delete events, rapid updates
Unit Testing with Vitest:
- React Testing Library integration
- Component unit tests
- Utility function tests
- Coverage reports with
--coverageflag
Features:
- Multi-browser support (Chromium, Firefox, WebKit)
- Parallel execution for faster test runs
- Video recording on failures
- Screenshot capture for debugging
- Test fixtures for auth and database state
- CI/CD ready (GitHub Actions compatible)
Test Commands:
npm test # Run all E2E tests
npm run test:ui # Interactive UI mode
npm run test:headed # Watch tests run in browser
npm run test:debug # Debug mode with pauses
npm run test:unit # Run unit tests
npm run test:unit:watch # Watch mode
npm run test:unit:coverage # Generate coverage reportDeveloper Control Panel at /admin/dev-tools (Super Admin only):
3 Powerful Tools:
- Visual grid (roles ร permissions)
- Toggle switches for each permission
- Grouped by resource (users, branches, roles, etc.)
- Save changes with audit logging
- Real-time validation
10 Test Users with realistic patterns:
gm@test.com โ General Manager
bm_mlg@test.com โ Branch Manager (Malang)
bm_jog@test.com โ Branch Manager (Jogja)
sa_mlg@test.com โ Staff Admin (Malang)
tech_mlg@test.com โ Technician (Malang)
tech_jog@test.com โ Technician (Jogja)
user_mlg@test.com โ Regular User (Malang)
user_jog@test.com โ Regular User (Jogja)
3 Test Branches: Malang (HQ), Jogja (Branch), Jogja Sub (Sub-branch)
All passwords: test1234
- Deletes all test data
- Preserves Super Admin + HQ branch
- Type
RESETto confirm (safety check) - Logs all deletions in audit trail
Safety Features:
- Super Admin access only
- Type-to-confirm for destructive actions
- Audit logging on all operations
- Clear warning messages
- Next.js 16 - App Router, Server Components, Server Actions, React 19
- TypeScript 5 - Type safety and better DX
- Tailwind CSS 4 - Utility-first styling (latest version)
- shadcn/ui - Accessible component library built on Radix UI
- Lucide React - Beautiful icon library
- React Hook Form - Performant form handling with validation
- Zod 4 - Schema validation for forms and APIs
- TanStack Query - Server state management and caching
- next-themes - Dark/light mode with system preference support
- Prisma 6 - Type-safe ORM with PostgreSQL
- Supabase Auth - Authentication and user management
- Supabase Storage - File storage with RLS
- Supabase Realtime - WebSocket-based live updates
- bcrypt - Password hashing (via Supabase)
- Row-Level Security (RLS) - Database-level access control
- Resend - Transactional email delivery
- React Email - Component-based email templates
- Sonner - Toast notifications
- Playwright - E2E testing framework
- Vitest - Unit testing with React Testing Library
- ESLint 9 - Code linting with Next.js config
- Prettier - Code formatting with Tailwind plugin
- Husky - Git hooks for pre-commit checks
- lint-staged - Run linters on staged files
- GitHub Actions - CI/CD ready
- tsx - TypeScript execution for scripts and seeding
- Prisma Studio - Visual database browser
- dotenv - Environment variable management
- TypeScript strict mode for maximum type safety
- Node.js 18+ (20 recommended)
- npm or pnpm (pnpm recommended for speed)
- PostgreSQL database (or Supabase project)
- Git for version control
# Clone the repository
git clone https://github.com/aguswirajati/nextjs-multi-branch-boilerplate.git
cd nextjs-multi-branch-boilerplate
# Install dependencies (faster with pnpm)
pnpm install
# or npm install# Copy the environment template
cp .env.example .envEdit .env and configure:
# Database (Supabase or local PostgreSQL)
DATABASE_URL="postgresql://postgres:postgres@127.0.0.1:54322/postgres"
# Supabase (get from https://app.supabase.com โ Project Settings โ API)
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"
# App URL (for email links)
NEXT_PUBLIC_APP_URL="http://localhost:3000"
# Email (Resend - get from https://resend.com/api-keys)
RESEND_API_KEY="re_..."
RESEND_FROM_EMAIL="onboarding@resend.dev"# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# Seed initial data (creates Super Admin + HQ)
npx prisma db seedDefault Super Admin credentials:
- Email:
admin@repairshop.com - Password:
Admin123!
npm run dev
# or pnpm devOpen http://localhost:3000 and login with Super Admin credentials.
- Login as Super Admin
- Navigate to
/admin/dev-tools(orange "Dev Tools" link in nav) - Seed Sample Data โ Click "Generate Sample Data"
- Explore Permission Matrix โ See RBAC configuration
- Test with different user roles (see seeded users in Database Reset tab)
Problem: Error: P1001: Can't reach database server
Solution:
# Check if PostgreSQL is running
psql -U postgres
# Or start Supabase local instance
supabase start
# Update DATABASE_URL in .env to match your setupProblem: Invalid API key or auth not working
Solution:
- Verify Supabase credentials in
.env - Ensure you're using anon key for
NEXT_PUBLIC_SUPABASE_ANON_KEY - Use service role key for
SUPABASE_SERVICE_ROLE_KEY - Check RLS policies are created (see
prisma/migrations)
Problem: Welcome emails not arriving
Solution:
- Verify
RESEND_API_KEYin.env(get from resend.com) - Check
RESEND_FROM_EMAILis verified domain or useonboarding@resend.devfor testing - Check console for email errors (emails are non-blocking, won't break user creation)
Problem: Build errors on npm run build
Solution:
# Clear Next.js cache
rm -rf .next
# Regenerate Prisma client
npx prisma generate
# Try build again
npm run build# Development
npm run dev # Start dev server (localhost:3000)
npm run build # Build for production
npm start # Start production server
# Database
npx prisma generate # Generate Prisma client
npx prisma migrate dev # Run migrations
npx prisma db seed # Seed initial data
npx prisma studio # Open Prisma Studio (GUI)
# Testing
npm test # Run E2E tests (Playwright)
npm run test:ui # E2E tests in UI mode
npm run test:headed # E2E tests in headed browser
npm run test:debug # Debug E2E tests
npm run test:unit # Run unit tests (Vitest)
npm run test:unit:watch # Unit tests in watch mode
npm run test:unit:ui # Unit tests in UI mode
npm run test:unit:coverage # Generate coverage report
# Code Quality
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm run format:check # Check code formatting
# Custom Scripts
npm run workflow # Run custom workflow scriptnextjs-multi-branch-boilerplate/
โโโ app/ # Next.js App Router
โ โโโ (auth)/ # Auth routes (login, register, etc.)
โ โโโ (dashboard)/ # Protected dashboard routes
โ โ โโโ admin/ # Admin-only routes
โ โ โ โโโ users/ # User management
โ โ โ โโโ branches/ # Branch management
โ โ โ โโโ audit-logs/ # Audit log viewer
โ โ โ โโโ dev-tools/ # Developer tools (Super Admin only)
โ โ โโโ dashboard/ # Dashboard home (stats, activity)
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Landing page
โ
โโโ features/ # Feature modules (domain-driven design)
โ โโโ auth/ # Authentication
โ โ โโโ actions/ # Server actions (login, logout, register)
โ โ โโโ components/ # Auth forms and UI
โ โ โโโ utils/ # Auth helpers
โ โโโ users/ # User management
โ โ โโโ actions/ # User CRUD actions
โ โ โโโ components/ # User table, forms, detail view
โ โ โโโ services/ # User business logic
โ โ โโโ types/ # User TypeScript types
โ โโโ branches/ # Branch management
โ โ โโโ actions/ # Branch CRUD actions
โ โ โโโ components/ # Branch hierarchy tree, forms
โ โ โโโ services/ # Branch business logic
โ โ โโโ types/ # Branch TypeScript types
โ โโโ audit/ # Audit logging
โ โ โโโ actions/ # Audit log retrieval
โ โ โโโ components/ # Audit log table and filters
โ โ โโโ services/ # Audit log services
โ โโโ admin/ # Admin tools
โ โ โโโ actions/ # Dev tools actions
โ โ โโโ components/ # Permission matrix, data seeding
โ โโโ dashboard/ # Dashboard widgets
โ โโโ actions/ # Dashboard data actions
โ โโโ components/ # Stats cards, activity feed
โ โโโ services/ # Dashboard services
โ
โโโ lib/ # Shared utilities and configuration
โ โโโ supabase/ # Supabase client (server + client)
โ โโโ prisma/ # Prisma client instance
โ โโโ rbac/ # RBAC utilities (permission checking)
โ โโโ email/ # Email sending and templates
โ โ โโโ templates/ # React Email templates
โ โ โโโ send-email.ts # Email sending functions
โ โโโ validation/ # Zod schemas for forms and APIs
โ โโโ utils/ # Generic utilities
โ โ โโโ prisma-helpers.ts # Audit trail helpers
โ โ โโโ cn.ts # Class name utility
โ โโโ hooks/ # React hooks
โ โ โโโ useRealtimeUsers.ts # Real-time user updates
โ โ โโโ useRealtimeBranches.ts # Real-time branch updates
โ โโโ generated/ # Prisma generated types
โ
โโโ components/ # Reusable UI components
โ โโโ ui/ # shadcn/ui components (button, input, etc.)
โ โโโ layout/ # Layout components (nav, sidebar)
โ โโโ theme/ # Theme provider and toggle
โ โโโ providers/ # React context providers
โ
โโโ prisma/ # Database
โ โโโ schema.prisma # Prisma schema (8 tables + RLS)
โ โโโ migrations/ # Database migration history
โ โโโ seed.ts # Seed script (Super Admin + HQ)
โ
โโโ tests/ # E2E tests
โ โโโ helpers/ # Test utilities (auth helper)
โ โโโ audit-logging.spec.ts # Audit logging tests (7 tests)
โ โโโ file-upload.spec.ts # File upload tests (5 tests)
โ โโโ realtime-updates.spec.ts # Real-time tests (4 tests)
โ
โโโ docs/ # Documentation
โ โโโ ARCHITECTURE.md # System architecture
โ โโโ API.md # API reference
โ โโโ SECURITY.md # Security guide
โ โโโ DEPLOYMENT.md # Deployment guide
โ โโโ CODE_STYLE.md # Code conventions
โ
โโโ .env.example # Environment variable template
โโโ .eslintrc.json # ESLint configuration
โโโ .prettierrc # Prettier configuration
โโโ playwright.config.ts # Playwright E2E test config
โโโ vitest.config.ts # Vitest unit test config
โโโ tailwind.config.ts # Tailwind CSS configuration
โโโ tsconfig.json # TypeScript configuration
โโโ package.json # Dependencies and scripts
This boilerplate is perfect for:
Scenario: Retail company with HQ, 20 regional branches, and 100+ sub-stores
How it helps:
- Branch hierarchy maps to physical locations
- Regional managers see their entire region (cascade permissions)
- Store managers see only their store
- Inventory, sales, staff all branch-scoped
- Real-time updates across locations
Scenario: Hospital network with central admin, regional hospitals, and clinics
How it helps:
- RBAC controls who accesses patient data
- Audit trail for HIPAA compliance
- Branch-scoped patient records
- Role-based access (doctors, nurses, admin)
- Email notifications for critical updates
Scenario: University with main campus, satellite campuses, and departments
How it helps:
- Multi-campus organization structure
- Role hierarchy (admin, dean, faculty, student)
- Audit trail for grade changes
- Real-time enrollment updates
- Email notifications for announcements
Scenario: B2B SaaS with multiple customer organizations
How it helps:
- Each customer = HQ branch
- Customers manage their own sub-branches
- RBAC isolates customer data
- Audit trail for compliance (SOC 2, ISO)
- Real-time collaboration within organization
Scenario: Delivery company with warehouses, distribution centers, and hubs
How it helps:
- Location-based order routing
- Branch-scoped driver assignments
- Real-time delivery status updates
- Hierarchical reporting (hub โ region โ HQ)
- Email notifications for delivery events
Scenario: Construction firm with multiple ongoing projects and sites
How it helps:
- Project = branch, sites = sub-branches
- Role-based access (project manager, foreman, worker)
- Audit trail for change orders
- Real-time progress updates
- File uploads for blueprints/photos
- Architecture Guide - System design, patterns, and data flow
- API Reference - Complete API documentation for all server actions and services
- Security Guide - Security headers, RLS, RBAC, and best practices
- Deployment Guide - Production deployment to Vercel + Supabase
- Audit Trail Implementation - How audit logging works
- Code Style Guide - Code formatting, naming conventions, and patterns
- Workflow & Progress - Development roadmap and completed tasks
- GitHub Issues: Report bugs or request features
- Discussions: Ask questions and share ideas
One-Click Deploy:
Manual Deployment:
-
Push to GitHub:
git remote add origin https://github.com/yourusername/your-repo.git git push -u origin main
-
Deploy to Vercel:
- Go to vercel.com
- Click "Import Project"
- Select your GitHub repository
- Add environment variables (all values from
.env) - Click "Deploy"
-
Setup Supabase Production:
- Create production project at app.supabase.com
- Run migrations:
npx prisma migrate deploy - Update Vercel environment variables with production Supabase credentials
-
Configure Email:
- Get production Resend API key
- Update
RESEND_FROM_EMAILwith verified domain - Update Vercel environment variables
See full deployment guide: docs/DEPLOYMENT.md
We welcome contributions from the community! Whether it's bug fixes, new features, or documentation improvementsโall contributions are appreciated.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes (follow code style guide)
- Run tests (
npm testandnpm run test:unit) - Format code (
npm run format) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
We use Conventional Commits:
feat: Add new feature
fix: Fix bug
docs: Update documentation
style: Code style changes (formatting)
refactor: Code refactoring
test: Add or update tests
chore: Maintenance tasks
- Write TypeScript with strict type checking
- Add tests for new features
- Update documentation for breaking changes
- Follow existing code patterns and architecture
- Use Prettier for formatting
- Run
npm run lintbefore committing
- Multi-branch hierarchy system
- Enterprise RBAC (96 permissions)
- Complete audit trail (8 tables)
- Real-time collaboration
- File upload system
- Email notification system
- E2E + Unit testing
- Admin developer tools
- Dark/light theme
- Comprehensive documentation
- API rate limiting improvements
- Advanced audit log filtering
- Email digest notifications
- Multi-tenancy support (optional mode)
- Advanced reporting dashboard
- Export data (CSV, Excel, PDF)
- Two-factor authentication (2FA)
- API key management
- Webhook system
- Mobile-responsive improvements
- Notification preferences UI
- GraphQL API option
- Mobile app (React Native)
- Advanced caching strategies
- Internationalization (i18n)
- Custom branding per branch
- Integration marketplace
Want to influence the roadmap? Open a discussion or vote on existing feature requests!
This project is licensed under the MIT License. See LICENSE file for details.
TL;DR: You can use this boilerplate for personal or commercial projects, modify it, and distribute it freely. Attribution appreciated but not required.
- Agus Wirajati - @aguswirajati
- Claude Code - AI pair programmer
- Next.js - React framework
- Supabase - Backend as a Service
- Prisma - Database ORM
- Tailwind CSS - Utility-first CSS
- shadcn/ui - Component library
- Resend - Email delivery
- Playwright - E2E testing
- Vitest - Unit testing
- Vercel team for Next.js
- Supabase team for amazing BaaS platform
- shadcn for the beautiful UI components
- Open source community for all the amazing tools
- Documentation: docs/
- GitHub Repository: nextjs-multi-branch-boilerplate
- Issues: Report a bug
- Discussions: Ask questions
- Author: @aguswirajati
Built with โค๏ธ using Next.js 16 โข React 19 โข TypeScript โข Prisma โข Supabase โข Tailwind CSS
โญ Star this repo if you find it useful!
Report Bug โข Request Feature โข Documentation