AI first, quality first
Four applications built with AI as a pair from day one. Not to go faster, though it did: to hold the bar on interface, patterns and code that is safe to maintain. AI as the quality gate, not only the accelerator.
- Role
- co-founder. Product, design and full-stack development.
- Partner
- Raphael Capeto, on platform architecture.
- Product
- HUAH, a platform that turns time stuck in traffic into points you can redeem with partners. Four applications: the mobile app, the API, the backoffice and the partner portal.
- Period
- three months from concept to an app ready for the store: good UI, patterns, secure code that is easy to maintain.
- Status
- ready for the stores, starting with São Paulo. No traction numbers yet.
Three jumps
The idea, in a quick prototype. One of the partners brought the concept as a Replit prototype, enough for it to stop being a conversation and become something clickable.
The interface, without code. I built the second prototype in Claude Design, back when the tool was still in closed testing. That was on purpose, because I wanted to settle the UI and a few experience decisions at the speed of someone thinking only about interface. The prototype was thrown away, and the decisions stayed.
The product, straight into code. The prototype moved to Claude Code and became the real repository, one monorepo with four applications. From there on, evolving the experience and evolving the product became the same gesture.
Two decisions
The app never asks for location before login. The permission provider only lets the request happen once the person is authenticated, so the first thing a newcomer sees is not a system prompt. On the Home, the GPS banner is where the person asks to start earning, and it stays off until they do.
The second decision lives in Directions. If GPS or Motion is off when someone asks the way to a partner, the sheet says so before they leave. This trip will not earn points, but we still mark your destination. That is expectation management inside the flow, not on a FAQ page. During the trip the earn gate zeroes the gain if a sensor is missing, so warning and rule agree.
HOME · GPS OFF, ASKED ONLY HERE
DIRECTIONS · THE WARNING BEFORE LEAVINGFrom a trip to a redemption
The experience does not end in the app. The points a trip earns are recomputed on the server, never trusted from the phone, and anti-fraud sends suspicious sessions to a review queue where an admin confirms or reverses them in the backoffice. A coupon is redeemed with a six-character code the shop validates in the partner portal, and no points move at validation. Deciding that contract counts as design work.
Who did what
- Antonio
- 15 ADRs alone
- The foundations: the monorepo, the backend, Postgres, Firebase Auth, the points ledger. Most of my commits are in the mobile app, where the experience decisions live.
- Raphael
- 15 ADRs alone
- The feature slices: driver identity, redemption, licence verification, the counter validator mode, hosting. He is the largest committer in every one of the four applications.
- Together
- 11 ADRs
- The decisions signed by both, out of 41 architecture decision records in the repository.
The discipline came along from day one. Schema-validated design tokens, the 41 decision records, CI, periodic drift audits between documentation and code, and development governed by missions with gates. Not as a designer who comments on the front end, but as a partner who builds, with AI as a pair.
Limits and learning
No traction numbers, because the product is not in the stores yet. What was validated so far was validated between the partners, on prototypes and on the app itself. There is no user test to report, and I would rather say that than dress it up.
The driving state could not be captured: in the simulator the Motion permission never resolves, and there is no UI override. And the redemption code is still text, not a QR code. Both are on the list.