Beer Catalog Refactor
2026 – ongoingPersonal project
DevPMFull-StackMobile-First
- Situation
- An older ASP.NET MVC beer catalog app needed a modern rebuild so it could grow into a more useful product over time.
- Action
- Documented the existing app, planned the refactor, and started rebuilding it with a React frontend, an ASP.NET Core backend, PostgreSQL, Docker, and a mobile-first experience.
- Result
- A new foundation is now in place for the app, along with a documented build process that can be shared publicly as the product evolves.
Updates
- Building a Beer Catalog Refactor→
- Refactor Milestone: A Mobile-First Starter→
- Refactor Milestone: Hardening the Foundation→
- Running the Beer App Like a Real Agile Project→
- Refactor Milestone: Making TDD Real→
- Re-Planning the Beer App Around the Customer's Phone→
- Shipping the Mug Club Core Loop→
- Live Testing and Triage: Feeding Real Feedback Into the Sprint→
- Designing PIN Lockout for Someone Else's Phone→
- Sprint 2 Closes and the Mug Club Epic Is Done→
- Sprint 3 Closes: Search, Real Beer Data, and a Phone That Actually Works→
- Grooming Before Coding: Scoping the Beer App's Auth II Sprint→
- Sprint 4 Closes: Social Sign-In, Password Reset, and the Cost of Doing Auth Right→
- Grooming Sprint 5: Turning the Backstop Into a Real Admin Experience→
- Sprint 5 Closes: One Audit Trail, Three Screens, and the Bugs You Only Find by Using the Thing→
- Five Sprints In: A Post-Mortem on the Bugs the Tests Didn't Catch→
- Stress-Testing Five 'Done' Sprints Before Writing Sprint 6→
- Sprint 6 Closes: A Bottom Tab Bar, an Account Hub, and Setting Up a Browser to Check My Own Work→
- Sprint 7 Closes: Letting Customers Search Outside the List, and Learning From What They Ask For→
- Sprint 8 Closes: Eight Small Fixes, One Bug the Test Suite Was Structurally Unable to Catch→
- Grooming an Epic Too Big for One Sprint: My Beers, Push Notifications, and What Stayed Off the Board→
- Pausing Sprint 9 for a UX Brainstorm — and Why That's the Agile Move, Not a Detour→
- Sprint 9 Closes: Rebuilding the Confirmation Flow, and Finally Fixing the Bug Left Broken on Purpose→
- Sprint 10 Closes: My Beers Ships, and a Merge-Day Lesson in What 'Independent Branches' Actually Means→
- Sprint 11 Closes: Building the Whole Notification Pipeline Before There's a Single Notification to Send→
- Sprint 12 Closes: The Pipe Carries Its First Real Message, and the Owner Gets a Second Dashboard→
- Sprint 14 Closes: A Second Opinion Pauses the Badge Work to Harden the Session Layer First→
- Sprint 13 Closes: Milestone Badges, and the Difference Between Earning Something and Just Having It→