A comprehensive, high-performance fullstack monorepo template powered by Bun, Turborepo, and oRPC. This project provides a unified architecture for building Web, Desktop (Electron), and Mobile (Expo) applications with a shared backend and type-safe contracts.
- Runtime & Package Manager: Bun
- Monorepo Management: Turborepo
- Language: TypeScript
- Linting & Formatting: Biome
- Validation: Zod
- Framework: ElysiaJS (High-performance web framework for Bun)
- Database: MongoDB via Mongoose
- Authentication: Better Auth
- Storage: AWS S3 with SDK v3
- Logging: Pino
- Communication: oRPC (End-to-end type-safe APIs with TanStack Query integration)
- OpenAPI: Automated documentation and client generation
- Web (
apps/web): Next.js 16 (App Router), React 19, Tailwind CSS v4, TanStack Query, Zustand, Framer Motion, nuqs - Desktop (
apps/electron): Electron, Vite, React 19, Tailwind CSS v4 - Mobile (
apps/expo): Expo SDK 54, React Native 0.81, Expo Router
- Styling: Tailwind CSS v4
- Components: Radix UI primitives (Shadcn-style)
- Forms: React Hook Form with Zod resolvers
├── apps
│ ├── api # Elysia backend
│ ├── electron # Electron desktop app (Vite + React)
│ ├── expo # Cross-platform mobile app
│ └── web # Next.js web application
├── packages
│ ├── contracts # Shared oRPC schema and types
│ ├── shad-ui # Shared UI component library
│ └── typescript-config # Shared tsconfig bases
├── turbo.json # Turborepo configuration
└── biome.json # Biome linting/formatting rules
- Bun installed (version >= 1.1.0 recommended)
- Node.js >= 18
bun installRun all applications in development mode:
bun devOr run a specific application:
bun dev --filter=@fullstack-template/webbun buildbun lintEach application requires its own .env file.