This project was created with Better-T-Stack, a modern TypeScript stack that combines Next.js, Self, TRPC, and more.
- TypeScript - For type safety and improved developer experience
- Next.js - Full-stack React framework
- TailwindCSS - Utility-first CSS for rapid UI development
- shadcn/ui - Reusable UI components
- tRPC - End-to-end type-safe APIs
- Prisma - TypeScript-first ORM
- SQLite/Turso - Database engine
- Authentication - Better-Auth
- Oxlint - Oxlint + Oxfmt (linting & formatting)
- Fumadocs - Beautiful documentation system with MDX support
- Todos Feature - Full-stack todo management with create, toggle, and delete operations (kidding, just a CRUD demo)
First, install the dependencies:
pnpm installThis project uses SQLite with Prisma.
- Start the local SQLite database (optional):
pnpm run db:local-
Update your root
.envfile (project root) with the appropriate connection details if needed.
apps/web/.envis also supported as a fallback. -
Run the initial migration:
pnpm run db:migrateThen, run the development server:
pnpm run devOpen http://localhost:3000 in your browser to see the fullstack application.
- Format and lint fix:
pnpm run check
my-better-t-app/
├── apps/
│ └── web/ # Fullstack application (Next.js)
├── packages/
│ ├── api/ # API layer / business logic
│ ├── auth/ # Authentication configuration & logic
│ └── db/ # Database schema & queries
pnpm run dev: Start all applications in development modepnpm run build: Build all applicationspnpm run check-types: Check TypeScript types across all appspnpm run db:push: Push schema changes to database (dev convenience)pnpm run db:studio: Open database studio UIpnpm run db:local: Start the local SQLite databasepnpm run db:migrate:deploy: Apply committed migrations (production)pnpm run check: Run Oxlint and Oxfmt