A full-featured browser-based IDE built with Next.js and Prisma ORM, powered by Monaco Editor, WebContainers API, and optional AI Copilot-style code assistance powered by MonacoPilot.
CuraVibe is a full-stack, browser-based IDE that brings a professional development environment directly to your browser. Built with modern technologies, it enables developers to write, execute, and deploy code without leaving the browser window.
- π Monaco Editor Integration β VS Code-level code editing experience
- π Multi-Framework Support β Pre-configured templates for React, Next.js, Express, Hono, Vue, and Angular
- π― Live Code Execution β Run and preview projects in real-time using WebContainers
- π» Full Terminal Access β Integrated Xterm.js terminal for running build commands
- π€ AI Code Assistance β Copilot-style code suggestions via MonacoPilot
- π User Authentication β OAuth integration with Google & GitHub via NextAuth
- πΎ Persistent Workspaces β Projects saved to MongoDB and restored on login
- π Dark Mode Support β Beautiful, accessible UI built with Tailwind CSS and custom components
Full-Stack Implementation:
- Frontend: Next.js 15 with React 19, TypeScript, and Tailwind CSS
- Editor: Monaco Editor with custom extensions
- Backend: Next.js API routes, Prisma ORM for data management
- Database: MongoDB with comprehensive schema for users, projects, and collaboration
- Real-time Runtime: WebContainers API for sandboxed code execution
- Terminal: Xterm.js for interactive shell experience
π§ͺ GitHub repository contains working codebase with full source code walkthrough. Live demo deployment coming soon.
Current Status: Core functionality implemented and working. WebContainers integration documented in known limitations below.
- π Secure Authentication β OAuth 2.0 using NextAuth with Google & GitHub providers
- π§ AI Code Assistance β Real-time code suggestions and completions powered by MonacoPilot
- β‘ Live Preview β Instant code execution feedback (local preview works; see Known Limitations)
- πΎ Project Persistence β Workspaces automatically saved to MongoDB and restored on login
- π¦ Multiple Framework Templates β Pre-configured & optimized for:
- React
- Next.js
- Express.js
- Hono
- Vue.js
- Angular
- π§© Extensible Architecture β Modular design makes adding new templates straightforward
- π¬ Integrated Terminal β Full-featured Xterm.js terminal for running build commands
- π¨ Professional UI β Dark mode support, responsive design, accessibility-first component library
- π§ Developer Experience β Hot reload support, syntax highlighting, auto-completion, error detection
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 15, React 19, TypeScript | UI framework & type safety |
| Editor | Monaco Editor, MonacoPilot | Code editing & AI suggestions |
| Styling | Tailwind CSS, Radix UI | Modern, accessible UI components |
| Backend | Next.js API Routes, NextAuth 5 | Server logic & authentication |
| Database | MongoDB, Prisma ORM v6 | Data persistence & schema management |
| Runtime | WebContainers API v1.6 | Sandboxed code execution |
| Terminal | Xterm.js 5.5 | Interactive shell experience |
| AI | Google GenAI, MonacoPilot | Code completion & suggestions |
- Node.js 18+ and npm/yarn
- MongoDB instance (local or cloud via MongoDB Atlas)
- Git for cloning the repository
- OAuth credentials (optional): Google and GitHub OAuth apps
git clone https://github.com/ayyush08/CuraVibe.git
cd CuraVibenpm install
# or
yarn installCreate a .env.local file in the root directory:
# Database
DATABASE_URL="mongodb+srv://username:password@cluster.mongodb.net/curavibe"
# NextAuth Configuration
NEXTAUTH_SECRET="your-random-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"
# OAuth Providers (Optional - for AI features & signup)
AUTH_GOOGLE_ID="your-google-oauth-id"
AUTH_GOOGLE_SECRET="your-google-oauth-secret"
AUTH_GITHUB_ID="your-github-oauth-id"
AUTH_GITHUB_SECRET="your-github-oauth-secret"
# AI Features (MonacoPilot)
NEXT_PUBLIC_GOOGLE_GENAI_KEY="your-google-genai-key"Getting OAuth Credentials:
To generate NEXTAUTH_SECRET:
openssl rand -base64 32Initialize Prisma and sync with MongoDB:
# Generate Prisma Client
npx prisma generate
# Push schema to MongoDB (creates/updates collections)
npx prisma db push
# (Optional) Open Prisma Studio for visual database management
npx prisma studionpm run devThe application will start at http://localhost:3000.
- Sign In β Use Google/GitHub OAuth or create an account
- New Playground β Click "Create New Playground"
- Select Template β Choose from React, Next.js, Express, etc.
- Start Coding β Edit files in the Monaco editor
- Run & Preview β Use the integrated terminal and preview panel
- Save Project β Automatically persisted to your account
With MonacoPilot enabled:
- Press
Ctrl+I(orCmd+Ion Mac) for inline suggestions - Editor will provide context-aware code completions
- Accept suggestions with
Tabor reject withEsc
# Install dependencies
npm install
# Start development server
npm start
# Build project
npm run build
# Run tests
npm testCuraVibe/
βββ app/ # Next.js app directory
β βββ (auth)/ # Authentication pages
β βββ (root)/ # Main app layout
β βββ api/ # API routes
β β βββ auth/ # NextAuth endpoints
β β βββ chat/ # AI chat endpoints
β β βββ code-completion/ # Code suggestion API
β β βββ template/ # Template management
β β βββ get-repo/ # Repository utilities
β βββ dashboard/ # User dashboard
β βββ playground/ # Code editor & runtime
β βββ remote-runner/ # WebContainer execution
β
βββ components/ # Reusable React components
β βββ ui/ # UI component library (50+)
β βββ lightswind/ # Custom animations & effects
β βββ providers/ # Context & theme providers
β
βββ modules/ # Feature modules
β βββ ai-chat/ # AI chat integration
β βββ auth/ # Authentication logic
β βββ dashboard/ # Dashboard features
β βββ home/ # Landing page
β βββ playground/ # Editor interface
β βββ remote-runner/ # WebContainer management
β βββ webcontainers/ # WebContainer utilities
β
βββ lib/ # Utility functions
β βββ db.ts # Database client
β βββ copilot.ts # AI integration
β βββ template.ts # Template utilities
β βββ build-template-from-repo.ts # Template builder
β βββ generated/ # Prisma client (auto-generated)
β
βββ hooks/ # Custom React hooks
β βββ use-current-user.ts # User context hook
β βββ use-mobile.ts # Mobile detection
β
βββ prisma/ # Database schema
β βββ schema.prisma # Prisma schema definitions
β
βββ public/ # Static assets
βββ starters/ # Template starters
- Issue: WebContainers API initialization can be slow in local development (15-30 seconds on first load)
- Why: StackBlitz WebContainers requires downloading the entire containerized runtime
- Current Status: Works correctly when properly initialized; slowness is primarily on first load
- Workaround:
- Deployed versions perform better due to edge caching
- Subsequent loads in the same browser session are faster
- Consider pre-warming containers during development
- Next.js & React frameworks: May require additional configuration in WebContainers environment
- Recommendation: Test with simpler frameworks (Express, Hono) for fastest iteration during development
- File system sync between editor and WebContainers occasionally requires page refresh
- Some npm packages with native dependencies may not work in WebContainers sandbox
- Large projects (10,000+ lines) may experience editor lag
- Not yet deployed to production β Project focuses on core functionality
- Recommended hosting: Vercel (for Next.js optimization), Railway, or AWS
- Database: Requires MongoDB Atlas or self-hosted MongoDB instance
- Monaco Editor integration
- Multi-framework template support
- WebContainers API integration
- Xterm.js terminal
- NextAuth OAuth authentication
- Prisma ORM database layer
- MongoDB persistence
- MonacoPilot AI suggestions
- Dark mode theme support
- Performance optimization for WebContainers
- Collaborative editing features (real-time sync)
- Additional framework templates (Svelte, Remix)
- Code snippet marketplace
- Project sharing & public playgrounds
- Production deployment
- Advanced debugging tools
- Version control integration (Git)
- Team collaboration workspace
- Custom plugin system
- Mobile app (React Native)
Contributions are highly appreciated! Whether you're fixing bugs, optimizing performance, or adding new features, your help makes CuraVibe better.
-
Fork the Repository
git clone https://github.com/ayyush08/CuraVibe.git cd CuraVibe -
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add tests when applicable
- Update documentation if needed
-
Commit & Push
git commit -m "feat: describe your changes" git push origin feature/your-feature-name -
Open a Pull Request
- Reference any related issues
- Provide a clear description of changes
- Ensure all checks pass
- Adding new framework templates
- UI/UX improvements
- Performance optimizations
- Documentation updates
- Bug fixes (see Issues tab)
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License. See LICENSE file for details.
- Issues & Bug Reports: GitHub Issues
- Discussions: GitHub Discussions
- Code of Conduct: See CODE-OF-CONDUCT.md
Current Phase: Active Development
CuraVibe is in active development with core features implemented and tested. The project is production-ready for educational and experimental use cases. Full production deployment is planned for Q2 2026.
Last Updated: February 2026
Made with β€οΈ by Ayyush