Dev Diary #3: The 5-Month Black Hole & Accidental Restaurant Tech

If you go back to the end of Dev Diary #2 written in late May, I sounded like a developer with a very relaxed weekend ahead of him.

My static site was flying on Cloudflare Pages, my Oura Ring was happily streaming biometrics to my homepage, and I arrogantly wrapped up by promising that my next weekend project would be an AI chatbot trained to roast my terrible sleeping habits.

Then, life happened. Or rather, F&B happened.

I blinked, and five months vanished into a black hole. No commits to my portfolio, zero dev diary entries, and my Oura recovery scores tanked hard without an AI needed to tell me why.

The Idea That Wouldn't Go Away

To be completely honest, this wasn't an impulse decision that came out of nowhere in late May.

My friend Thuan—whom I had teamed up with on previous projects—actually first pitched the idea to me months earlier, right around Lunar New Year. But back in February, my life was in pure chaos: I was preparing to change jobs, packing boxes to move into a new apartment, drowning in Japanese tax paperwork, and juggling other side-project discussions with different groups of friends. My brain was running at 100% capacity; I simply didn't have the mental bandwidth to take on anything new.

By mid-May, the dust had finally settled. I had settled into my new role, unpacked the last boxes in my new flat, cleared out the mountain of bureaucratic paperwork, and finally started to chill out. That sudden pocket of free time was the exact reason I started writing dev diaries and tinkering with my portfolio in the first place.

And right on cue, Thuan brought the idea up again.

Because we had already built things together before, there was zero friction in our communication. And this time, with a clear head, I actually sat down and listened.

In Taiwan, food culture is unmatched: bustling breakfast joints, street stalls, and bubble tea shops everywhere. But behind the counter, merchants were caught in a brutal squeeze:

  • Surrendering 30% to 35% of their hard-earned revenue to third-party delivery platforms just to accept digital orders.
  • Watching hungry customers abandon queues because nobody wants to download a 200MB native app or register an account just to order a $2 cup of oolong tea.
  • Cashiers juggling phone calls, scribbled paper dockets, and walk-in modifications during lunch rush, inevitably leading to misheard sugar/ice choices and wasted food.

Having worked together before, we already had great rhythm. After listening to his pitch, I didn't hesitate and jumped directly into the project.

Things happened very fast from there.

June to August: Escaping the Sandbox into the Real World

By mid-June, my pet AI chatbot project was completely dead in the water. Thuan and I were neck-deep in building what would eventually become BlabFood, with myself joining as Technical Co-founder.

Building hobby features on your personal portfolio is safe. If your static build script breaks at 2:00 AM, nobody starves. Building an ordering system for a busy kitchen during lunch rush, however, is an entirely different level of pressure:

1. The 3-Second Rule at the Edge

When a customer scans a tabletop QR code at a counter, they won't wait. If the menu takes 4 seconds to spin up on a cold serverless container, they tap their foot, get annoyed, and order in person.

We had to obsess over sub-10ms bootstrap speeds. That meant moving everything to the edge: caching full tenant catalogs in Cloudflare KV, querying Cloudflare D1 (distributed SQLite) for transactions, and serving everything directly from local CDN PoPs without cold starts.

2. The Horror of Thermal Printers (ESC/POS)

You haven't experienced true backend despair until you've debugged raw ESC/POS printer byte streams at 11:30 PM, watching a kitchen printer spit out six meters of blank receipt paper because of an unexpected carriage return or a Chinese font-encoding mismatch in a customer's modifier notes. Getting hardware to reliably print orders the second they hit the server was a trial by fire.

3. Designing for Greasy Finger Taps

We threw away our first POS dashboard design after spending an afternoon watching kitchen staff work in real life. Beautiful 12px minimalist typography and delicate hover states look great in Figma; they are completely useless when a chef with wet, flour-covered hands needs to slap a tablet screen to mark an order as "Ready."

We rebuilt the entire merchant interface (orders.html) around massive 48px touch targets, high-contrast status colors, and zero visual clutter.

October: Coming Up for Air

Fast-forward five months to today. What started as an impromptu sprint has turned into a full-fledged ordering ecosystem:

  • Customers order effortlessly inside LINE LIFF without downloading an app or registering an account.
  • Store staff manage orders on a rugged, tablet-first POS that syncs kitchen tickets and fires auto-prints in real time.
  • Our backend runs entirely on Cloudflare serverless edge infrastructure (Workers + D1 SQLite + KV + Workflows).

More importantly, this isn't just a prototype running on localhost. At the moment, we have over 10 active merchant stores running live in production, with a steady pipeline of potential customers currently in discussions and testing the waters with us. Seeing real restaurants rely on our code during their busiest lunch rushes is both terrifying and immensely rewarding.

We even finally got around to putting up a proper official landing page:

👉 https://blabfood.app

It explains the problem we're tackling for Taiwan's F&B merchants and showcases how the platform works. If you're curious about what kept me away from this blog all summer, go take a look!

The Pledge

Opening my terminal this morning and seeing git status on this portfolio repository untouched since May was a humbling wake-up call. I'm officially done ghosting this blog.

Now that the initial foundational fires at BlabFood are mostly put out and our system is stably processing orders in production, I actually have an endless backlog of real-world war stories to tell.

From now on, I'll be writing here regularly—sharing the messy, unglamorous reality of edge databases, hardware quirks, multi-tenant architectures, and building software that real businesses rely on every single day.

More dev diaries coming soon!