Skip to main content
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:
  • Bun v1.0+ installed
  • Git for version control
  • Access to your Builder Box dashboard

Step 1: Project Setup

1.1 Access Your Dashboard

  1. Visit the Dashboard
  2. 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
  3. Install Your Project
    • Run the provided installation command:

Step 2: Environment Configuration

2.1 Web Environment Variables (Combined)

Create apps/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

Create apps/cms/.env:

Step 3: Database Setup

3.1 Run Database Commands


Step 4: Start Development

4.1 Start All Services

This will start:
  • 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:
Terminal 2 - CMS:

Step 5: Verify Setup

5.1 Check Services

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


Environment Variables Management

Important Notes

  1. Single Environment File: All variables are in apps/web/.env
  2. API Routes Access: Environment variables are accessible in API routes
  3. Client Variables: Use NEXT_PUBLIC_ prefix for client-side variables
  4. Security: Never expose sensitive variables to the client

Variable Categories


Performance Benefits

Bun vs Node.js for Next.js

Optimization Tips

  1. Use Bun’s Built-in Bundler:
  2. Leverage Bun’s Package Manager:
  3. Enable Bun’s Optimizations:

Troubleshooting

Common Issues

🔥 “Bun not found”
🔥 “Environment variables not found”
  • Ensure all variables are in apps/web/.env
  • Check for typos in variable names
  • Restart the development server
🔥 “Port already in use”
🔥 “Database connection failed”
  • Verify your Supabase connection strings
  • Ensure your database is running
  • Check environment variables in apps/web/.env
🔥 “Authentication not working”
  • Verify Google OAuth configuration
  • Check BETTER_AUTH_SECRET is set
  • Ensure CORS_ORIGIN is correct
🔥 “Build errors with Bun”

Migration from Node.js

If you’re migrating from Node.js to Bun:
  1. Update Package Manager:
  2. Update Scripts:
  3. Install Bun:

Deployment Considerations

Vercel Deployment

This configuration works excellently with Vercel:
  1. Connect to Vercel:
  2. Environment Variables:
    • Add all variables to Vercel dashboard
    • Use NEXT_PUBLIC_ prefix for client variables
  3. 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:
  1. Customize the frontend - Edit components in apps/web/src/components
  2. Add API endpoints - Create new routes in apps/web/src/app/api
  3. Configure CMS - Add content types in apps/cms/src/collections
  4. Set up production - Deploy to Vercel for optimal performance
  5. Add features - Extend with additional integrations
Happy building! 🚀