Decisions that kept the numbers honest
I designed every screen in Figma, then built it with AI doing most of the coding. ChatGPT handled most of the first implementation, and I now use Claude Code for cleanup and new features. I owned the product direction, the PRD, the roadmap, the branding and the production setup.
Calculated, never typed:
Totals, balances and stock are always worked out by the app. Nobody can type a number that disagrees with the records behind it.
Crate and bottle prices stay separate:
Each product has its own crate price and bottle price, because they carry different margins. The app never guesses one from the other.
Three roles, one approval flow:
The Admin runs setup and analytics. The Store Manager runs the daily ledger. Store Staff create drafts and submit them. Drafts only become permanent once the Manager or Admin approves them, and a rejection comes with a reason so the entry can be fixed and resubmitted. The roles are enforced on the server, not just hidden in the interface.
One entry, no double work:
A credit sale creates both the sale and the customer's credit record in one step.
Reliability before features:
Database migrations run by hand, so a routine deploy can never quietly change the data. Offline mode, multiple branches and an AI copilot all wait until the basics have months of real data behind them.