kkbOpen KKB
kkb is one month old! โ€” a calendar of the month with milestone stickers

happy monthsary ๐ŸŽ‰

First month of KKB with family and friends!

A month ago I wrote about shipping my first product before anyone but my barkada had touched it. This is what happened when they โ€” and their barkadas โ€” actually used it: the numbers, the bugs they found, and everything they taught me.

Rafael Dytocยท August 18, 2026 ยท 11 min read

Where we left off

I published the story of KKB two days after the app went live, which means I wrote it before the app had really been used. One month later, the receipts are in โ€” literally. Here's what family and friends did to KKB in thirty-one days:

The tiny steps that got KKB here

Every release this month started with a friend hitting a wall in the app. So here's the month the way it actually happened.

An expense in dollars with its peso conversion and the day's rate

Multi-currency support

Claiming @bestie on the onboarding ticket, paper swatches below

Claim your @handle

A scanned receipt's result: Office Warehouse, โ‚ฑ2,300, four items

Scan the receipt

The payment method chooser: GCash, Maya, BPI, GoTyme and more with logos

Your banks, by name

A sponty fully collected: everyone paid you back

A sponty, fully collected

Currenciesv0.5

July 24

A friend took KKB abroad, and suddenly pesos weren't enough. Expenses now convert at the day's rate and show both numbers, so the group's math stays in one currency even when the spending isn't. (Patch releases followed within the week โ€” the app's first taste of โ€œshipped means people found things.โ€)

๐ŸœIchiran Ramenthree bowls, extra chashuยฅ3,570โ‰ˆ โ‚ฑ1,392.30
๐ŸŽฌTOHO Cinemasthree ticketsยฅ6,000โ‰ˆ โ‚ฑ2,340.00
๐ŸŽณRound1 bowlingtwo games each, shoes inยฅ4,500โ‰ˆ โ‚ฑ1,755.00
You owe Mikiโ‚ฑ1,829.10

Ballpark menus, honest conversion โ€” the app fetches the day's real rate.

Notificationsv0.6

July 27

Built for the gap between โ€œI paid you naโ€ and the other person actually noticing. Now KKB taps you on the shoulder the moment , when , and when with your name on it.

It throws confetti when , says hi when or , and keeps sponty life moving when you get , when , or when you're .

Go ahead โ€” tap the pills, then look up. โ˜๏ธ

Usernamesv0.7

August 5

Tagging friends needed identity, and identity deserved a moment โ€” claiming your @handle mints a little admit-one ticket with your name signed across it. Completely unnecessary. Absolutely necessary.

kkbtayo.comyour kkb handle

KKB-U-ยทยทยทยท

@yourname

Claimed at August 26, 2026

KKB-U-ยทยทยทยท

Just for fun โ€” nothing here claims anything. The real one waits in the app. ๐ŸŽŸ๏ธ

Scan the receipt ๐Ÿ“ธv0.8

August 6

The feature my spreadsheet never had: snap the bill and the line items type themselves, landing straight in the itemized split. The plan said save it for today, the monthsary. The feature was ready twelve days early, and I've learned that a finished feature sitting in a drawer helps nobody โ€” so it shipped early. I couldn't wait, again. Story of this app's life.

โœ‹ drag the receipts around

One of the nine benchmark receiptsOne of the nine benchmark receiptsOne of the nine benchmark receiptsOne of the nine benchmark receiptsOne of the nine benchmark receiptsOne of the nine benchmark receiptsOne of the nine benchmark receipts
Some of the receipts every engine was graded on.
An iced cafe latte and a Thai tea latte on a wooden table at Fran'sMe, mouth wide open, about to devour the salmon avocado toast at Fran'sEnglish muffin with scrambled eggs and crispy bacon, sweet potato fries behind
Back in February, my first meal in Bangkok was from Fran's โ€” and it was such a good breakfast spot!

Building it was a bake-off: a pile of real receipts, every total and line item hand-checked, four machines competing on identical instructions. The scorecard:

ReceiptClaude visionOCR + my parserOCR โ†’ text ClaudeGemini Flash-Lite
Grocery run ยท โ‚ฑ3,170.85โœ“โœ—โœ“โœ“
Bill-folder dinner ยท โ‚ฑ10,947.32โœ“โœ—โœ“โœ“
Bangkok cafรฉ ยท เธฟ1,270.50โœ“โœ—โœ“โœ“
Tori-Tori night ยท โ‚ฑ4,903.88โœ“โœ—โœ“โœ“
Beef noodle stall ยท $475.00โœ“โœ—โœ“โœ“
cost per scanร—10ร—0.75ร—8ร—1
Same prompt, same schema, same receipts.

Gemini matched the best reading at a tenth of the price โ€” so that's what KKB scans with, plus telemetry that keeps it honest. A field the user corrects after scanning counts as a miss, forever.

Because here's the thing about receipts: they aren't a format. Every POS invents its own โ€” discounts as negative lines or as percentage rows, service charge before or after VAT, the โ€œ+scrambled eggโ€ that belongs to the English muffin above it and shouldn't be a line of its own, senior and PWD rows that rewrite the entire total after the fact. Reading the numbers is the easy part. The scan's real job is judgment: what's an item, what's an adjustment, and what's noise.

Which is why the feature is built to learn from its mistakes โ€” not by magic, but by bookkeeping. Every correction a friend makes after a scan is saved as the truth the scan missed, field by field: a fixed total, a relabeled discount, a deleted modifier line. Those edits are tomorrow's exam โ€” a growing, real-world test set that regrades every prompt tweak and both engines against how people actually had to fix things. The nine receipts above were the first test set. My friends have been writing the rest of it ever since, one correction at a time.

And one story from this release's pre-launch testing, because it set a rule I've used weekly since. The new QR sorter reads which bank a code belongs to โ€” and in testing, it labeled a MariBank account as Landbank, because one of the bank codes was a guess. Wrong-guessing a bank in a payments app is how someone sends money into the void. The registry rule ever since: a blank prompts; a wrong guess traps. If KKB isn't sure, it leaves the field empty and asks โ€” and every โ€œfactโ€ it does claim gets re-verified on a monthly sweep, because banks rebrand quietly.

How I decide

A month of real users changed how changes ship more than what got built.

  • Everything is dev-first.New work lives on my machine, then a staging copy on my phone, and only reaches everyone after the release notes are written and read out loud. The notes are a review gate, not an afterthought โ€” if I can't explain a change simply, it isn't done.
  • Release notes are written from your side of the screen. They describe what changed since the version you were using โ€” never the bugs I created and fixed before you ever saw them, never the reasons behind internal decisions you were rightly never asked to care about.
  • The field report is the unit of work. v0.8.2 exists because one friend's BDO QR failed, another friend's Android couldn't find the save button, and a third got stuck in Messenger. None of that was on a roadmap. All of it mattered more than what was.
  • The design-rules ledger keeps growing. Colored text only sits on its matching tint. Dismiss buttons live at the top-right. One pitch drawer per app open โ€” if the passkey drawer and the notifications drawer both want your attention, they take turns. Small rules, written down, so the app stays one thing as it grows.

What the numbers say about us

In the first story I admitted that sponty exists because of my own spreadsheet: almost every split I'd ever logged was a one-off dinner, not a trip. One month of everyone else using the app, and the verdict is in:

๐Ÿ๏ธ Groupsโšก Spontiesstarted1835bills logged7235money throughโ‚ฑ254,451โ‚ฑ47,337average billโ‚ฑ3,584โ‚ฑ1,352biggest single billโ‚ฑ25,820.76โ‚ฑ5,479.73payments confirmed4662heads per split4.43.2
One month of who-used-what, frozen at the monthsary.

Sponties happen twice as often โ€” quick bills, smaller tables, settled and forgotten. But groups carry five times the money, because that's where the trips live. Which is exactly the shape I hoped for: groups are for the beach weekend; sponty is for Tuesday.

And then sponty surprised me. This month I also started a small matcha home cafรฉ โ€” and without planning to, KKB became its payment counter. Every batch of orders becomes a sponty: each customer's drinks logged under their name, one collect link sent out, and they see exactly what they ordered, pay through my QRs, and mark themselves paid โ€” no app, no account, no โ€œGCash ko na lang, send mo na lang proof.โ€ I built sponty for splitting dinner with friends. It turns out a tool for collecting money kindly doesn't care whether the people paying you are your barkada or your customers.

An iced drink topped with cookie crumble, moody lightingA chocolate drink crowned with mochi dango on a skewer, sitting on a scaleA cup piled with cornflake topping, shot from above on a wooden board
The unexpected KKB power user: my matcha side quest.

The other number I keep coming back to: 35 guests against 47 accounts. Nearly half the people money moved around this month never created an account โ€” and never needed to. They got logged by name, saw their share through a link, paid, and went on with their day.

The people who never signed up are the strongest proof the app works.

Next, and thank you

The next big thing is getting KKB onto the app stores โ€” a real icon you install like any other app, no share-sheet ritual required. That's the road to v1.0. Until then, the job is simpler and maybe harder: everything you already use should just keep working.

And thank you โ€” to the family and friends who used this at real tables, with real money, and told me every time something felt off. You found things no test could, usually mid-bite. The receipts still come home with me. They just live somewhere better now. ๐Ÿฉต

๐Ÿœโ˜•๐Ÿป๐Ÿš—cooking next ๐Ÿณ๐Ÿ’ธ๐Ÿงพmulti-currency supportโœˆ๏ธ๐ŸŽ‚scan items from receipt๐Ÿต๐Ÿ›๏ธ๐Ÿ–๏ธ๐Ÿ โ›ฐ๏ธ๐Ÿฅ“๐ŸŽฎ๐Ÿ›’โ„๏ธ๐Ÿง‹๐ŸŽพ๐Ÿ”ฅ๐Ÿฒ๐Ÿ—ผ๐Ÿฟ๐ŸŒŠ๐ŸŽ„๐Ÿฅ˜๐Ÿข๐ŸฅŸ๐ŸŽ“๐ŸŽค๐Ÿฅพ๐ŸŽถ๐Ÿงบ๐Ÿฆ๐Ÿฅ‚๐Ÿคฟ๐Ÿ„๐Ÿ’๐ŸŽ…๐Ÿ€โ›บ๐Ÿฃ๐Ÿ•๐ŸŒฎ๐Ÿ‹๏ธ๐Ÿš

The memories stay in the chat.
The utang doesn't.

designed and developed with ๐Ÿฉต by @rafaeldytoc

kkb ยฉ 2026 ยท terms ยท privacy ยท open the app