A modern full-stack starter template combining Nuxt 4 for the frontend and Elysia for the backend API. This template provides a solid foundation for building type-safe, high-performance web applications.
- 🚀 Nuxt v4.2.0
- ⚡️ Elysia v1.4.13
- 📚 @elysiajs/swagger v1.3.1 - OpenAPI/Swagger documentation
- 🗃️ Drizzle ORM v0.44.7
- 💾 SQLite with Bun SQLite
- 🎨 TailwindCSS v4.1.16 with DaisyUI v5.3.10
- 🔧 ESLint v9.38.0 for code quality
- ⚛️ Vue v3.5.22
- 🚦 Lighthouse v13.0.1 for performance testing
- 📦 Terser v5.44.0 for code minification
- 🚀 Nuxt 4 - The Intuitive Web Framework
- ⚡️ Elysia - TypeScript HTTP Framework for Bun
- 📚 OpenAPI/Swagger Documentation - Interactive API documentation with automatic schema generation
- 🗃️ Drizzle ORM - TypeScript ORM with SQLite
- 🔒 Type-safe operations - TypeBox schema validation for API requests/responses
- 📝 Automatic API route generation with
nuxt-elysia - 🎨 Modern UI - TailwindCSS + DaisyUI with accessibility support
- ⚙️ Code quality - ESLint + TypeScript for maintainability
- 🚦 100% Lighthouse scores - Perfect performance, accessibility, SEO, and best practices
- ⚡️ Performance optimizations - Code splitting, minification, and tree-shaking
- ♿️ WCAG compliant - Full accessibility support with proper ARIA labels and semantic HTML
- 🧪 Testing ready - Vitest configuration with coverage support
- Bun >= 1.0.0
- Node.js >= 18.x (for Nuxt compatibility)
- SQLite database (included, no setup required)
Make sure to install dependencies:
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun installStart the development server on http://localhost:3000:
# npm
npm run dev
# pnpm
pnpm dev
# yarn
yarn dev
# bun
bun run devTo generate and run database migrations with Drizzle:
# Generate migrations
bun run db:generate
# Push migrations to database
bun run db:push
# Run database seed
bun run db:seed
# Start Drizzle Studio (Database GUI)
bun run db:studio
# Setup database (push + seed)
bun run dbThe migration files will be stored in server/db/migrations/.
The database schema is defined in server/db/schema.ts. After making changes to the schema:
- Generate a new migration
- Review the generated SQL in the migrations folder
- Push the changes to your database
This project includes comprehensive OpenAPI/Swagger documentation powered by @elysiajs/swagger.
Start the development or preview server, then visit:
- Swagger UI:
http://localhost:3000/_api/swagger - OpenAPI JSON:
http://localhost:3000/_api/swagger/json
- 📚 Interactive testing - Try out API endpoints directly in the browser
- 🔍 Schema validation - TypeBox schemas ensure type safety
- 📝 Auto-generated docs - Documentation stays in sync with your code
- 🎯 Request/Response examples - See expected data formats
GET /_api/hello- Simple hello world endpointGET /_api/members- Get paginated members list- Query params:
page,limit,search,sortBy,sortOrder - Returns: Members data with pagination metadata
- Query params:
# Get first page of members
curl "http://localhost:3000/_api/members?page=1&limit=10"
# Search members
curl "http://localhost:3000/_api/members?search=john"
# Sort by age descending
curl "http://localhost:3000/_api/members?sortBy=age&sortOrder=desc"This project achieves 100% scores across all Lighthouse metrics:
- ⚡ Performance: 100/100
- ♿ Accessibility: 100/100
- ✅ Best Practices: 100/100
- 🔍 SEO: 100/100
# Build the application first
bun run build
# Start preview server (in one terminal)
bun run preview
# Run Lighthouse audit (in another terminal)
bun run lighthouse:previewAfter running tests, reports are saved to lighthouse-reports/:
report.html- Visual report (open in browser)report.json- Detailed JSON data for analysis
The following optimizations are implemented:
- 📦 Code splitting - Vendor chunks separated for better caching
- 🗜️ Minification - Terser minification with console removal
- 🌳 Tree shaking - Dead code elimination
- 🎯 CSS optimization - CSS code splitting enabled
- 🔗 Resource hints - DNS prefetch for faster loading
- ♿ Accessibility - Semantic HTML, ARIA labels, proper landmarks
- 📱 SEO - Meta tags, proper title, description
Build the application for production:
# npm
npm run build
# pnpm
pnpm build
# yarn
yarn build
# bun
bun run buildLocally preview production build:
# npm
npm run preview
# pnpm
pnpm preview
# yarn
yarn preview
# bun
bun run previewCheck out the deployment documentation for more information.