Skip to content

./Piano Book Index

● Active

A personal reference site for indexing and browsing 1,300+ songs across 96 piano method books. Fuzzy search, YouTube tutorials, practice tracking, and difficulty comparison — all as a static PWA.

TypeScriptAstroPreactTailwind CSSFuse.jsCloudflare Pages

about this project

Piano Book Index is a personal reference tool for pianists who collect method books. It indexes over 1,300 songs across 96 books from publishers like Faber, Alfred, and Hal Leonard — searchable by title, composer, or genre with fuzzy matching powered by Fuse.js.

Features include a book catalog with ownership tracking, embedded YouTube tutorial videos matched to individual songs (linked via a custom playlist-matching script), and a practice progress system with four states: want to learn, learning, practiced, and mastered. A difficulty reference page normalizes grading scales across publishers so you can compare levels between series.

Built as a fully static Astro site with Preact for interactive components (search, filters, favorites, theming). All state lives in localStorage — no backend, no database. The site is deployed to Cloudflare Pages and works as an installable PWA with smart install prompts for iOS and Android, bottom navigation on mobile, and offline-capable architecture.

What makes this interesting: it solves a real personal problem — finding a specific song across a shelf of piano books — with a clean, fast, data-driven approach. All content lives in JSON files, making it trivial to add new books. The fuzzy search and cross-publisher difficulty mapping are genuinely useful features that don't exist in any commercial product.

Language
TypeScript
Year
2025