π§βπ» DevEx Cloud Development IDE - REPL as a Service
A production-grade REPL-as-a-Service Cloud IDE platform
Built with Kubernetes, WebSockets, S3, and GoLang magic.
Think Replit but open-source, custom-built, and containerized!
This monorepo powers an on-demand cloud development environment , where users can spin up live REPLs, write code, use terminals, and persist their work β all through a browser.
β¨ Features
β’ π GitHub OAuth authentication
β’ πͺ Create, Start, Stop, Delete REPLs via Core API
β’ πΎ S3-backed file persistence
β’ π¦ Kubernetes Deployments per REPL (Dynamic)
β’ π‘ WebSocket-based Editor & Terminal
β’ π§Ή Ephemeral containers for cleanup and sync
β’ π HTTPS & TLS via Let's Encrypt & Cert Manager
β’ π¨ Beautiful Next.js + Tailwind frontend
βοΈ How It Works
π Session Lifecycle
π© Key Components
web/
β Frontend
β’ Built with Next.js + Tailwind CSS
β’ GitHub OAuth login
β’ GUI for File Tree, Editor, Terminal
β’ WebSocket hooks to interact with Runner
core/
β Backend API
β’ Written in Go
β’ Handles user auth, S3 ops, Kubernetes deployments, cleanup
β’ Redis for REPL session state
β’ π See core/README.md for detailed architecture & deployment steps
runner/
β REPL Runtime Container
β’
Lightweight Go server
β’
WebSocket API for:
β’ File tree and file content access
β’ Terminal (PTY) sessions
β’
π See
runner/README.md for event list and package internals
k8s/
β Kubernetes Bootstrap & TLS
β’
Contains:
β’ Ingress-NGINX setup
β’ cert-manager
+ Letβs Encrypt for auto TLS
β’
π See
k8s/README.md for full setup instructions
β’ Base folders (e.g. Node.js, Python) copied on REPL creation
β’ Language-specific dockerized scaffolds
β’ π¦ Want to add your own template? See the Contribution Guide
π§± Infrastructure
β’ βΈοΈ Kubernetes cluster for REPL pods
β’ π Cert Manager + Letβs Encrypt for TLS
β’ ποΈ S3-compatible storage for persistence
β’ π³ Docker images for runtime environments
β’ βοΈ Redis for in-memory session tracking
π¦ Deployment Flow
β’
User logs in and creates a REPL
β’
core/
copies a template into username/repl-id/
on S3
β’
core/
deploys a pod, service, ingress in Kubernetes
β’
runner/
connects via WebSocket and serves FS + Terminal
β’
On session end:
β’ Ephemeral container uploads updated files to S3
β’ All K8s resources are cleaned up
π» Tech Stack
Layer Stack Frontend Next.js, Tailwind, WebSockets Backend GoLang (Echo/Fiber), Redis, S3 SDK Runner GoLang + PTY + WebSocket Orchestration Kubernetes, Docker, Docker Swarm Networking Ingress NGINX + cert-manager Auth GitHub OAuth
π Per-Component Docs
π For deeper implementation details:
π§ Why I Built This
βThis project is my deep dive into Cloud Infrastructure, DevOps, and FullStack Engineering β wrapped in a real-world application.β
β
Parth Kapoor
π Demo & Links
β’ π§ͺ Live
β’ π§βπ» Portfolio
β’ π GitHub Repo
π€ Contributing
This project is under active development.
Want to contribute a template, fix, or feature? Start here π
CONTRIBUTING.md
Pull requests, suggestions, and feedback are always welcome!
π License
Licensed under the
MIT License