Case Study • E-Commerce Products
An e-commerce education business was making close to a million dollars a month selling a course people bought once, and every month it started again from zero to do it.
We became its software arm and built a subscription product for the audience it already had. Six weeks and under $50,000 to build, over $2.5 million earned since 2023, and a recurring line a buyer could value in the millions.
Eight figures a year, and not a dollar of it recurring
A business can make a million dollars a month and still be worth almost nothing. This one did. Every dollar it earned was a one-time sale, so the month it just had told you nothing about the month coming, and if the ads stopped the revenue stopped with them.
The client taught people how to build and run online stores, and he was good at it, making between $8 and $10 million a year. There was no public personality behind it and no following to speak of, just a very large email list and a funnel that turned strangers into buyers on schedule.
This is the world of course sellers, coaches, consultants and community owners. People with a proven method and an audience who will pay to learn it. The teams are tiny, often fewer than 10 people, the margins are very high because the product is knowledge, and the good ones run paid ads at volume into a funnel that already converts. This client was one of the good ones. We were not walking into a rescue.
A fortune in the air, and a dry basin under it.
His funnel was the standard shape for the industry back then. An ad offered free training, signing up put someone on the email list, a run of emails pointed at a two-hour webinar, and on the webinar he sold the course at a few thousand dollars a seat. Push enough traffic through the top and it lands near a million dollars a month. Stop pushing and it lands at nothing, because it holds only while the ad costs behave and the account stays approved and the operator keeps showing up to sell.
And for all the money moving through it, there was nothing to sell. A business shaped this way is valued as the operator's personal income, because that is what it is. The students were doing fine and the business was winning. What it did not have was revenue that arrived on its own, and underneath the method sat a complex repetitive task every student performed the same way, which is the shape of a product.
We had built this before, many times, and by 2023 we had been shipping software for two and a half years. Everything this product needed was work we had done on other projects already. A catalogue behind a login, search and filters over it, billing, and an admin panel to keep it stocked. There was no unfamiliar problem in it and no technical risk worth the name.
The product itself was simple. A catalogue of handpicked products, kept current by hand, that subscribers browsed by category with the numbers that mattered attached, and a generator that wrote ad copy and product descriptions on request. Useful, and not hard. Anyone who builds software could build it.
It helped that the project found us at the right time. We had a designer, project managers and several engineers, and we had turned building this kind of SaaS into a settled process rather than a scramble. So six weeks was not a push. It was the normal pace of a team that had the skills, the systems and the people already in place.
Nobody is impressed by the software. That was never the point.
The build was the calm eye. The judgement was the storm.
What the operator could not do himself was the part that actually mattered. Which piece of his method should become software and which should stay a course. What a subscriber would pay every month. How to price the tiers so the product strengthened the course business instead of eating into it. How to drop it into a funnel that was already converting without breaking what worked. A shop paid by the build has no reason to think about any of that, and it was the whole job.
The code being easy is what let the engagement go where it counted. That is why six weeks of work has returned over $2.5 million, and why the software is the least interesting thing in this case study.
We look for three things together. Someone with distribution they already own, a complex repetitive task sitting inside the work they teach, and the domain expertise to know exactly how that task should be done. When all three are present, there is a product waiting to be built, and the person who owns them is already holding the expensive half of a software business without treating it as one.
This client had all three. Hundreds of thousands of people who trusted him and bought when he recommended something. A method whose students all performed the same research the same way, over and over. And enough expertise to know which products were worth selling and why. Distribution is what normally takes years and burns the money, and he had finished paying for it long before we arrived. The only missing piece was the product, and the product is the cheap half.
He'd already cut the hard facets — the product was the last one.
That is the leverage, and the reason it matters is what one-time revenue does to a business. Course sales are earned once and never heard from again, so the business is only ever worth what its owner can personally generate this month. Recurring revenue is a different asset entirely. It arrives without being sold again, it compounds, and it can be valued and sold on its own terms. Same audience, same expertise, a completely different kind of business underneath.
The home screen is a product grid with categories across the top and a counter strip above it: products tracked, how many are high demand, how many low competition, what is trending, which category is running hottest. Each card carries its badge, the listing cost against the retail price, shipping time, and a route straight to the supplier.
Cost against retail price at the top, so the margin is the first thing you see. Below it the logistics that decide whether a product is workable: shipping time, where it ships from, processing time, returns. The insights panel repeats demand and competition for that item and closes with a plain note on why it made the list.
An advertisement, or a product description. Two options and a button.
A writing framework to work within, AIDA by default. What the product is, the brand, who it is for, then price and category. Five fields between finding a product and having the copy to sell it.
We owned the whole arc, from the product decision through design, build, launch and the years of support that followed. Only a small part of that was the software.
One of the client's marketing agencies referred him to us. We had already built for two of that agency's other clients, so there was trust in the room before the first conversation. There was never another dev shop in the running and never a bake-off. The idea was his and the agency's together, he brought it to us fully formed, and we were hired to build it. He did not try three things first. He had one idea, hired us, and it worked the first time.
A catalogue kept current by hand, a content generator, a login and a billing system with monthly, annual and lifetime tiers. Six weeks. We have covered why that was the easy part.
Parts we had built before — stacked into a product.
This is where the real work sat. Pricing the tiers so they strengthened the course business instead of undercutting it, with monthly, annual and lifetime options. The lifetime tier turned out to do a second job nobody planned for: offered to anyone asking for a refund on the course, it turned a request for money back into a subscriber kept. Billing handled signups, renewals and cancellations cleanly, and the checkout dropped into a funnel already tuned to convert without disturbing the thing that already worked. Get this wrong and it does not throw an error, it quietly loses money or breaks the page the whole business runs on.
Planted once by the wiring — it grows and keeps giving.
The product did not go out to a cold audience, it went into a machine that was already running, and it went in on more surfaces than one. It was pre-sold to the email list before it existed. It launched into a paid community. It went out as a mass email to the list. It sat as an upsell on the thank-you page every buyer already saw. And it was sold from the webinar stage that was already selling the course. Because every one of those surfaces was already paid for, the cost of acquiring a subscriber came out close to nothing.
It assembled on a pad already built — then it launched for almost nothing.
Hundreds of people were paying for the platform before there was a platform to log into. Over five hundred on the day it opened. The audience did not need convincing that the operator's tools were worth buying, they had already decided that about him, and the subscription inherited that trust the moment it was offered.
It was launched to a list, not bundled into the course. An upsell after the sale, and a product in its own right.
The stack was deliberately ordinary. Everything here is mainstream and staffable anywhere, because the client would own the product long after we handed it over.
The subscriber-facing application, the catalogue, the filters and the generator, all running without page reloads.
The application logic, the accounts and the API. One language across the stack kept it simple to pick up.
The catalogue, the categories and the subscriber records, in a conventional relational database.
Rather than build an admin interface from scratch, we put an existing one over the database so a non-technical team could keep the catalogue current themselves. It saved weeks and meant they could run it without us.
Everything deployed on AWS, with room to grow as the subscriber base did.