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.