Piano inventory catalog with brand/condition filtering, events, and a staff-editable admin.
Inventory catalog for a piano retailer, built to replace a static WordPress site the staff couldn't update themselves. Items (brand, condition, price, photos) are fully admin-managed — no code changes needed to list a new piano. Filtering is server-rendered (brand, condition, type) rather than client-side JS, so it stays fast and indexable. Also includes event listings, testimonials, and promotions modules. Runs on PostgreSQL, deployed on Railway with automatic deploys from the main branch.