Brutal Loyalty Card
A digital stamp card for Brutal, a grill in Lima that was tired of losing paper ones.
- Year
- 2026
- Role
- Solo · End to end
- Stack
- PHP · Laravel · Livewire · Filament · PostgreSQL
- Status
- In production

Brutal is a single-location grill with a loyalty program that lived on paper. Cards got lost or forgotten, and the owners had no idea how many were out there or how many rewards they’d end up owing. They wanted something digital that felt as simple as the card, and that couldn’t be gamed.
The app is a web page, nothing to download. Customers sign up with their phone number and a PIN and see a card with ten slots. After a purchase, staff show a QR code from their panel that’s only valid for a few minutes. The customer scans it and the stamp lands on the card. At ten they get a reward and the card resets. Redeeming works the same way in reverse: the customer shows a code and staff scan it.
I did all of it, from the spec to the deploy. Most of the effort went into the boring parts that make it trustworthy: making sure two people can’t claim the same stamp, that codes expire, and that there’s a backup if something goes wrong. It’s live at the restaurant.
- Design
- End to end
- Engineering
- FullStack
- Infrastructure
- Docker (Sail) · GitHub Actions · S3 backups · Laravel Nightwatch
- Link
- Coming soon
Define
Wrote down exactly how a stamp gets earned and redeemed so there would be no way to cheat, and kept everything else out of the first version.
Design & build
A mobile-first customer app in Spanish and a staff panel for issuing stamps and confirming rewards, both on one Laravel codebase.
Ship & run
Tests on every push, nightly backups, monitoring, and a load test so I knew it would hold up on a busy night.