Lead Engineer / Mitra Studio

Daniel Koh

const daniel = {
  ships: "sub-second sites",
  builds: "by hand",
  frameworks: null
};

SG / remote since 2022 ~40 cafes shipped
Daniel Koh, Lead Engineer at Mitra
build/01 — daniel.koh online
01 / about

Hand-codes every Mitra site.

// origin: self-taught, Singapore

Started writing JavaScript in school — the kind that ran in a single <script> tag and made a button blink. Did a stint at a local startup, watched a build pipeline take 47 seconds to compile a hover state, and decided the industry had lost the plot.

// joined mitra: 2022

Owns the infrastructure, the performance budget, and the deploy pipeline. Every cafe site in the Mitra portfolio — DOM, CSS, JS, edge config — written by hand. No React. No Tailwind. No build chain. Just the platform, the way it was meant to work.

02 / stack

What every Mitra site runs on.

layerchoicewhy
htmlHTML no frameworkbrowsers parse it natively. zero hydration cost, no waterfall, no JS before first paint.
cssvanilla CSS no tailwindgrid + container queries + custom props + nesting. don't need a 3MB utility compiler to center a div.
jsvanilla JS no reacta cafe site is not an app. ship 4KB of vanilla, not 140KB of virtual DOM.
hostCloudflare Pagesstatic deploy, atomic releases, instant rollback. free tier handles every cafe ever shipped.
cafe.mitra.build / index.html html
<!-- entire above-the-fold of a Mitra cafe site -->
<!doctype html>
<html lang="en"><head>
  <meta charset="utf-8">
  <title>Common Man Coffee Roasters</title>
  <link rel="preload" href="/hero.avif" as="image">
  <style>/* 4.2KB inline, critical only */</style>
</head><body>
  <script defer src="/m.js"></script> <!-- 3.8KB, no deps -->
</body></html>
03 / perf

Numbers we ship to every release.

metric target actual note
FCP < 1.8s < 0.4s first paint before the customer registers the tap. they see the cafe, not a blank screen.
LCP < 2.5s < 0.8s hero painted before they decide whether to wait. 3x better than google's "good" threshold.
CLS < 0.1 < 0.01 nothing jumps. booking taps land on the booking, not on an ad.
TBT < 200ms < 50ms main thread free. phone stays responsive while the page loads. no frozen scroll.
04 / notes

Field notes on web perf for cafes.

N.001

Why Squarespace cafes lose customers on 4G.

a typical squarespace template ships 2.4MB of JS before a single word is readable. on suburban 4G that's 7s of staring at a logo. tested 12 cafe templates — eleven failed core web vitals.

N.002

The 30-second rule: how slow sites kill bookings.

customers don't wait 30 seconds. they wait 3. then switch tabs, get distracted, and book the cafe two doors down. analytics confirm — speed is the booking funnel.

N.003

Inventory cost: what every npm install really buys.

frameworks aren't free. each dep is inventory you have to maintain, audit, and ship to every customer's phone. for a 4-page cafe site, the framework tax is 99% of the bundle.

contact

Want a fast site?

hello@mitra.build

subject line: For Daniel — <your cafe>