A modern, collaborative cloud IDE for data analysis and code execution. Built by Glowstone (glowstone.red).
- Real-time collaborative code editing with WebSocket synchronization
- Multi-file tabbed code editor with syntax highlighting (Monaco Editor)
- Jupyter notebook integration with inline cell execution
- Interactive data exploration and visualization (Plotly)
- Rainbow CSV viewer with inline editing
- Web-Edit mode (HTML/CSS/JS live preview)
- Code history tracking
- Template library for quick starts
- Multi-sheet Excel file support
- FastAPI - High-performance async API
- Python 3.11+ - Core runtime
- Pandas - Data processing
- WebSocket - Real-time collaboration
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool
- Chakra UI - Component library
- Monaco Editor - Code editor
- Python 3.11+
- Node.js 20+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd "Gunpowder Splash"- Set up the backend:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cd ..- Set up the frontend:
cd frontend
npm install
cd ..Run all services with the startup script:
chmod +x start-dev.sh
./start-dev.shOr manually start each service:
- Start the WebSocket server (Terminal 1):
python websocket_server.py- Start the backend API (Terminal 2):
cd backend
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload- Start the frontend (Terminal 3):
cd frontend
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- WebSocket: ws://localhost:8001
- API Docs: http://localhost:8000/docs
Build and run with Docker Compose:
docker-compose up --buildGunpowder Splash/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── main.py # Application entry point
│ │ ├── routers/ # API endpoints
│ │ └── services/ # Business logic
│ ├── requirements.txt
│ └── workspace/ # User file workspace
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom hooks
│ │ └── styles/ # Theme and styles
│ ├── package.json
│ └── vite.config.ts
├── websocket_server.py # Collaboration server
├── docker-compose.yml # Docker orchestration
└── README.md
cd backend
python -m uvicorn app.main:app --reloadcd frontend
npm run dev- Backend: Follow PEP 8
- Frontend: Use ESLint and Prettier
Create a .env file in the backend directory:
WORKSPACE_DIR=workspace
PORT=8000
Update frontend/vite.config.ts for custom proxy settings.
- Build the frontend:
cd frontend
npm run build- Run the backend with production settings:
cd backend
uvicorn app.main:app --host 0.0.0.0 --port 8000docker-compose -f docker-compose.prod.yml up -d- Always use HTTPS in production
- Set proper CORS origins in
backend/app/main.py - Use environment variables for secrets
- Review
SECURITY.mdfor detailed guidelines
See COLLABORATION.md for contribution guidelines.
Proprietary - Glowstone (glowstone.red)
For issues and questions, contact the Glowstone team.