Kaicode
Realtime Peer Programming Playground
Project Overview
🏗️ Multi-Repository Architecture
Kaicode consists of two separate repositories: frontend (Next.js) and backend (Go). Installation and setup instructions are available in each repository's README.
KaiCode is a realtime peer programming playground that enables collaborative coding with real-time cursor sharing and synchronized editing. Built for developers who want to code together seamlessly, it provides a complete IDE experience in the browser.
The platform features collaborative editing via Gorilla WebSockets and Y.js CRDT, failsafe containerized sandbox code execution, and AI-powered inline ghost completions using DeepSeek LLM API. All code execution happens in secure Docker containers managed through AWS SQS queues.
Technology Stack
Frontend
- Next.js with TypeScript
- Y.js for CRDT operations
- Multi-cursor support
- Real-time collaborative editing
Backend
- Golang backend services
- Gorilla WebSockets
- PostgreSQL with Drizzle ORM
- Redis for session management
AI & Code Execution
- DeepSeek LLM API
- Inline ghost completions
- Docker execution containers
- Custom Docker client (Golang)
Infrastructure
- AWS Lambda & EC2
- AWS SQS for queue management
- Docker containerization
- Failsafe sandbox execution
Key Features
Real-time Collaborative Editing
Built with Gorilla WebSockets and Y.js CRDT for seamless real-time cursor sharing and synchronized editing across multiple users.
AI-Powered Code Completions
Inline ghost completions powered by DeepSeek LLM API providing intelligent code suggestions as you type.
Secure Code Execution
Failsafe containerized sandbox execution using custom Docker containers managed through AWS SQS queues for secure code running.
Multi-Cursor Support
See where your collaborators are editing in real-time with synchronized cursors and selection highlighting.
Source Code
Demo Video
Real-time Collaboration Demo
Live Coding & Execution
Watch multiple developers collaborate in real-time with secure code execution in Docker containers.