尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A quick and fun app I wrote that helped me learn to read musical notes
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A quick and fun app I wrote that helped me learn to read musical notes. It shows one note on a music staff at a time, and you name it.
Play it: pianogame.mroudnitski.com
A note appears on the staff. Name it by typing its letter (C through B) or by tapping that key on the on-screen piano.
M mutes the sound and ? shows the instructions again.Next.js (pages router), React and Tailwind CSS, in plain JavaScript. There is no backend and there are no accounts.
Bun and Node versions are pinned in .tool-versions. mise installs both:
mise install
bun install
bun run dev # http://localhost:3000
If mise isn't activated in your shell, prefix commands with mise exec --, for example mise exec -- bun run dev. Without mise, install Bun 1.x and Node 24 yourself.
| Script | What it does |
|---|---|
bun run dev | Start the dev server |
bun run build | Create the production build |
bun run start | Serve the production build |
bun run lint | Lint with ESLint (eslint.config.mjs, Next.js core-web-vitals preset) |
bun run test | Run the unit tests (*.test.js) with Bun's built-in test runner |
GitHub Actions runs install, lint, test and build on every pull request and every push to main.
If a build warns that caniuse-lite is outdated, bun update caniuse-lite refreshes it (lockfile only).
pages/ index.js wires the game together; _document.js sets up the HTML shell
components/ UI: the staff, the piano, the scoreboard, the header and help card, practice settings
lib/ Game logic, with tests beside it: staff geometry, the answer loop, the note deck
and adaptive practice, and a small Web Audio piano
styles/ globals.css: Tailwind layers, layout scaling and animations
public/ App icons, web manifest and social preview image
docs/ README screenshot
The live site runs on Vercel. The repo has no Vercel-specific configuration: the app is a static Next.js build with no API routes or environment variables, so importing it into Vercel with the default Next.js settings is enough. Any host that runs Next.js works too. To try the production build locally, run bun run build and then bun run start.