The AI-Orchestrated Cloud IDE β Build, Preview & Deploy from Your Browser
Next.js 15 Β· Vite 6 Β· Expo SDK 54 β Three frameworks, one IDE.
- Context-aware β understands your whole project, not just one file
- Groq LLM β fast inference with
llama-3.3-70b-versatile - File-aware responses β AI reads current files, suggests changes
- Auto file write β AI can create & modify files directly
- Custom API key β bring your own Groq key
| Framework | Auto-Config | Live Preview | Device Frames |
|---|---|---|---|
| Next.js 15 | β SSR + App Router | β HMR | β Mobile/Tablet/Laptop |
| Vite 6 React | β Fast Refresh | β HMR | β Mobile/Tablet/Laptop |
| Expo SDK 54 | β Expo Router | β QR + Expo Go | β iPhone/Android/iPad |
- Monaco Editor β VS Code-quality code editing with syntax highlighting
- File Tree β create, rename, delete files & folders
- Real Terminal β
xterm.jswithjshshell,Ctrl+Ckill, command history - Resizable panels β drag to resize terminal, file tree, preview
- Auto-save β debounced save to database (1.5s)
- Keyboard shortcuts β
Ctrl+``terminal Β·Ctrl+Bfile tree Β·Ctrl+\chat
- GitHub Push β create public/private repos, push code with one click
- ZIP Download β export entire project as archive
- One-click Open β preview in new tab
- iPhone β Dynamic Island, bezels, home bar
- Android β punch hole camera, nav buttons
- iPad β slim bezels, camera dot
- Laptop β screen + keyboard base
- Vitest + @testing-library/react β 22+ tests
- Component & integration tests
Dashboard β "New Architecture" β Pick Name + Framework β Enter IDE
Open a file β Monaco Editor β Type code
OR
Open Chat β Describe what to build β AI writes files
Next.js / Vite β WebContainer boots β npm install β dev server starts
Edit code β auto-save β HMR β preview updates instantly
Expo project β WebContainer boots β Metro starts β QR code generated
Scan QR with Expo Go on phone β changes hot-reload on device
IDE Toolbar β Push button β Set repo name β Public/Private β Push
Visit `https://github.com/{user}/{repo}` to see your code
ZIP β Download complete project as archive
Build (Expo) β iOS/Android options (requires EAS)
ββββββββββββββββββββββββββββββββββββββββββββββββ
β Browser β
β ββββββββββββ ββββββββββββ ββββββββββββββββ β
β β Monaco β β Terminal β β AI Chat β β
β β Editor β β (xterm) β β (Groq LLM) β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββββ¬ββββββββ β
β β β β β
β ββββββΌβββββββββββββΌββββββββββββββββΌββββββββ β
β β WebContainer API β β
β β (Node.js + npm + dev server in-browser)β β
β ββββββββββββββββββ¬βββββββββββββββββββββββββ β
βββββββββββββββββββββΌβββββββββββββββββββββββββββ
β
βββββββββββββββββββββΌβββββββββββββββββββββββββββ
β Next.js API Routes β
β ββββββββββ ββββββββββ βββββββββ ββββββββββ β
β β Auth β βFiles β β AI β β GitHub β β
β β OAuth β β CRUD β β Chat β β Sync β β
β βββββ¬βββββ βββββ¬βββββ βββββ¬ββββ βββββ¬βββββ β
ββββββββΌβββββββββββΌβββββββββββΌββββββββββΌββββββββ
β β β β
ββββββββΌβββββββββββΌβββββββββββΌββββββββββΌββββββββ
β External Services β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
β βGitHub β βNeonDB β βGroq β βCloudin-β β
β β OAuth β β(PG) β β API β βary β β
β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββ
| Category | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS + Framer Motion |
| Editor | Monaco Editor (CodeMirror-based) |
| Terminal | xterm.js + jsh shell |
| AI | Groq API (llama-3.3-70b-versatile) |
| Container | WebContainer API |
| Database | NeonDB (PostgreSQL) |
| Auth | GitHub OAuth + Google OAuth |
| File Storage | PostgreSQL + Cloudinary (images) |
| Image Opt | sharp (resize + webp) |
| DevTools | @expo/next-adapter, react-rnd |
| Testing | Vitest + @testing-library/react |
# 1. Clone
git clone https://github.com/rahulpatle-sol/codemapers.git
cd codemapers
# 2. Install
npm install
# 3. Set environment variables (.env.local)
cat > .env.local << EOF
DATABASE_URL=postgresql://user:[email protected]/codemapers?sslmode=require
JWT_SECRET=your-secret-key
NEXT_PUBLIC_APP_URL=http://localhost:3000
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-secret
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-secret
GROQ_API_KEY=your-groq-api-key
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-cloudinary-key
CLOUDINARY_API_SECRET=your-cloudinary-secret
EOF
# 4. Run
npm run dev
β οΈ NeonDB tables must exist. Runschema.sqlif not already created. Thefilestable requiresUNIQUE (project_id, path)for upsert queries.
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
β | NeonDB/PostgreSQL connection string |
JWT_SECRET |
β | Secret for JWT token signing |
NEXT_PUBLIC_APP_URL |
β | Public URL of your deployment |
GITHUB_CLIENT_ID |
β | GitHub OAuth App client ID |
GITHUB_CLIENT_SECRET |
β | GitHub OAuth App client secret |
GOOGLE_CLIENT_ID |
β | Google OAuth client ID |
GOOGLE_CLIENT_SECRET |
β | Google OAuth client secret |
GROQ_API_KEY |
β | Groq API key for AI chat |
CLOUDINARY_CLOUD_NAME |
β | Cloudinary cloud name (falls back to local) |
CLOUDINARY_API_KEY |
β | Cloudinary API key |
CLOUDINARY_API_SECRET |
β | Cloudinary API secret |
codemapers/
βββ app/
β βββ (auth)/login/ # Login page (GitHub/Google)
β βββ (dashbord)/
β β βββ dashboard/ # Project list + create
β β βββ project/[id]/ # Main IDE page
β βββ api/ # API routes
β β βββ auth/ # GitHub/Google OAuth
β β βββ ai/chat/ # Groq AI chat
β β βββ files/ # File CRUD
β β βββ projects/ # Project CRUD
β β βββ github/ # GitHub sync
β βββ components/ # UI components
β βββ editor/ # Monaco, Terminal, FileTree, ExpoPreview
β βββ ai/ # ChatSidebar
βββ hooks/ # useFileSystem, useWebContainer
βββ lib/ # db, auth-utils, rate-limiter, cloudinary
βββ tests/ # Vitest test files
| Shortcut | Action |
|---|---|
Ctrl + ` |
Toggle terminal |
Ctrl + B |
Toggle file tree |
Ctrl + \ |
Toggle AI chat |
Ctrl + S |
Save current file |
npm testβ rate-limiter β IP-based rate limiting (20 req/min)
β templates β Expo/Vite/Next template generation
β auth-flow β OAuth state validation
β file-tree β FileTree component rendering
β example β Basic component test
β auth-env β Environment validation
MIT License β see LICENSE