Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Self-hosted (and hosted) app for any group: manage your board & digital games, run voting sessions to decide what to play next, and track ratings. German/English UI. Built entirely by Claude.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
"What should we play tonight?" — Spielwirbel draws a few games from your
group's shelf, collects everyone's rating — on one shared device, on their own
phones, or through a link — and
remembers what your round actually likes.
Self-hostable, German + English + Spanish + French + Italian + Dutch + Portuguese + Finnish + Korean UI, no tracking. Try it without an account at
spielwirbel.app.檢視完整 README ↗"What should we play tonight?" — Spielwirbel draws a few games from your group's shelf, collects everyone's rating — on one shared device, on their own phones, or through a link — and remembers what your round actually likes.
Self-hostable, German + English + Spanish + French + Italian + Dutch + Portuguese + Finnish + Korean UI, no tracking. Try it without an account at spielwirbel.app.
ℹ️ Status: live as a public multi-tenant SaaS — registration has been open at spielwirbel.app since 2026-07-24, and a guest demo lets you look around without signing up at all. Self-hosting defaults to local-only with no authentication — if you run it that way, keep it on a trusted network you control, since there is no access control until you configure one (
docs/configuration.md).
Node.js 22 or newer is the only prerequisite (get it from https://nodejs.org/; developed and tested on Node 26).
npm install
npm start # or: node server.js
Open http://localhost:3000 — that's it. From another device on your network,
use http://<your-computer-ip>:3000 (find the IP with e.g.
ipconfig getifaddr en0 on macOS).
Use a different port or data folder: PORT=8080 npm start,
DATA_DIR=/path/to/data npm start.
Everything else — PostgreSQL, object storage for covers, user accounts, the
guest demo, rate limits, the operator panel, Docker and deploying — is optional
and documented in docs/configuration.md.
→ Full detail in docs/features.md.
| Document | What's in it |
|---|---|
docs/features.md | Every feature in detail |
docs/architecture.md | How it's built, and what every file is for |
docs/configuration.md | All environment variables, Docker, deployment |
docs/deploy-railway.md | Step-by-step production deploy |
CLAUDE.md | The architecture constraints new work must respect |
CONTRIBUTING.md | How to contribute, and the licensing terms |
SECURITY.md | Reporting a vulnerability |
docs/legal/ | Operator records: DSA workflow, retention, DSAR |
npm test # automated tests (Node's built-in runner + supertest)
npm run coverage:ci # tests + the coverage thresholds CI gates on
npm run lint # ESLint (flat config)
npm run check:syntax # node --check over all JS files
npm run build # optional: content-hash + minify js/css into dist/
npm run migrate # apply pending Postgres migrations (needs DATABASE_URL)
npm run dev # the server, restarted on every backend file change
node scripts/seed-dev.js # fill a throwaway .devdata/ with the demo's rounds
There is no build step for development — npm start serves public/
directly. npm run build is optional and only for production; see
docs/architecture.md, and
docs/configuration.md for npm run dev and the
env-file loading.
This project is built and maintained with
Claude Code, and the repository ships the
workflow with it: skills in .claude/skills/ and rules in
.claude/rules/ that encode how work gets done here. Whether you contribute by
prompting Claude Code or by hand, that is the intended path.
See CONTRIBUTING.md for where to start, the skill
workflow, translations, and the contribution-licensing terms — inbound
contributions are licensed under Apache-2.0 and every commit must be signed off
under the Developer Certificate of Origin (git commit -s).
By default everything lives in the data/ folder (data.json + uploads/) —
copy it to back up, delete it to reset. The whole folder is git-ignored, so your
group's data is never committed.
Set DATABASE_URL (and optionally S3_BUCKET) and your data lives in Postgres
and object storage instead — then backups are your provider's job, and they are
usually not switched on by default. Check, rather than assuming a managed
database backs itself up; see docs/configuration.md.
This project was developed entirely by Claude (Anthropic's AI models, via Claude Code), through an interactive, conversational process: a human described the desired features and gave feedback, and Claude designed and wrote all of the code, comments and documentation. It stands as a small example of what agentic, AI-assisted development can produce end to end.
Note the distinction: the app's development was AI-driven, but the app itself contains no AI and sends no data anywhere when you run it.
PolyForm Noncommercial License 1.0.0, © 2026 Julian Zenker — the sole rights holder and licensor. The source is public and you are free to use, study, modify and share it for noncommercial purposes (personal use, hobby projects, education, research). Commercial use — including running it as a paid or revenue-generating hosted service — is not granted by this license; contact the maintainer for commercial terms.