An opinionated full-stack monorepo setup built with my preferred technologies — designed for speed, scalability, and developer experience, bootstrapped with Better-T-Stack.
- Next.js - React framework for hybrid rendering
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Reusable UI components
- TanStack Query - Powerful asynchronous state management for React
- Better Auth (client-side) - The most comprehensive authentication framework for TypeScript
- Hono - Ultrafast web framework
- tRPC - End-to-end type-safe APIs
- Drizzle - TypeScript-first ORM
- PostgreSQL - Advanced SQL database
- Better Auth (server-side) - The most comprehensive authentication framework for TypeScript
- TypeScript - For type safety and improved developer experience
- Bun - Fast JavaScript runtime & toolkit
- Turborepo - High-performance build system
- Docker - Containerization for consistent environments
- Clone the repository:
git clone https://github.com/ChickenCombo/devstack.git- Navigate into the project directory:
cd devstack- Install dependencies:
bun installThis project uses PostgreSQL with Drizzle ORM.
- Update your
apps/server/.envandapps/web/.envfiles with your own environment configuration
Tip
You can use apps/server/.env.example and apps/web/.env.example as a template for your own .env files.
- Apply the schema to your database:
bun db:push- Run the development server:
bun devNote
Web URL: http://localhost:3001
API URL: http://localhost:3000
devstack/
├── apps/
│ ├── web/ # Frontend application (Next.js)
│ └── server/ # Backend API (Hono, TRPC)
├── packages/
│ ├── api/ # API layer / business logic
│ ├── auth/ # Authentication configuration & logic
│ └── db/ # Database schema & queries
bun dev: Start all applications in development modebun build: Build all applicationsbun dev:web: Start only the web applicationbun dev:server: Start only the serverbun check-types: Check TypeScript types across all appsbun db:push: Push schema changes to databasebun db:studio: Open database studio UI