Introduction
A judge you can trust with strangers' code.
Algora is a competitive-programming practice platform: a browser IDE built on Monaco where you solve authored problems — or free-form playground code — in C++, Python and JavaScript, submitted to a judge that runs them against hidden test cases and reports verdict, runtime and peak memory.
Around that core it grows a whole ecosystem: user-authored problems with hidden tests, per-problem leaderboards, an AI tutor that knows your code and your last run, and live WebRTC rooms for pairing on a problem together.
Architecture
An asynchronous judging pipeline.
Submissions never block the API. A POST writes a Processing row, runs a static complexity estimate, then pushes a JSON job onto a Redis queue. A decoupled worker pops jobs, executes the code inside an ephemeral Docker sandbox, and updates the row with per-test verdicts plus runtime and memory stats while the frontend polls for results.
Leaderboards rank each user's best submission by estimated time complexity first, then raw runtime — so an O(n log n) solution beats a faster-on-tiny-inputs O(n²) one.
Security
Sandboxed to the teeth.
Every run is a throwaway container: no network, 256 MB memory with swap pinned, one CPU, a 64-process PID limit, all capabilities dropped and no-new-privileges set. Solution runs go further — read-only root filesystem, a 16 MB tmpfs, and execution as the nobody user with the code mounted read-only.
Time limits are enforced twice: an in-container kill timer plus a host-side backstop. Out-of-memory kills are disambiguated from time-limit kills by checking wall-clock on exit code 137.
Beyond judging
Tutoring and pairing built in.
An AI tutor endpoint proxies to Gemini with a system prompt embedding the problem statement, your current code and the last run's summary — hints, not answers.
Meetings are full-mesh WebRTC: camera, mic and screen-share negotiated peer-to-peer through a WebSocket signaling relay, with glare avoided by making existing peers always initiate offers. Media never touches the server.
256 MB · 1 CPU
hard sandbox limits on every untrusted run
3
languages judged end to end: C++, Python, JavaScript
P2P
WebRTC media never touches the server
What's inside
Key features.
Browser IDE
Monaco-powered editor with a free playground path and a judged path over hidden test cases.
Problem authoring
Create problems with visible and hidden test cases; authors keep exclusive delete rights.
Static Big-O estimator
Infers time/space complexity from loop nesting, recursion fan-out and halving patterns — without executing code.
Complexity-first leaderboards
Best submission per user, sorted by estimated complexity class before raw runtime.
AI tutor
Gemini-backed chat that sees the problem, your code and your last verdict.
WebRTC meetings
Full-mesh video, voice and screen-share rooms with shareable join links per problem.
Hardened auth
JWT + bcrypt, and password resets stored hashed in Redis with a 1-hour TTL consumed atomically.
Growth charts
Profiles plot solve stats and complexity trends as SVG Big-O curves over time.
Built with