Full-stack product engineer: Next.js app design, interactive harmonica UI, tab management, database/API layer, and Vercel deployment / live
HarpTabs: Public Harmonica Tab Sharing Platform
A public harmonica tab platform for creating, saving, managing, and sharing tablature through an interactive 10-hole harmonica interface.
Why this is a side project
HarpTabs started from a small musical annoyance: harmonica tabs are useful, but they often live in scattered notes, screenshots, forum posts, and suspiciously named text files.
Very artistic.
Not very searchable.
The goal was to build a small public platform where players can create, save, manage, and share harmonica tablature without turning practice time into file archaeology.
Core experience
The main interaction is an interactive 10-hole harmonica diagram.
Users click holes, build notes, and see tablature appear live. That keeps the feedback loop short: try a note, adjust it, add another note, regret a few choices, fix them, continue being musical.
The interface is intentionally direct. No long onboarding. No giant notation system. No dramatic software ceremony.
Just the harp. The tab. The song idea.
Saved tabs
HarpTabs supports persistent saved tabs with titles, dates, editing, loading, and deletion.
That changes the app from a one-time tab generator into a small tab library. It also gives the project a foundation for a broader public archive where harmonica players can discover songs, publish tabs, and learn from each other.
The product idea is simple:
- more tabs;
- fewer lost notes;
- less “wait, was that 4 draw or 5 blow?”
Technical approach
HarpTabs is built with Next.js 15, React, TypeScript, Tailwind CSS, Radix UI, Lucide Icons, and Vercel Postgres.
The app uses a small API surface for tab persistence:
GET /api/tabsPOST /api/tabsGET /api/tabs/[id]PUT /api/tabs/[id]DELETE /api/tabs/[id]
It is classic CRUD, but with more breathing.
And slightly more harmonica.
What it demonstrates
HarpTabs demonstrates product restraint: start with the primary user action, make it fast, and avoid burying a simple creative workflow under too much interface.
It also shows practical full-stack implementation: interactive UI, typed app structure, database-backed persistence, responsive design, and Vercel deployment.
Tiny instrument. Tiny app.
Still useful.