Popi Bakery
A custom budgeting tool for an Argentinian home bakery entrepreneur that automates pricing calculations and streamlines her quotation workflow.
- Role
- Full-stack developer
- Client
- Home bakery entrepreneur · Argentina
- Status
- Shipped
Outcomes
Quote workflow
Automated
Pricing calculations moved from ad-hoc spreadsheets into a repeatable product flow.
Consistency
Rule-based
Margins and cost assumptions are applied the same way across quotes instead of rebuilt each time.
Operator fit
Purpose-built
The UI follows her real quoting habits rather than forcing a generic admin template.
The problem
The entrepreneur built quotes by hand: ingredient costs, labor assumptions, margins, and customer-specific adjustments lived in spreadsheets and memory.
That made pricing slow, hard to reproduce, and easy to get wrong — especially when costs shifted or a quote for cakes, cookies, or custom orders needed to be revised quickly.
Approach
I designed and built a focused web app around the real quotation workflow instead of a generic spreadsheet clone.
The product captures product recipes and cost inputs, applies pricing rules consistently, and turns those inputs into clear quote outputs she can review and share with less manual recalculation.
Key decisions
Domain-first pricing model
Modeled recipes, ingredient costs, and margin rules as first-class data so quote results stayed explainable and editable when inputs changed.
Simple full-stack shape
Used Vue.js for a fast operator UI and Express.js for a lightweight API/persistence layer — enough structure for a real workflow without overbuilding the stack.
Workflow over feature sprawl
Prioritized the quote loop (inputs → calculation → review → reuse) instead of packing in inventory, POS, or CRM features the business did not need yet.
Stack
Vue.js
Operator-facing SPA
Express.js
API and workflow backend
Custom pricing model
Recipe costs, margins, quote generation
Want something similar?
I build focused product tools with clear workflows and production-ready frontend craft.