Build notes › topic
Performance
Where the time actually goes in a WhatsApp inbox, measured with real traffic rather than guessed, including the investigations where the obvious suspect turned out to be innocent.
Covered here: WhatsApp inbox · binary excel xlsx sheetjs catalog import · cache busting · Cache-Control immutable · change detection hash · Cloudflare D1 bound parameter limit chunkIds 90 · Cloudflare GraphQL Analytics · Cloudflare Workers polling · Cloudflare Workers Static Assets · Content Addressable Storage media pipeline
-
23 September 2026 · Performance & media engineering
The WhatsApp media pipeline that ran out of memory: Native HKDF Decryption, CAS Storage, and RFC 7233 Streaming
Scraper bridges and naive BSP architectures serialize WhatsApp media into Base64 JSON strings over WebSocket IPC, creating 4x memory inflation and tab freezes. This note details our native HKDF-SHA256 key derivation engine, AES-256-CBC deciphering from mmg.whatsapp.net, Content-Addressable Storage (CAS), and RFC 7233 byte-range HTTP 206 partial streaming.
-
7 September 2026 · commerce & platform
Building an Enterprise Edge-Native PIM Master for Precious Commodity Commerce
Generic PIM systems assume static product pricing and flat catalog models, failing when applied to precious metal commodities, gold/silver purity formulas, and heavy multi-channel catalog syndication. This engineering note details how we built an enterprise-grade, edge-native PIM Master on Cloudflare Workers, D1, and R2. We cover our dynamic live spot-rate pricing engine with a 36-hour stale-rate circuit breaker, parent-child matrix schema migration, 4-pillar fault-tolerant binary sheet and remote image ingestion pipeline, rotatable Google Merchant Center XML feed syndication, and zero-dependency 60 FPS DOM virtualized catalog table.
-
17 August 2026 · performance
The WhatsApp inbox that re-downloaded itself every visit
We were sure the WhatsApp inbox was slow because of the database. Two missing indices and a message-processing path re-fetching the same settings row up to five times, all real, all fixed, none of it the answer: a synthetic request touching no database at all cost the same 502ms as the real conversation list. Real Cloudflare RUM data put the dashboard's median load at 5.0 seconds. The actual cause: over 40 dashboard JavaScript files, every one served
Cache-Control: no-cache, including files already carrying a cache-busting hash whose entire purpose was the caching that wasn't happening. -
10 August 2026 · performance
The WhatsApp inbox that rebuilt itself every five seconds
When a WhatsApp message arrives, Meta's webhook delivers it to the server, but the server has no way to push it to the agent's browser. So the inbox polls every five seconds. Until this fix, every poll destroyed and recreated 50 conversation-row nodes, even when no new message had arrived. A four-field hash now compares the list shape before rendering; if it matches, the function skips the rebuild. Full DOM rebuilds dropped from roughly 5,760 per 8-hour shift to a few dozen. Because Klaros is self-deployed, operators can query their own D1 and measure exactly how much redundant work the server does on their behalf.
-
10 August 2026 · performance
The WhatsApp inbox skeleton that made things worse
Shimmer skeleton loaders replaced stale content during WhatsApp conversation filter switches. But
loadConversations()was a zero-argument function called from 30 sites, including the background poll that checks for new webhook deliveries. The skeleton fired on every poll, flashing every 5 seconds, but only on inboxes smaller than the page size: exactly the state a shop starts in after completing Meta's Embedded Signup. The fix was one parameter: 9 user-initiated call sites pass{ skeleton: true }; the ~20 incremental updates (resolving, assigning, sending templates) and the poll do not. -
In progress
The half of a sale that nobody demos
Every platform shows you the payment landing. Almost none show you the twenty minutes afterwards: who gets told, who packs it, what the buyer hears while they wait, and what happens when it ships four days later and the messaging window has closed.
-
In progress
Where the ask ends and the shop begins
A payment request is messaging machinery. A product library is a commerce application, and the part most likely to be replaced by a real one. On finding that seam in our own code, and making it a documented extension point instead of a function that happened to sit in the middle of a file.
-
In progress
What a feature looks like when nothing consumes it
Contact limits computed on every request and enforced nowhere. A tier ladder that is marketing copy at runtime. On the difference between building a capability and shipping one, found in our own codebase.
Get the next one on WhatsApp
Message the line and type NOTES. The latest one comes straight back, in the same thread, from the number that sends everything else. Reply STOP whenever you like and it stops.
Send NOTES on WhatsAppAsk our WhatsApp number what it costs
The most honest demo we have is the purchase itself. Message the line and type pricing: you will get our live catalog as a WhatsApp list, real remaining slots, and a payment link on whatever you tap. Buy the self-deployed licence and your signed key arrives in the same thread, for infrastructure we cannot reach. You are experiencing the product before you own it.
+91 97893 77634 · you message first, so nothing reaches you without your say-so.