CODEXA.Technologiez
All insightsBusiness

Why an agency should ship its own product

Bilal Ashraf, Senior React Native Engineer · Oct 25, 2026 · 3 min read

We build software for other people. This year we also started running some of our own: Codexa Orders, an order desk for Pakistani sellers that pulls their website, marketplace and DM orders into one list and prints a courier-ready slip for each.

It is live, it is paid for, and it has changed how we argue in client meetings. Not because it made us cleverer, but because it removed somewhere to hide.

What does running your own product teach that client work does not?

That you were wrong, and exactly how. On a client project the feedback loop ends at handover: the invoice is paid, the retrospective is polite, and whatever the software is like to operate for the next three years is someone else's morning. When it is your product, every shortcut comes back with a name attached. A slow query is your support inbox. A confusing empty state is a cancelled subscription. You learn which of your habits were craft and which were just taste.

Why can't an e-commerce platform just print the slips?

Because the platform only knows about orders that came through the platform. A seller in Lahore takes orders on a WooCommerce site, on Daraz, in Instagram DMs, over WhatsApp and on the phone — and the person packing parcels needs all of them on one piece of paper, in one format, in one run. No storefront can print an order it never saw. That gap is not a missing feature, it is the shape of the market, and it is where the hand-copying at midnight happens.

How do Instagram and WhatsApp orders get into a system?

By being typed in, and we decided to say so. Neither platform publishes an orders feed, so there is no honest way to sync them. We built a quick-order form and a spreadsheet import instead of implying an automation that cannot exist. It would have been easy to put “Instagram” in a logo row and let people assume. Choosing not to cost us a tidier marketing page and bought us customers who are not disappointed in week two.

  • Connected stores sync every five minutes; Instagram, WhatsApp and phone orders come in through a form.
  • Orders are read, never written — the seller keeps managing statuses where they always have.
  • Urdu addresses are set right to left in a proper Nastaliq face, because most tools print them back to front.
  • The COD amount sits in a black box the rider cannot miss, showing only what is still owed.

None of that is clever engineering. All of it came from watching someone pack parcels.

Should every agency build a product?

No. A product is a commitment to support, billing, churn and a roadmap that nobody is paying you for yet, and an agency that starts one to look serious usually ends up with a neglected side project that proves the opposite. It is worth doing when you have hit a problem yourself, repeatedly, in a market you already understand — and when you can afford to keep running it after the launch excitement wears off.

We built ours because we kept meeting the same problem in retail and e-commerce work: the storefront was never the hard part, and the unglamorous system behind it decided whether orders actually shipped. Building it for ourselves was cheaper than explaining it one more time.

What it changed about client work

We are harder to talk out of the boring parts. Deployment, backups, error reporting and the admin screens nobody demos are the things that decide whether software survives contact with a real week, and we now have our own scar tissue to point at rather than a principle.

It also made our estimates less optimistic, which clients like less and trust more. If you want the figures behind that, the project cost estimator shows the ranges we actually work from.

Bilal Ashraf, Senior React Native Engineer

Senior React Native engineer with more than five years in mobile and twelve apps live on the App Store and Google Play, mostly health-tech and AI, from wearable firmware through to the app. Also teaches production React Native.

Enjoyed this? Let's work together.

Start a project