Every key gets a 5 MB database, 100 MB of storage, realtime multiplayer rooms, a hosted website, and a code sandbox. No signup to start — grab a key and call the API.
curl -s https://forge.boqsc.eu/api/key
# → {"key":"fsk_...","id":"fg_...","db_quota":5242880,"storage_quota":104857600}
curl -s -X POST https://forge.boqsc.eu/api/db/query \ -H "Authorization: Bearer $KEY" \ -d '{"sql":"CREATE TABLE scores(level INT, score INT)"}' curl -s -X POST https://forge.boqsc.eu/api/db/query \ -H "Authorization: Bearer $KEY" \ -d '{"sql":"INSERT INTO scores VALUES(1, 9000)"}' curl -s -X POST https://forge.boqsc.eu/api/db/query \ -H "Authorization: Bearer $KEY" \ -d '{"sql":"SELECT * FROM scores"}' # → {"ok":true,"columns":["level","score"],"rows":[[1,9000]],"usage":{...}}
curl -s -X POST "https://forge.boqsc.eu/api/files?path=index.html" \ -H "Authorization: Bearer $KEY" \ --data-binary '<h1>hi</h1>' # your site, live (no server restart needed): curl -s https://forge.boqsc.eu/~/fg_.../index.html # download API: /api/download?path=... (add &inline=1 to preview) # list: /api/files delete: /api/files?path=... (DELETE)
const ws = new WebSocket(`wss://forge.boqsc.eu/api/socket?project=PROJECT_ID&room=alpha`); ws.onmessage = e => { const m = JSON.parse(e.data); if (m.type === 'event') console.log(m.nickname, m.event, m.data); }; ws.send(JSON.stringify({type:'event', event:'move', data:{x:10,y:20}})); // server-authoritative push: POST /api/broadcast {room, event, data} with your key
curl -s -X POST https://forge.boqsc.eu/api/run \ -H "Authorization: Bearer $KEY" \ -d '{"code":"print(6*7)"}' # → {"ok":true,"exit_code":0,"stdout":"42\n","stderr":""}
curl -s -X POST https://forge.boqsc.eu/api/register \ -H "Authorization: Bearer $KEY" \ -d '{"username":"sam","password":"hunter2"}' # forgot the key? login, then rotate for a fresh one: # POST /api/login {username,password} → info | POST /api/rotate {username,password} → new key
Per-key SQLite. Run raw SQL via /api/db/query. Enforced quota, one statement per call.
Upload, download, list and delete files with the key. Every file has a public URL.
Drop in index.html and your page is live at forge.boqsc.eu/~/<id>/.
WebSocket rooms with presence, events and direct messages. Server push via /api/broadcast.
Sandboxed Python with a timeout. No OS, network or file access.
Issued instantly, no account needed. Register a username + password later to manage and rotate it.
id (like fg_...) is public — use it to
address your site and realtime rooms. The key (like fsk_...) is secret — send it as
Authorization: Bearer <key> on every API call. Keys are stored hashed server-side; the raw key
is shown once. Quotas are enforced per project, and all API responses are CORS-open for any origin.