Building products for 9+ years
I've spent more than nine years designing and building products. Today AI writes much of the code; working out what your business needs, and whether the result is right, is still on me.
Operantra builds the operating system of one specific business — the estimator, the ledger, the dispatch board, the thing your work currently lives in spreadsheets and WhatsApp instead of.
For owner-run businesses past ₹1 crore, where the work has outgrown the spreadsheet holding it.
The messages and figures above are invented. Every real one I have belongs to someone else.
Worked with
What this is
The usual fix is to hire — an ops coordinator, a junior to chase updates, someone to reconcile the sheet on Fridays. That's a salary spent covering for software that was never built. The other usual fix is enterprise software built for a business that isn't yours, which you then bend your process around.
Most businesses running on spreadsheets don't need a product. They need their own process, written down properly and given a screen. The hard part was never the code — it's working out what a slab, a khata entry or a batch actually is: its states, its rules, the edge cases nobody wrote down.
That's the work. I do it in the first conversation, from how you describe the job — not from a specification you shouldn't have to write.
Work
| Business | Ran on | Now runs | The hard part | What changed |
|---|---|---|---|---|
| Architecture studio (corporate fit-outs) | Drawings and an Excel BOQ | Priced bill, tender bill and review link from one model | What scope means: not the room labels but every finish hatch minus the grey not-in-contract fill. An unhatched ceiling is still a finish. | Architect’s 118 marked-up cells folded in; revision built same day |
| Architecture & interior studio, Kolkata | A domain and reference links | Owner-edited site, worked from a 46-finding mobile audit | The audit’s reader is the owner’s AI agent, not the owner. Each finding names the file, the selector and why, so the agent can judge edge cases. | Owner shipped the hero, headline, WhatsApp and homepage image fixes |
| Façade contractor (unitised curtain wall) | 195-sheet shop-drawing set (DWG) | One quantity-only bill; rate column left blank for suppliers | What a panel is when the drawings have no unit schedule and fabrication manuals give formulas, not sizes. A count is measured only where panel widths sum to the stated elevation width. | 195 sheets read and registered behind one 54-line bill |
| Engineering consultancy (villa build), Oman | The design team’s own Excel BOQ | Measured quantity bill, staged by pour; rates left for suppliers | What counts. Six sheets and a detail library share one drawing, so a column tag shows up on five layouts, and one scheduled footing type was never placed. | 45 doors counted where the old bill carried 27 |
| Bath & stone distributor, Delhi | One HTML file on one laptop | Orders from lead to delivery, with each department’s next step | An order passes 35 steps and three gates across seven departments. Each step needs one owner, or it waits on nobody. | Off one laptop; the client now ships his own changes |
| Bath & stone distributor, Delhi | The old app’s ink-and-brass look | The chosen look: dark ink rail, stone canvas, brighter brass | Keeping the company’s brass while putting legibility first, on desk and phone. Five directions, each tried on the system’s own screens. | Client picked one of five; live the day after they went out |
| Bath & stone distributor, Delhi | Excel guest list with Maps links | Balanced van rounds, one link per driver, live delivery status | A guest is a door, not a row. The same firm spelt twice means two boxes at one door, and a pin guessed from a pincode sends a driver kilometres off. | Deliveries logged through it; 5 double-listed firms caught before dispatch |
| Bath & stone distributor, Delhi | Email and Google Docs | One app: speaker-labelled transcript, highlights as timecoded quotes | A highlight is pinned to words, so fixing a misheard name never shifts or breaks it. A span crossing two speakers keeps both names and true timecodes. | |
| Residential township | Paper register, calculator and WhatsApp | Phone register: maintenance bills sent on WhatsApp, receipts, arrears per house | The office decides each house’s amount, so it is typed, not computed. Bills are numbered without gaps, and a wrong one is corrected by credit note, never edited. | |
| Bakery, Shillong | Phone calls, WhatsApp, pen and paper | A suite of apps: till and khata, staff attendance, cake orders | Money counts the day it is received, not billed. A cake advance is that day’s money; a khata sale is not, so every screen shows both, with the working between them. | |
| Northeast produce seller | An order app, with a second app keeping stock | Nobody can tell if the customer pressed Send inside WhatsApp. So every order starts as a hold on stock until the owner confirms or cancels, and holds never lapse on their own. | ||
| Shopify app makers | Screens drifting from Shopify’s Polaris system | Polaris V12 admin screens, onboarding and App Store listing art | Writing down what an app actually does first, its old flows, then redrawing every flow, use case and error state in Polaris so it passes Built for Shopify review. | 10+ apps earned Built for Shopify; one’s revenue rose 14% |
| Shopify returns & exchanges app | Live dashboard; an empty Figma file | One Figma map: 38 screens in 8 flows, plus hidden states | A return moves from pending to resolved or rejected, and the rules stack: warranty rules override advanced rules, which override the master policy. Some views only exist after a click. | |
| Shopify community event | Previous lanyards, in the old brand | Three badge directions, none picked yet: hero card, strap, seven segments | Seven attendee segments each need their own band, text and accent colour in one 36-colour token set; long names still need a split rule. | |
| Doorstep car care (my own company) | WhatsApp chats off a Webflow site | Website requests confirmed into bookings, tracked to washer and payment | A booking is a request until ops confirm it, and confirmed is not assigned. Make and model set the price tier; a car not on the list is priced on the call. | |
| Shopify and digital agency | Webflow site, stock Framer template | Static site, almost all copy in plain data files | Moving a Framer site to static pages with no Framer JavaScript, keeping its look and scroll. The brand’s tall heading font made the old line heights cut titles flat. |
Most of it sits behind a passcode on a client's own URL, which is where operating software belongs. Happy to walk you through any of it live.
Why me
I've spent more than nine years designing and building products. Today AI writes much of the code; working out what your business needs, and whether the result is right, is still on me.
Once I understand how your work runs, you get one price for the first version, in writing. You don't have to write a spec first.
Every row in the Work table is real work for a real business, and demos are left out. Where an outcome is blank, it's because the owner hasn't told me one yet.
After launch, one monthly retainer covers the changes, the fixes, the hosting and the upkeep. No hourly billing, no new quote for every change, no mystery invoices.
Inside the systems
Real screens and states · names and numbers changed
How it goes
Fit
This works if
It doesn't if
Standing
None of the three is in force yet. This is what is being pursued, not what is held — each one moves here with its number and its date on the day it is actually granted.
What they say
We’ve worked with Janardhan on a long-term basis, not as a one-off. He designed and built the studio’s website from a few conversations, but the bigger shift was strategic: he helped us streamline how a project moves from first call to handover, turn what we do into clear offerings a client can pick from, and present the work so it sells the studio before we’re in the room. New clients now arrive knowing what they want from us and why.
RitimanFounder · Headed North
Maintenance for 42 houses used to be worked out in a notebook and chased on WhatsApp. Janardhan didn’t just build the screen that replaced it — he set up a system where the information on every house is easy to reach, an issue gets raised and resolved quickly, and everyone can see where things stand. It has brought transparency and speed to how the whole township is maintained, and the office no longer spends its month answering the same questions.
SuzanneOwner · Countryside View
More are on the way. Honestly though, getting a business owner who’s busy making money to stop and write a testimonial is one of the hardest parts of this job, and one I keep failing at 😞
Start
One paragraph on what your business does and where the work currently lives is enough to start. If it's a fit I'll say so quickly, and if it isn't I'll say that quickly too.