build-elevate
v1.2.1
Published
Production-grade full-stack starter with Next.js, Express, and Better Auth - Get from idea to production faster
Downloads
450
Maintainers
Readme
Launch your SaaS product faster. Everything you need is built in.
[!TIP] Perfect for SaaS teams, startups, and developers tired of reinventing the same setup. Skip weeks of boilerplate, onboard new developers in hours, and ship features on day one. build-elevate has you covered.
You're launching tomorrow. Your backend isn't designed. Your auth isn't configured. Your database isn't connected. And you have 3 other things to do.
build-elevate is a production-ready monorepo starter that bundles everything you need — authentication, database, email templates, UI components, rate limiting, and deployment configs — into a single, cohesive foundation.
Built with Turborepo, Next.js 16, Express, Better Auth, Prisma, and shadcn/ui, it's designed for teams that want to focus on their product, not boilerplate. Launch in days. Deploy with confidence.
🎯 Who is this for?
📋 What's Included
🚀 Quick Start
Prerequisites
- Node.js 20+ (download)
- pnpm 10.32+ (recommended) or npm/bun
- For Docker: Docker Desktop
1. Install Prerequisites
You'll need Node.js 20+ and pnpm (or npm/bun):
# Check Node.js
node --version # Should be v20+
# Install pnpm (recommended)
npm install -g pnpm@latest2. Create Your Project
The fastest way to get started:
pnpm dlx build-elevate@latest init my-projectThis interactive CLI will:
- Ask for your project name
- Help you choose a package manager
- Optionally include Docker
- Optionally include Prisma Studio
- Scaffold everything and install dependencies
3. Start Building
cd my-project
pnpm devYour full stack is now running:
- Web Frontend: http://localhost:3000
- REST API: http://localhost:4000
- Email Preview: http://localhost:3002
- Database UI: http://localhost:5555
That's it. No more setup. Start building features.
🏗️ Project Structure
build-elevate/
├── apps/
│ ├── web/ # Next.js frontend application
│ ├── api/ # Express REST API server
│ ├── email/ # React Email template development
│ ├── studio/ # Prisma Studio (database UI)
│ └── docs/ # Fumadocs documentation site
├── packages/
│ ├── auth/ # Better Auth integration & session management
│ ├── db/ # Prisma ORM & database client
│ ├── ui/ # React component library (shadcn/ui)
│ ├── email/ # Email template library with Resend
│ ├── utils/ # Shared utilities & TypeScript types
│ ├── rate-limit/ # API rate limiting with Upstash Redis
│ ├── eslint-config/ # Unified ESLint configuration
│ ├── prettier-config/ # Code formatting configuration
│ ├── typescript-config/# Shared TypeScript compiler options
│ └── jest-presets/ # Testing presets for Node.js & React
├── package.json # Root package configuration
├── pnpm-workspace.yaml # Monorepo workspace configuration
├── turbo.json # Turborepo pipeline configuration
└── docker-compose.yml # Local development database (PostgreSQL)📦 Applications
| Application | Port | Description | | ----------- | ---- | -------------------------------------------------- | | Web | 3000 | Next.js frontend with authentication and dashboard | | API | 4000 | Express REST API with middleware and endpoints | | Email | 3002 | React Email template preview and development | | Studio | 5555 | Prisma Studio for database management |
📚 Packages
Application Packages
- @workspace/auth - Better Auth integration, session management, and OAuth flows
- @workspace/db - Prisma ORM, database schema, and PostgreSQL client
- @workspace/ui - React component library built with shadcn/ui and Tailwind CSS
- @workspace/email - Email templates using React Email and Resend integration
- @workspace/utils - Shared utility functions and type definitions
- @workspace/rate-limit - API rate limiting with Upstash Redis
Configuration Packages
- @workspace/eslint-config - Unified ESLint rules and linting setup
- @workspace/prettier-config - Consistent code formatting configuration
- @workspace/typescript-config - Shared TypeScript compiler options
- @workspace/jest-presets - Testing configuration for Node.js and React
🛠️ Technology Stack
| Layer | Technology | Purpose | | -------------------- | ------------------------------------------------------------------ | --------------------------------------------- | | Build System | Turborepo | High-performance monorepo orchestration | | Frontend | Next.js 16 | React framework with App Router and Turbopack | | Backend | Express | Lightweight, unopinionated web framework | | Database | Prisma + PostgreSQL | Modern ORM and relational database | | Authentication | Better Auth | Session-based auth with OAuth support | | UI Components | shadcn/ui | Accessible component library | | Styling | Tailwind CSS | Utility-first CSS framework | | Email | React Email + Resend | Email template development & delivery | | Rate Limiting | Upstash Redis | Serverless Redis for rate limiting | | Testing | Jest | JavaScript testing framework | | Linting | ESLint | JavaScript linting and code quality | | Formatting | Prettier | Code formatter | | Language | TypeScript | JavaScript with static typing | | Containerization | Docker | Container-based deployment |
🚀 Development
Running All Applications
Start all services in development mode with hot reload:
pnpm devRunning Individual Applications
# Start only the web app
pnpm dev --filter=web
# Start only the API
pnpm dev --filter=api
# Start a specific package
pnpm dev --filter=@workspace/authCommon Commands
# Build all applications and packages
pnpm build
# Check TypeScript types across the monorepo
pnpm check-types
# Run linting
pnpm lint
# Fix linting issues
pnpm lint:fix
# Format code with Prettier
pnpm format
# Run tests
pnpm test
# Clean build artifacts and node_modules
pnpm cleanDatabase
# Generate Prisma client (required after schema changes)
pnpm db:generate
# Create a new migration
pnpm db:migrate
# Reset the database (⚠️ deletes all data)
pnpm db:reset
# Open Prisma Studio UI
pnpm studioEnvironment Variables
Each application requires environment variables. Copy the example files and update them:
cp apps/web/.env.example apps/web/.env.local
cp apps/api/.env.example apps/api/.env.local
cp packages/db/.env.example packages/db/.envSee Environment Variables Documentation for a complete reference.
🐳 Docker
Local Development
Using Docker Compose for PostgreSQL:
docker-compose up -dThis starts a PostgreSQL database at postgresql://postgres:password@localhost:5432/build-elevate-app.
Production Deployment
Build and run services as containers:
docker-compose -f docker-compose.prod.yml up --buildServices include:
- Web (Next.js) on port 3000
- API (Express) on port 4000
- PostgreSQL on port 5432
- Health checks and restart policies configured
See Docker Documentation for more details.
📖 Documentation
Visit https://build-elevate.vercel.app/docs to view the documentation.
🚢 Deployment
Vercel
Deploy the Next.js frontend to Vercel with one click:
See Vercel Deployment Guide for detailed instructions.
Other Platforms
The modular structure makes it easy to deploy to any platform:
- Web (Next.js): Vercel, Netlify, Railway, Heroku
- API (Express): Railway, Heroku, AWS, DigitalOcean
- Database (PostgreSQL): AWS RDS, Heroku Postgres, Railway, Neon
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
build-elevate is built on top of amazing open-source projects:
- Turborepo - Monorepo build system
- Next.js - React framework
- Express - Web framework
- Better Auth - Authentication
- Prisma - ORM
- shadcn/ui - Component library
- React Email - Email templates
- Turbopack - Rust-based bundler
