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.

How we made our first sales without a finished product

June 26, 2024

11 min read

From spotting a real need to validating it with fake sales and Facebook ads — our first paid product taught us more than any book.

eBook series covers – created by me and two fellow developers to guide beginners into the IT industry and help them become programmers

The first identified problem!

Freshly filled with business knowledge and a new set of beliefs, I began to think about how to put it into practice. I knew I had to stop forcibly searching for "brilliant" ideas. My task was to find the problems and needs of people around me. After a relatively short time, I started noticing regularly recurring questions among my friends who were looking for well-paid jobs or wanted to change careers. These included:

These same questions appeared daily in Facebook groups of programmers. There were countless of them. This was a very important moment for me because I realized then that the number of people wanting to enter the IT industry is huge, the amount of learning materials is overwhelming, and beginners don't know where to start, feel lost, and have a specific problem!

Facebook group question – real user asking how to get into the IT industry and become a software developer, which inspired the creation of our beginner eBook series Facebook group question – real user asking how to get into the IT industry and become a software developer, which inspired the creation of our beginner eBook series Facebook group question – real user asking how to get into the IT industry and become a software developer, which inspired the creation of our beginner eBook series

Gathering feedback and first email addresses of potential customers

The solution to the above-mentioned issues immediately came to mind - a course or e-book that would answer all the recurring questions. At this point, I already knew that starting any work on the product had to wait until I was sure people wanted it and were ready to pay.

I began validation by creating a Google Form with questions that would tell me more about potential customers and their specific problems. With this survey, I returned to programming groups on Facebook, started answering questions about entering the IT world, and ended by attaching a link to the form. After two weeks, I had about 40 responses, which helped me better formulate my potential product (and at the same time, 40 email addresses of potential customers).

Survey results screenshot – answers from aspiring developers on how long they’ve been learning to code and how quickly they expect to land their first IT job

Fake sale

I knew that the best form for the product I planned to create was a video course – after all, that’s the format I prefer using myself. I was aware that such courses could be sold for much higher prices than other formats like a site with paid content, a paid newsletter, or e-books. Unfortunately, I had no experience in recording myself, and honestly, I didn’t feel confident enough (yes, I know, excuses). Initially, I chose the option of a site where a few articles were free, but the rest required payment.

Of course, I realized that I couldn’t spend several months writing all the content, building a professional site, and running ads at the end. I needed to quickly check (spending as little time as possible) whether customers would want to pay me would pay me.

On the first day, I wrote two free articles and found a platform for creating courses where the first month was free. On the second day, I got acquainted with the platform, embedded both free articles, set up a landing page with the course description and table of contents, and finally bought the domain zostaneprogramista.pl. In the pricing settings, I listed the price as 0 PLN, but on the sales page, it showed that the course costs 59 PLN for the next 30 days. This way, I didn’t need to integrate any payment gateways, which I hadn’t registered for yet, nor did I need to provide complete content. The site worked in such a way that even if the product was actually free and someone clicked the "Buy" button (thinking they would pay the mentioned 59 PLN), I would receive an email with information about a new customer. Instead of being redirected to the payment, the person would get a page saying that the product was in the creation stage and as a first customer, they would get a 50% discount.

AI-generated image of a laptop displaying Facebook ads, surrounded by money – concept of online advertising and digital income

Finally, I ran a Facebook ad for 2 weeks and spent 100 PLN on it. The result was that 6 people clicked the "BUY" button during that time. Considering that the landing page didn't look great and the ad itself was my first attempt in this field and wasn't very successful, I had confirmation that customers wanted to pay for it. In the end, I would have made 254 PLN, not counting taxes, server costs, etc.

Creating the final course website – learning Next.js

The next step was to create a fully functional website with free and paid articles, a registration and login process, integrated payments, an email system, a newsletter, and, most importantly, a much better design. Of course, I could have used the course platform I used for validation, found another ready-made solution, or even used WordPress, but first, I like to have control over the code, and second, I wanted to develop from scratch a template of functionalities that I could easily use in future projects.

At that time, the technologies I knew best were Spring and React. However, I didn't want to write the backend and frontend separately, and after a bit of research, I came across the Next.js framework, which allowed me to create entire web applications in one place and deploy them very easily on the Vercel platform.

After two weeks of learning, I created the first full version of the platform where I planned to host the course. Below are some screenshots of the site from that version.

Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry Screen from zostaneprogramista.pl – a learning platform co-created by me and two friends to guide aspiring developers into the IT industry

Collaboration and further work on the product

At some point, I proposed working on the product together to two friends I mentioned in the first post – Wiktor and Piotr. Each of us is a programmer, but we worked in different industries and technologies, so each of us could bring our perspective on entering the IT world to the course.

Together, we started developing the course's table of contents and creating additional articles. In the meantime, we created two mini e-books in Canva as lead magnets to collect contacts for potential customers.

Image of two mini eBooks used as lead magnets to collect contacts from potential IT clients

One day, after completing about 20% of the total content, we decided to launch a presale to inform the world about our work at this stage. This would allow us to gather the first customers at 30% of the final price, which was set at 199 PLN, and earn the first money from passive income. We also dedicated 2 weeks to intensive learning about effective advertising on social media. Ultimately, we invested 50 PLN in a Facebook ad. After 2 weeks, we had four customers who paid for our product in presale! We earned 240 PLN gross! I know this amount might seem small, but the fact of earning the first money from passive income was an incredible success for me!

Stripe payment confirmation email – screenshot showing the first successful transaction processed via our online platform

Completing the course, lack of results, and migration to WordPress

After a few months, we had written all the articles and improved the stylistic appearance of the website. Meanwhile, we continued to educate ourselves on social media advertising and Google ads. We gathered about 60 contacts on our mailing list, thanks to the free e-books. We ran ads, sent emails, put everything together, and... nothing. There were no interested customers.

Of course, we began to analyze the reasons for this situation. The first hypothesis was that the website looked bad and simply wasn't encouraging. We didn't want to invest thousands in a UX designer, so instead, we invested 200 PLN in a WordPress page builder called "Divi", which contained many ready-made, good-looking templates designed for specific uses. Another decision was to convert the course articles into three e-books. We concluded that a site with paid content was not a popular solution, and people did not want to buy this type of content.

We did everything according to plan, using appropriate marketing techniques to design a product and landing page that encouraged purchases.

Screenshot from the new WordPress version of zostaneprogramista.pl – platform selling our IT career eBooks Screenshot from the new WordPress version of zostaneprogramista.pl – platform selling our IT career eBooks Screenshot from the new WordPress version of zostaneprogramista.pl – platform selling our IT career eBooks Screenshot from the new WordPress version of zostaneprogramista.pl – platform selling our IT career eBooks

Problematic WordPress and return to Next.js

During testing of the finished website, several issues unfortunately arose:

We lost a lot of time struggling with these elements. On one of the WordPress groups, we were told that building sites with ready-made page builders is the worst thing you can do and that if we wanted a well-functioning site, we should write it from scratch. So, we essentially ended up back at square one. Our next decision was to return to Next.js, but this time with the difference that we are selling e-books and using ready-made components from shadcn and Tailwind.

Final steps, summary, and conclusions

Currently, at the time of finishing this post, we have rewritten 90% of the website back to Next.js. We changed the payment gateway from Stripe to Przelewy24, with which the integration, unlike with WordPress, went smoothly without any complications. We also added an automated newsletter that sends various messages to subscribers at specific intervals.

MailerLite automation screen – configured email workflow for lead nurturing and eBook marketing

Before relaunching the website and sales, we need to complete a few more elements. For now, we're not in a hurry because the IT market has slowed down for a while, but we plan to meet soon for 1-2 days of solid work to finalize everything, run new ads, analyze the results, draw further conclusions, and take the next steps.

I think the entire website looks much better now than at the beginning and is more encouraging to buy. Moreover, e-books are a much better way to deliver knowledge than paid text content. I also realize that unlike other creators doing similar things, we are unknown since we don't have extensive social media or a YouTube channel, which would certainly be a huge source of customers. We might also decide to take this step and build an audience in the future to gain reach and trust.

Despite not having great success and the industry's slowdown, we are definitely not abandoning this project because we believe that we have included really useful knowledge in our e-books by sharing our experience. As I mentioned, sales are closed at the time of writing this post, but we are always open to discussion. At the end of the post, I'll also show what the e-books look like inside:

Sample pages from the “Zostanę Programistą” eBook series for aspiring developers