Important: For NextAPI configurations, you need to copy all variables from
server/.env to web/.env because the API routes run within the Next.js
application.What You’ll Get
- Backend: Next.js API routes
- Runtime: Bun (fast JavaScript runtime)
- Bundler: Bun’s built-in bundler
- Performance: Excellent startup time
- Structure: API routes within Next.js app
Prerequisites
Before starting, ensure you have:Step 1: Project Setup
1.1 Access Your Dashboard
-
Visit the Dashboard
- Go to: https://www.builderbox.ai/bought/main
- Log in with your account credentials
-
Create Your Project
- Click “Create Project” on your dashboard
- Select “NextAPI + Bun” as your backend configuration
- Fill out the project configuration form
- Click “Create Project” to generate your boilerplate
-
Install Your Project
- Run the provided installation command:
- Run the provided installation command:
Step 2: Environment Configuration
2.1 Web Environment Variables (Combined)
Createapps/web/.env with ALL environment variables:
Key Difference: Unlike Hono configurations, all environment variables are
in
apps/web/.env because the API routes run within the Next.js application.2.2 CMS Environment Variables
Createapps/cms/.env:
Step 3: Database Setup
3.1 Run Database Commands
Step 4: Start Development
4.1 Start All Services
- Frontend App (Next.js + API routes) on port 3001
- CMS on port 3003
4.2 Individual Services (Optional)
If you prefer to run services separately: Terminal 1 - Frontend + API:Step 5: Verify Setup
5.1 Check Services
- Frontend + API: http://localhost:3001
- CMS: http://localhost:3003
5.2 Test API Endpoints
Project Structure
Key Features
Next.js API Routes Benefits
- Unified Codebase: Frontend and backend in one project
- Type Safety: Full TypeScript support
- Middleware: Next.js middleware support
- Deployment: Easy deployment to Vercel
- Familiarity: Standard Next.js patterns
Bun Runtime Benefits
- Speed: Faster startup and execution
- Memory: Lower memory usage
- Bundler: Built-in bundler for production builds
- Compatibility: Full Node.js compatibility
- Developer Experience: Fast package installation
Development Commands
| Command | Description |
|---|---|
bun dev | Start all services |
bun build | Build for production |
bun dev:web | Frontend + API only |
bun check-types | TypeScript validation |
bun db:push | Update database schema |
bun db:studio | Database management UI |
Environment Variables Management
Important Notes
- Single Environment File: All variables are in
apps/web/.env - API Routes Access: Environment variables are accessible in API routes
- Client Variables: Use
NEXT_PUBLIC_prefix for client-side variables - Security: Never expose sensitive variables to the client
Variable Categories
Performance Benefits
Bun vs Node.js for Next.js
| Aspect | Bun | Node.js |
|---|---|---|
| Startup Time | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Memory Usage | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Package Installation | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Hot Reload | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Build Speed | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
Optimization Tips
-
Use Bun’s Built-in Bundler:
-
Leverage Bun’s Package Manager:
-
Enable Bun’s Optimizations:
Troubleshooting
Common Issues
🔥 “Bun not found”- Ensure all variables are in
apps/web/.env - Check for typos in variable names
- Restart the development server
- Verify your Supabase connection strings
- Ensure your database is running
- Check environment variables in
apps/web/.env
- Verify Google OAuth configuration
- Check BETTER_AUTH_SECRET is set
- Ensure CORS_ORIGIN is correct
Migration from Node.js
If you’re migrating from Node.js to Bun:-
Update Package Manager:
-
Update Scripts:
-
Install Bun:
Deployment Considerations
Vercel Deployment
This configuration works excellently with Vercel:-
Connect to Vercel:
-
Environment Variables:
- Add all variables to Vercel dashboard
- Use
NEXT_PUBLIC_prefix for client variables
-
Build Configuration:
Other Platforms
- Railway: Supports Bun runtime
- DigitalOcean App Platform: Supports Bun
- Docker: Use Bun base image
Next Steps
🎉 Congratulations! Your NextAPI + Bun setup is complete. Here’s what you can do next:- Customize the frontend - Edit components in
apps/web/src/components - Add API endpoints - Create new routes in
apps/web/src/app/api - Configure CMS - Add content types in
apps/cms/src/collections - Set up production - Deploy to Vercel for optimal performance
- Add features - Extend with additional integrations