The wallet vote closed. 8% picked counts up front, 92% picked cards.
I promised the reasoning either way, so here it is.
The old home screen showed your credentials directly. You saw the card, you tapped it, done, plus a log of what just happened. A few people made that case in the comments, and they are right that taking it away costs a step.
The reason I took it anyway: the card row only works while the wallet is small. At twenty or thirty documents a horizontal swipe stops being access and turns into a search problem, and the card you need is never the one on screen. So the home screen stopped trying to be the wallet. It became a summary, with the real list one tap down where it can be sorted and filtered, and Scan QR moved to the top because scanning a code is what people open this app to do.
The outside signal we had was weak, and I want to be straight about that. The product sits in a regulated space under NDA, so no open user testing. We ran internal sessions and demoed both versions at industry events, where 88% of partners and investors picked the counts version and kept using the word premium. That tells me it reads as credible to the buying side. It does not tell me how it feels on the tenth open of the month. Different questions.
What would change my mind: if people turn out to open a specific credential often, pinning one or two to the home screen is the cheap fix. I would rather add that later than start from a layout that breaks at scale.
Normal work disappears. Genuine judgment surfaces.
I built Northline Flow for @Lovable’s #lovablechallenge — a fictional owner-operated home-services business in Surrey, BC.
I didn’t want to build another prettier scheduler. The problem I wanted to attack was the handling around the booking.
Routine requests can continue toward booking. Genuine ambiguity reaches the owner as one framed decision. Unsafe or wrong-fit requests stop instead of being forced into the normal booking path.
I also built a deterministic test harness and a playable Morning Shift proof mode: three fictional requests enter the same routing rules, but only one requires a human decision.
The part I’m most excited about is that the challenge itself became reusable. We captured the process from brief → working flow → adversarial testing → cinematic donor → bounded visual integration → playable proof → final freeze.