Write, compile & run code in multiple languages directly in your browser.
Built for developers, by developers — ready for both development and production.
A full-stack, web-based code compiler platform with:
- ✨ Modern React frontend with Monaco Editor
- ⚡ Express.js backend with Docker integration
- 🐳 Secure, isolated code execution in Docker containers
- 📚 Comprehensive documentation & examples
- 🎨 Sleek dark-themed UI inspired by professional code editors
Languages Supported: Python, JavaScript, C++, Java, C#, Rust, Go, Lua, R
Security Level: Multi-layer isolation (containers, network, resources)
Scalability: Suitable for development, testing, and production
WebCompiler/
├── backend
│ ├── src
│ │ ├── api
│ │ │ └── routes.js
│ │ ├── common
│ │ │ └── config.js
│ │ ├── docker
│ │ │ └── containerManager.js
│ │ └── server.js
│ ├── .env.example
│ ├── Dockerfile.backend
│ └── package.json
├── frontend
│ ├── src
│ │ ├── api
│ │ │ └── client.js
│ │ ├── components
│ │ │ ├── CodeEditor.jsx
│ │ │ ├── ConsoleOutput.jsx
│ │ │ ├── ExecuteButton.jsx
│ │ │ └── LanguageSelector.jsx
│ │ ├── App.jsx
│ │ ├── index.css
│ │ ├── main.jsx
│ │ └── store.js
│ ├── Dockerfile.frontend
│ ├── index.html
│ ├── package.json
│ ├── postcss.config.js
│ ├── tailwind.config.js
│ └── vite.config.js
├── .gitignore
├── README.md
├── docker-compose.yml
├── setup.bat
└── setup.sh
Windows:
cd "Web Compiler"
setup.batLinux/Mac:
cd "Web Compiler"
chmod +x setup.sh
./setup.shBackend:
cd backend
npm install
npm run devFrontend (new terminal):
cd frontend
npm install
npm run devOpen http://localhost:3000 in your browser.
docker-compose up --build- Frontend: React 18, Vite, Monaco Editor, Tailwind CSS, Zustand
- Backend: Node.js 18, Express, Dockerode
- DevOps: Docker, Docker Compose
- Languages: Python 3.11, JavaScript (Node.js 18), C++ (g++ 11), Java 17, C# (.NET 6), Rust 1.70, Go 1.20, Lua 5.1, R 4.0+
POST /api/execute
Content-Type: application/json
{
"code": "print('Hello')",
"language": "python"
}GET /api/languagesGET /api/health- 🎨 Dark theme, responsive, real-time syntax highlighting
- 🎯 Intuitive UI: language selection, run button, console output
- 🔄 Efficient state management with Zustand
- 🔐 Secure containerized code execution
- ⚙️ Multi-language support
- 🛡️ Resource limits & execution timeouts
- 📊 Logging & health monitoring
- 🚀 Asynchronous execution for speed
- 🐳 Fully containerized with Docker
- 📦 Orchestration with Docker Compose
- 🔄 Scalable and horizontally ready
- 📈 Health checks and monitoring included
Languages & Limits: backend/src/common/config.js
Environment Variables: Create backend/.env
NODE_ENV=development
PORT=5000
DOCKER_TIMEOUT=30000
MAX_OUTPUT_SIZE=10000
- Docker not found: Install from Docker Desktop
- Port 5000 in use: Change
PORTin.env - Frontend can’t reach backend: Check backend is running:
curl http://localhost:5000/api/healthMIT License - Use freely for personal and commercial projects