A copywriting agent that learns from clicks

There’s a lot of “AI copywriting” out there and almost all of it does the same thing: you give it a prompt, it gives you five variations, you pick one, the end. It’s a better autocomplete. It writes once and forgets everything the moment the message goes out, including, crucially, whether anyone clicked. The agent we built at Comify is the opposite of forgetful. It researches a brand before it writes a word, generates message templates with actual intent behind the wording, ships them, watches what real people do, and then changes how it writes based on what worked. It’s a closed loop. And closing the loop is where it stops being a writing tool and starts being a system, with all the upside and all the ways that can go wrong. ...

Feb 11, 2026 · 6 min · Ashish Saini

Fifty million messages a day on fifty Lambda functions

When people hear that Comify’s backend is fifty-some AWS Lambda functions moving more than fifty million messages a day, the usual reaction is “isn’t serverless expensive at that scale?” It’s the right question with the wrong assumption baked in. Serverless got chosen because of the scale and the economics, not in spite of them. But you only get the good version if you design for it deliberately. The naive version is genuinely a trap. ...

Sep 30, 2025 · 6 min · Ashish Saini

From 73% to 100%: a GenAI photoshoot pipeline that cleared the catalogue

Every e-commerce catalogue has a dirty secret, and it’s a number nobody likes to say out loud: the percentage of products that have a proper photo of a real person wearing them. Ours was 73%. Which means more than a quarter of what we sold, thousands of frames, was represented online by a flat shot of the product on a white background, while its neighbour had a crisp image of a model looking great in it. The model shots convert better. Everyone knows this. The problem is that closing the gap means a physical photoshoot, and a physical photoshoot does not scale. We took catalogue coverage from 73% to 100% in about a month. Not by shooting faster. By not shooting at all for the long tail. ...

Nov 26, 2024 · 5 min · Ashish Saini

Erasing glasses in real time: 12 FPS on an iPhone 12

Virtual try-on has a problem nobody puts in the marketing video: it works beautifully for people who don’t already wear glasses. For everyone else (which, at an eyewear company, is most of your customers), the experience is broken. You point the camera at your face, the app renders a gorgeous new frame, and it sits on top of the glasses you’re already wearing. Two pairs of glasses. It looks ridiculous, and worse, it doesn’t answer the only question the customer has: do these look good on me? So we built the thing that sounds impossible when you say it out loud: remove the glasses the user is wearing, live, from the camera feed, before rendering the new ones. On the phone. Fast enough that it feels like video, not a slideshow. ...

Aug 7, 2024 · 6 min · Ashish Saini

Ten million calls a day with a team of three

There’s a version of a scaling story that’s all dashboards and Kubernetes. This isn’t that one. This is about a phone-number-verification product called CODAC that, at its peak, placed more than ten million calls a day, made around $12M a year, and was run by three people. We did it on a cluster of telephony servers that mostly looked like pets, not cattle, and the hardest problem we solved had nothing to do with the volume. ...

Mar 18, 2024 · 6 min · Ashish Saini