Moldable Collection-Club Platform
- Situation
- An older ASP.NET MVC beer catalog app needed a modern rebuild, and once that rebuild proved out a staff-confirmed loyalty flow for one business, the real question became whether the same pattern could work for any business that wants members working through a list of things to earn a reward, without a rebuild for each one.
- Action
- Rebuilt the app with a React frontend, an ASP.NET Core backend, PostgreSQL, and Docker; then added real multi-tenancy, per-business configuration (goals, item names, badge tiers, branding), and the AWS infrastructure to run many differently-configured businesses from one codebase.
- Result
- A live-tested platform running five fully isolated, differently branded demo businesses (a bar, a coffee shop, a brewery, a record store, and a dispensary) from the same code, deployed and verified end-to-end on real AWS infrastructure, with a Redis-backed cache layer for running more than one instance and the first industry-specific bespoke redesign now underway.
Updates
- Demo-Prep QA: The Bugs That Only Show Up Once You Actually Click Through It
- Bespoke, Not Recolored: Starting the Industry-Specific Design System
- Sprint 18 Closes: A Distributed Cache, a Concurrency Bug It Exposed, and a Test That Couldn't Quite Prove Its Own Fix
- Epic 3: Why Renaming 'Bartender' and Renaming 'Draft' Turned Out to Be Two Different Problems
- Deploying to AWS, For Real: The Ten Bugs a Live Account Found That No Review Could
- Deploying to AWS: The Bugs a Careful Review Found Before an Account Even Existed
- Sprint 15 Closes: Closing the Multi-Tenancy Gaps, and the Vulnerability a New Admin Role Exposed the Same Day
- Making the App Moldable: Real Multi-Tenancy First, Then Four Businesses That Actually Look Different
Show all 36 updates
- 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
- 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 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 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 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 3 Closes: Search, Real Beer Data, and a Phone That Actually Works
- Grooming Before Coding: Scoping the Beer App's Auth II Sprint
- Designing PIN Lockout for Someone Else's Phone
- Sprint 2 Closes and the Mug Club Epic Is Done
- Shipping the Mug Club Core Loop
- Live Testing and Triage: Feeding Real Feedback Into the Sprint
- 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
- Building a Beer Catalog Refactor
- Refactor Milestone: A Mobile-First Starter