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
테이블을 돌며 무작위 게임을 평가해 오늘의 게임을 선정하고, 매 세션마다 선호 게임을 파악합니다
Ein Gerät wandert um den Tisch, alle bewerten die ausgelosten Spiele. Heraus kommt das Spiel für heute – und mit jeder Session ein schärferes Bild davon, was eure Runde gern spielt.
게임JavaScript · CSSGitHub @ChulioZ온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.