Design an Online Code Editor
HardSystem design · Developer Tools
Design an online coding workspace (Replit or GitHub Codespaces style). Users open a project in the browser, edit files, run code in a terminal, see streamed output, and come back later to find their work saved. Every workspace runs untrusted code. Focus on sandbox isolation and resource limits, start-up time, hibernation and persistence, output streaming, and (if time allows) real-time collaboration. Out of scope: the editor widget internals and billing.
Requirements
- Isolate untrusted code with strong sandboxes and hard CPU, memory, disk, process and lifetime limits
- Hide start-up latency with warm pools and prebuilt images
- Persist files and hibernate idle workspaces without losing work
- Stream terminal and log output reliably; support timeouts and, if scoped, multiplayer editing