Skip to content
6 m1220 words

I Built a Complete SaaS and Learned That Nobody Was Waiting for It

There is a specific kind of confidence that comes from finishing a product.

There is a specific kind of confidence that comes from finishing a product.

You fix the final bug, deploy the production build, connect the analytics, test the payment flow, and look at the dashboard thinking:

This is real now.

That was how I felt when I launched Kashi, a point-of-sale and business management platform for small businesses.

It was not a landing page pretending to be a product. It had sales, inventory, customer management, quotes, credit tracking, reports, online catalogs, and WhatsApp ordering. It worked on the web and on mobile.

From a technical perspective, I was proud of it.

Then I launched it and learned something that building had allowed me to avoid:

Nobody was waiting for it.

I confused a complete product with a wanted product

While building Kashi, progress was easy to measure.

I could finish the inventory module. I could improve the database. I could add another report. I could make the mobile experience smoother.

Every completed feature felt like evidence that the product was getting better.

But once the product was live, progress became much harder to define.

A visitor did not care how many database migrations I had written. A store owner did not care how flexible the architecture was. Nobody knew how many edge cases I had handled.

They only cared about whether the product solved a problem they already felt strongly enough to address.

That distinction sounds obvious now. It did not feel obvious while I was building.

I believed that if the product was sufficiently polished and useful, people would naturally recognize its value. But users do not arrive with a complete understanding of your product. They arrive with limited attention, existing habits, and a hundred reasons not to change what they are currently doing.

A product can be functional, polished, and genuinely useful while still failing to create urgency.

Launching did not create demand

I initially treated launch day as a finish line.

In reality, launch day was the moment the real work started.

I ran Meta ads at roughly MXN 200 per day for about a week. The ads generated around 100 visits per day, approximately 20 registrations, and five trial users.

Every one of those trials eventually canceled.

That result was painful because it removed several convenient explanations.

I could not say that nobody had seen the product. People had.

I could not say that nobody had registered. They had.

The failure was happening deeper in the funnel.

People were interested enough to click. Some were interested enough to create an account. A smaller group was interested enough to begin a trial.

But the product was not becoming important enough for them to keep using.

That forced me to stop thinking about traffic as success.

Traffic is not success.

Registrations are not success.

Even trials are not success.

A user reaching the moment where they understand the product is useful is closer to success. A user returning without being reminded is even closer. A user making the product part of their normal workflow is where real value begins.

Making the product free did not solve the problem

After the trial users canceled, I considered the obvious possibility: maybe the price was the problem.

So I opened the product and made a free plan available.

This reduced friction, but it did not suddenly create strong adoption. I ended up with one or two active users rather than a large wave of businesses.

That was another important lesson.

Price can prevent someone from using a product, but removing the price does not automatically create demand.

A free product can still require too much setup.

A free product can still solve a problem that is not urgent.

A free product can still be difficult to understand.

A free product can still ask users to replace a system they already know.

For a small business, adopting management software is not like downloading a casual mobile app. The owner may need to enter products, configure inventory, understand the workflow, and convince employees to use it.

Even when the software is free, switching has a cost.

“Useful” is not the same as “necessary”

I spoke to and observed businesses from very different categories: flower shops, hardware stores, cafés, pet grooming businesses, and grocery stores.

Many of them could benefit from better software.

But “could benefit” was not enough.

Some businesses were already using spreadsheets. Others were using notebooks, calculators, WhatsApp, or an older point-of-sale system. Their existing process might have been inefficient, but it was familiar.

My product had to be dramatically better than the current process, not theoretically better.

That is a much higher standard.

A founder sees the long-term benefit of organized inventory, customer records, detailed reporting, and digital catalogs.

A busy store owner may see two hours of setup before they can make their first sale.

Both perspectives can be correct.

The product fails when it does not bridge the gap between them.

The product was not the only thing I had to build

Before launching Kashi, I thought my job was to build software.

After launching, I realized I also had to build:

  • A clear reason to try it
  • An onboarding flow that created value quickly
  • A message for a specific kind of business
  • A distribution channel
  • Trust
  • A habit
  • A reason to return

None of those things could be solved by adding another dashboard.

The hardest problems were no longer technical.

They were questions such as:

Why should a business change now?

Which specific business is this for?

What is the first result a user should get?

How quickly can they reach that result?

What makes the product meaningfully better than WhatsApp and a spreadsheet?

Those questions were uncomfortable because I could not solve them by opening my code editor.

What I would do differently now

I would start with a narrower business category.

Instead of building for “small businesses,” I would choose one type of business with a repeatable workflow and a clear pain point.

I would talk to owners before building the full system.

I would manually observe how they register sales, manage inventory, follow up with customers, and handle credit.

I would build only the smallest workflow that produced a valuable result.

I would also measure activation much earlier.

Not registrations. Not page views.

I would define a meaningful action, such as completing the first sale, adding the first inventory item, sending the first quote, or receiving the first catalog order.

Then I would focus the entire product on helping users reach that moment quickly.

I do not consider the experience a failure

Kashi did not grow the way I imagined when I started building it.

But it changed the way I think about products.

Before Kashi, I believed good products won because they were well built.

Now I believe good products win when they solve a painful problem, communicate their value clearly, reach the right users, and become part of a repeated behavior.

Engineering matters. Design matters. Reliability matters.

But none of those things can replace demand.

Building Kashi taught me how to create a real software product.

Launching it taught me what a software product actually is.

It is not the codebase.

It is the relationship between a problem, a user, and a solution they choose to keep using.