CollabCode is a premium, high-fidelity, interactive technical IDE and collaborative notebook environment designed to run programs in diverse languages on a Cloud Server without requiring local installation of heavy packages, runtime environments, or modules.
With its sophisticated glassmorphism design, immersive soundscapes, and comprehensive developer widgets, CollabCode provides an outstanding developer experience tailored to reduce cognitive load while maximizing information density.
CollabCode is built using a custom technical design system (detailed in DESIGN.md):
- Color Palette: Deep slate canvas (
#0b1326), vibrant neon highlights, emerald green run indicators, and HSL-tailored active states. - Typography: Dual-font pairing with Geist for sleek interface elements/navigation and JetBrains Mono for clear, high-readability code cells and output consoles.
- Micro-interactions: Hover feedback, low-contrast border highlights, backdrop blurs, and glassmorphic panels.
- Code & Text Cells: Add, edit, or delete markdown explanations and code cells dynamically.
- Supported Languages: Out-of-the-box execution for:
- Python 3
- Node.js (JavaScript)
- C++ 17
- Java
- Drag-and-Drop Reordering: Smoothly drag and drop cells within the canvas to re-arrange your notebook structure.
- Integrates with a lightweight Flask delegate server (cloud-executor) to securely compile and run code via the JDoodle Compiler API.
- Implements request validation, execution timeouts, proper exit code parsing, and separate stderr/stdout interpretation.
- Import data inputs seamlessly:
- File Upload: Upload
.csv,.txt,.log, or other raw data files. - Google Sheets Integration: Add public Google Sheets URLs to automatically convert them to CSV.
- File Upload: Upload
- Inject raw file content/sheet data directly into the active code cell's
stdinwith one click.
- A floating collapsable player powered by the Audius API.
- Includes:
- Search engine for study tracks, lofi, or ambient tracks.
- Play, pause, skip forward/back, seek bar, and volume controls.
- Instant spacebar play/pause shortcut integration.
- Highlight or contextually analyze any code cell.
- Query explanation, request optimization, or debug code using the integrated side-drawer interface.
- Export as PNG: Capture the entire workspace layout as a clean high-resolution image using
html-to-image(automatically resolving layout structures). - Export as JSON: Download the notebook metadata (code, text, languages, and stdin data) as a structured JSON file.
- Import JSON: Append or overwrite existing cell structures from previously exported JSON configurations.
- High-fidelity acoustic cues:
- Bubble / Pop sound effects on UI clicks.
- Success / Error bells on code execution and compiler status results.
- Auto-Save: Automatic status indicators and background synchronization of your workspace title and cell contents to
LocalStorage. - Session Authentication: Secure user login, registration, and logout states persistent via HttpOnly cookie endpoints.
CollabCode/
βββ .next/ # Built Next.js output
βββ cloud-executor/ # Flask execution backend
β βββ main.py # Flask server code
β βββ Dockerfile # Container setup for execution server
β βββ requirements.txt # Python dependencies (Flask, requests, etc.)
β βββ deploy.sh # GCP Cloud Run deployment script for executor
βββ public/ # Static assets, logos, and audio files
βββ src/
β βββ app/ # Next.js pages and API endpoints
β β βββ api/
β β β βββ analyze/ # AI code analysis route
β β β βββ auth/ # Login, logout, session status APIs
β β β βββ execute/ # Code execution route
β β βββ layout.tsx
β β βββ page.tsx # Main IDE dashboard UI
β βββ components/ # Modular React components
β β βββ CodeCell.tsx
β β βββ TextCell.tsx
β β βββ DataSourcesSidebar.tsx
β β βββ FocusMusicWidget.tsx
β β βββ ThemeProvider.tsx
β β βββ ...
β βββ context/ # Shared player state logic
βββ deploy-all.sh # Complete GCP project provisioning shell script
βββ DESIGN.md # Visual style guidelines & color systems
βββ package.json # Frontend dependency manifest
βββ README.md # Project documentation
- Node.js (v18.x or later)
- Python 3.9+
- A JDoodle Compiler API account (for credentials)
Create a .env file in the root directory:
# JDoodle Credentials (obtain from jdoodle.com)
JDOODLE_CLIENT_ID=your_jdoodle_client_id
JDOODLE_CLIENT_SECRET=your_jdoodle_client_secret
# AI Analysis Configuration
MISTRAL_API_KEY=your_mistral_api_key
# Database Connection (for Auth state tracking)
DATABASE_URL=postgresql://user:password@localhost:5432/collabcode
# CORS & Execution backend targets
ALLOWED_ORIGINS=http://localhost:3000
CLOUD_RUN_URL=http://localhost:8080- Navigate to the executor folder:
cd cloud-executor - Create and activate a virtual environment:
python -m venv .venv # On Windows: .venv\Scripts\activate # On Unix: source .venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Start the Flask server:
The backend will boot up at
python main.py
http://localhost:8080.
- Open a new terminal in the project root.
- Install npm modules:
npm install
- Run the Next.js development server:
npm run dev
- Open http://localhost:3000 in your web browser.
You can deploy the complete stack onto GCP Cloud Run using the automated deployment scripts:
To deploy both services (Executor API + Next.js Frontend) in sequence with automated environment variable linking:
chmod +x deploy-all.sh
./deploy-all.shchmod +x deploy-frontend.sh
./deploy-frontend.shcd cloud-executor
chmod +x deploy.sh
./deploy.sh