Michał Kmiecik

Michał Kmiecik

Poznań, Polska

I’m a full-time dev building indie startups after hours. I’ve just started making my first small profits — and I’m sharing everything I learn along the way 👇

See behind the scenes ↓

I recently made my first few $ from indie projects. Follow the journey as I build more — and try to make it sustainable.

What I learned building my first SaaS in a niche industry

June 29, 2024

6 min read

From coding during a fever to launching in a Facebook group — how I built and tested my first SaaS for crane dispatchers in a tiny Polish niche.

Early version screen of the Dźwigowy Dyspozytor app – hero section of a management tool for construction companies to organize machines, operators, and project tasks

Genesis

The history of this project goes back several years. Let's start with the fact that a member of my family has a large service company with mobile cranes. One day, I visited him at the company headquarters (which I did quite often) and had the opportunity to observe the work of the dispatcher. It involved clients calling one after another, inquiring about the availability of a particular crane, and the dispatcher would open a notebook and check which machine was free and for what date. This caught my attention, and I asked myself, why don't they have an app or an online calendar to manage trips, machines, operators, etc.? It would be much easier for them to manage everything in one place on a website. They could generate reports, have notifications for every event, and probably many more useful functionalities that a simple notebook does not provide.

As a result of this observation, as a young and inexperienced programmer, I decided to create a suitable tool along with two other colleagues. This is how the project, tentatively named Crane Manager, began. We made almost every possible mistake. We didn't talk to potential clients, we invented strange functionalities ourselves, and we focused more on writing high-quality code and designing the appropriate infrastructure (CI/CD, deployment) rather than delivering business value as quickly as possible. We worked on the project for several months, and in the end, it was overcomplicated, poorly thought out, and buggy. The dispatcher at the friendly company still preferred to use a notebook, and after sending emails about the product to other companies, practically no one responded. Thus, we abandoned further work. I must note that I don't regret a single line of code written, because at that stage, it was a super developmental project through which we learned a lot. Unfortunately, at this moment, I can't find any screenshots, but I'll keep looking :).

Revival

This winter (2024), specifically in February, I was going through a severe flu. As soon as I had enough strength, I read a lot about the Sales Safari method by Amy Hoy. This method involves observing customers in their natural environment to find problems and needs, for example, based on regularly recurring questions. For example, we go to a subreddit and read and analyze people's conversations for several days, noting recurring questions or complaints. This way, we can identify the pain points of a specific group or industry and create an appropriate solution.

While educating myself in this area, I remembered the past failure with Crane Manager. Perhaps due to a high fever, I decided to return to the topic, using the above strategy and, most importantly, focusing on customers and talking to them rather than beautiful code.

First, I found a Facebook group that brings together people involved with mobile cranes. Unfortunately, the main problem was that it only had 6,500 members, most of whom were operators (I must also note here that for now, I decided to target only the Polish market). My first step was to write a post asking if anyone could recommend easy-to-use software for managing machine trips that would immediately inform me if a particular crane was available during a specific period. Most people replied that our Polish market is rather archaic and people still prefer to use a notebook (which matched my observations). I also received suggestions like Google Calendar and links to foreign applications. In summary, this was information for me that there was essentially a lack of such software on our national market.

MVP

Having a few days off due to illness, I estimated that writing the MVP would take me a week. I didn't have anything better to do anyway. During this time, I bought the domain dzwigowydyspozytor.pl, created a landing page, a login system with SMS confirmation, and the main functionalities for adding, editing, and deleting cranes and their trips, checking for conflicts, and a calendar presenting machine work times in daily, weekly, and monthly views. For those interested, I wrote everything in Next.js using Tailwind and Shadcn + MongoDB in the cloud as the data source. SMS delivery is handled through the platform sms.pl. Below I am sharing two screenshots of the product.

Job creation form in the Dźwigowy Dyspozytor app – tool for scheduling construction equipment, assigning operators, and managing project requests Screenshot of the calendar dashboard in the Dźwigowy Dyspozytor app – central planning view for tracking construction tasks, machine availability, and operator schedules

Product launch and initial insights

As estimated, I created the first version of the product with basic functionalities in a few days and posted it on the Facebook group. Many people gave it a thumbs up, some started testing the application (which was free at this stage), and a few people commented that it was great but needed additional features. These individuals who actively participated in the discussion are the most likely potential customers who can significantly contribute to the product's development. Conversations with them are invaluable because we get firsthand information on how the product should look.

Second version of the product and summary

Recurring ideas for new functionalities that users needed included support for operators and the ability to assign them to trips, as well as the option to notify operators of the next job via SMS or another channel. Additionally, a few bugs needed fixing. Within 3-4 days, I made the necessary updates and returned with a new version.

The response was very positive, and a few people still use the application. Of course, I discussed the pricing with active users, and it turned out that they were willing to pay a subscription fee of 50-100 PLN per month. I could have implemented a paid subscription model and sent invoices, but unfortunately, there were too few customers, and combined with the costs of a better server and database, I would have broken even at best. As we know, a business can scale and raise prices or find more customers, but I concluded that my product does not meet any urgent need; it is more of a "nice to have" type, and the number of people in the Facebook group is too small. For now, the application is hosted on a free server with a free MongoDB cluster. A few people are still actively using the application, and I will soon return with another post on Facebook. I might also look for similar groups (e.g., about HDS, CAT, and other equipment) and talk to people about their needs.