A tiny backend, per key.

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.

5 MB SQLite DB 100 MB files WebSocket realtime ~/ hosted site Python sandbox register later
Start in one click — nothing to sign up for
1 Use it right away
bash — copy a key, then gocopy
curl -s https://forge.boqsc.eu/api/key
# → {"key":"fsk_...","id":"fg_...","db_quota":5242880,"storage_quota":104857600}
2 Database (5 MB)
bash — raw SQL, one statement per callcopy
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":{...}}
3 Storage & hosted site (100 MB)
bash — upload files, then they are livecopy
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)
4 Realtime multiplayer
javascript — connect, send, listencopy
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
5 Run code
bash — sandboxed Pythoncopy
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":""}
6 Register it later
bash — claim a username + password to manage the keycopy
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
Everything included
🗄

5 MB database

Per-key SQLite. Run raw SQL via /api/db/query. Enforced quota, one statement per call.

📦

100 MB storage

Upload, download, list and delete files with the key. Every file has a public URL.

🌐

Hosted site

Drop in index.html and your page is live at forge.boqsc.eu/~/<id>/.

🎮

Realtime multiplayer

WebSocket rooms with presence, events and direct messages. Server push via /api/broadcast.

Run code

Sandboxed Python with a timeout. No OS, network or file access.

🔑

Key only

Issued instantly, no account needed. Register a username + password later to manage and rotate it.

How it works. Every key is a project. The 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.