A browser-based sandbox IDE built using React, WebContainers, Monaco Editor, xterm.js, Zustand, Express, and MongoDB.
Assess IDE allows users to create, edit, persist, and run frontend projects directly in the browser with a VSCode-inspired developer experience.
🔗 https://assess-ide.vercel.app
-
Browser-based code editor
-
Monaco Editor integration
-
Sandboxed execution using WebContainers
-
Live preview iframe
-
Interactive terminal using xterm.js
-
File & folder CRUD operations
-
Persistent project storage with MongoDB
-
Auto project restoration on refresh
-
Resizable IDE panels
-
VSCode-inspired UI
-
React
-
Vite
-
Monaco Editor
-
Zustand
-
xterm.js
-
Node.js
-
Express.js
-
MongoDB
-
Mongoose
- StackBlitz WebContainers
React UI
├── Monaco Editor
├── File Explorer
├── Preview Panel
└── Terminal
↓
Zustand Store
↓
WebContainer Runtime
↓
MongoDB PersistenceWebContainers allow Node.js applications to run directly inside the browser using WebAssembly and Service Workers.
Advantages:
- No Docker setup required
- Sandboxed execution
- Fast startup
- Browser-native environment
- Ideal for lightweight browser IDEs
client/
server/
client/src/
components/
services/
store/
styles/
templates/
utils/
server/
config/
controllers/
middleware/
routes/
models/
The application state is managed through Zustand stores. The MongoDB persistence layer and WebContainer filesystem are synchronized from Zustand state.
WebContainers were chosen over Docker containers to keep the application lightweight and browser-native.
Only source files and project metadata are persisted. node_modules are intentionally not stored and are reinstalled on fresh runtime initialization.
User Action
↓
Zustand Store Update
↓
MongoDB Save
↓
WebContainer Filesystem Sync
git clone https://github.com/devrittik/assess-ide/
npm run install:all
VITE_API_URL=/api
VITE_API_PROXY=http://localhost:5000
PORT=5000
MONGODB_URI=your_mongodb_connection_string
cd server
npm run dev
cd client
npm run dev
- Vercel
- Render
- MongoDB Atlas
WebContainers require the following headers:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
These headers are configured for both development and production environments.
- Only optimized for JavaScript/TypeScript frontend projects
node_modulesare not persisted- Terminal shell behavior may vary across browsers
- No authentication system
- No multi-user collaboration
- Integrate Preview console/devtools
- GitHub integration
- Multi-language runtime support
- Terminal improvements
AI tools were used to assist with:
- architectural brainstorming
- debugging guidance
- UI refinement
- project planning
All implementation, integration, debugging, and final architectural decisions were manually reviewed and adapted.
- Sandboxed execution
- File system management
- Live preview
- Terminal integration
- Persistent projects
- Responsive IDE layout
- Browser-native runtime
Rittik Chakraborty
