Documentation

πŸ§‘β€πŸ’» 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.
Cloud Dev IDE Banner

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.
πŸ“£ Want to add your own REPL template? It's easy! πŸ‘‰ Read the Contributing Guide to get started.

✨ 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

Loading diagram...

πŸŒ€ Session Lifecycle

Loading diagram...

πŸ”© 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

templates/

  • β€’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

  1. β€’
    User logs in and creates a REPL
  2. β€’
    core/ copies a template into username/repl-id/ on S3
  3. β€’
    core/ deploys a pod, service, ingress in Kubernetes
  4. β€’
    runner/ connects via WebSocket and serves FS + Terminal
  5. β€’
    On session end:
    • β€’Ephemeral container uploads updated files to S3
    • β€’All K8s resources are cleaned up

πŸ’» Tech Stack

LayerStack
FrontendNext.js, Tailwind, WebSockets
BackendGoLang (Echo/Fiber), Redis, S3 SDK
RunnerGoLang + PTY + WebSocket
OrchestrationKubernetes, Docker, Docker Swarm
NetworkingIngress NGINX + cert-manager
AuthGitHub 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


🀝 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