Build notes › topic
Commerce & payments
Selling inside a chat thread: catalogues and product data that have to stay true, payment requests, and the guards that decide when software is allowed to ask somebody for money.
Covered here: Razorpay payment link WhatsApp · self-deployed WhatsApp CRM · 24 hour service window · abandoned cart WhatsApp · binary excel xlsx sheetjs catalog import · BYO payment gateway · catalog_management scope · catalogue sync · Cloudflare D1 bound parameter limit chunkIds 90 · conversational_crm_architecture
-
22 September 2026 · Thought leadership & customer context
WhatsApp Is Not a Marketing Channel. It Is a Living Room.
The businesses that treat WhatsApp like a billboard optimize for messages. The businesses that treat it like a living room optimize for memory, context and what happens next. Explains the transition from Net to Spear to Living Room, the true cost of forgetting, and how Klaros grounds decisions, authorized execution, and verified outcomes on top of conversation memory.
-
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.
-
28 August 2026 · commerce
Building a WhatsApp catalogue that tells the truth
Meta's catalogue batch endpoint returns HTTP 200 even when every item was rejected. The script we wrote specifically to verify a token could write reported success against a catalogue that was empty and had always been empty. Eleven bugs from three weeks of building catalogue and product infrastructure, almost all of the same shape: something reporting success for work it had not done. Includes a paywall that only worked while the feature was switched off, a complete edit endpoint with no button behind 5,187 passing tests, and the two calls we got wrong ourselves.
-
7 August 2026 · engineering
The WhatsApp business cards that started asking for money
Two features wanted the same short URL prefix, and the newer one was mounted first. For five days, scanning any of our free digital business cards returned "This payment link is not valid." Why neither route could move (one URL is fixed inside an approved Meta template, the other is printed on paper), the three-line fallthrough that fixed it, the passing test that was quietly asserting the bug, and the telemetry blind spot that means we can never count who saw it.
-
4 August 2026 · engineering
Five guards on automated WhatsApp payment requests
A sequence, a rule, a completed Flow or a customer typing "how do I pay" can all produce a real payment request in the thread. Building that took a day. The rest of the work was the five things it must refuse to do: a consent check that fails closed, a duplicate-ask guard that once answered "already requested" forever about someone never asked, an oversell guard found willing to sell one ring to fifty people, a closed 24-hour window, and a ₹500 advance that used to mark a ₹2,500 order paid and shipped.
-
31 July 2026 · engineering
WhatsApp payments with Razorpay: what the docs leave out
Collecting payment inside a chat in India, written while shipping it. The
order_detailspayload that passes validation, why a bare UPI VPA is rejected, the INR-only rule and how it fails silently, payment links versus subscriptions in a thread, whether your notes reach the webhook, and the signature check that rejects every real event while returning a clean boolean. -
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.