Build notes
Receipts, not adjectives
Every WhatsApp platform calls itself reliable, transparent and fairly priced. Adjectives are free. Nobody has ever chosen software because a page called itself honest.
So these are notes on what actually happened while building Klaros. The defect that would have quietly given a paying customer a third of what she bought. The opt-out our own sales code almost answered with a price list. The decisions where the flattering option and the true one were not the same, and what we picked.
There is one idea underneath all of them. Klaros exists to close the distance between a business and the people it serves: the gap between what a customer believes you remember and what your software actually knows. That gap is never announced. It is felt, and then it is acted on quietly, by someone who simply comes back less often.
The same gap can open between a business and its vendor. You believed the plan included three lines. The wallet drained faster than the page implied. Leaving turned out to mean a support ticket. Nobody argues about these things. They just remember them. So we hold ourselves to the standard we sell, and when we fall short of it we would rather write it down than hope you do not notice.
-
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. -
31 July 2026 · engineering
Before we asked anyone to pay us
A jeweller pays for three WhatsApp lines and silently receives one. She does not complain. She decides the software is small, and six weeks later she does not renew. That was a real defect in our code, and four others sat beside it, unnoticed because no money had ever moved through the system that held them. What we found in the room where the money moves, the two forks where the flattering answer lost, and the tool that now checks what we charge against what we publish.
-
In progress
The opt-out that almost got answered with a sales pitch
We built our own product's checkout into WhatsApp, then realised "STOP sending me pricing" matched our price intent and would have been answered with a price list. On applying your own consent rules to yourself, and why the sales path is where discipline usually goes to die.
-
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.
Ask 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-hosted 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.
