4
0 Comments

We're launching, and I wanted to share our story with you

Hi !

I have been reading others' stories on Indie Hackers for a while now, and I was looking forward to the day I could share ours with you.

Yesterday, we launched Pmbot, a self-hosted, extensible, automated dependency update platform.

My name is Geoffroy, and I created a small software development company with a friend of mine in early 2018. Two years later, we're launching our first app, and the road to this day wasn't easy, but we finally found the North :)

As projects grew in our Git server, we couldn't keep updating our dependencies manually. Early 2019, we looked at solutions that existed on the market, and we quickly realized that none of them would actually fit the way we envisioned automated dependency updates.

So, we wrote our own tool to do this, we've named it Pmbot, and we're finally sharing it with the world in a beta version. It's free, self-hosted, and you can write plugins to extend core functionality. We hope that some of you, whether as a software developer, or a software development company, may be interested in joining us in this adventure.

The goal of this post isn't really to go into the details of what Pmbot is and what it can do for you, for that, we've already written a post on dev.to. What I'd like is to share what led us to this day, fears we've had, problems we've faced, things we've learned, but overall this is my take on the experience we've lived over the past few months. It's definitely opinionated, and nothing I may say should be taken as a source of truth, it's just my humble opinion based on what I've been through.

Don't focus on competitors

If you've ever listened to Jeff Bezos (shame on me 😛), founder and CEO of Amazon, he'll tell you that you should not focus on competitors, but on your customers instead, and that this is the main reason Amazon has been so successful. There's some good in this, but it's not all. You should always start by making a state of the art, making sure that you're bringing something new to the table.

As months went on, other products came out on the market. It was always an opportunity to see whether we were on the right track, or whether we were missing something, but it always comforted us that the approach we were taking was relatively new. It doesn't mean it's a good approach, it just means that it's new. Whether that's because others have though of it and abandoned the idea or it's a revolutionary idea, you'll only know when you launch, and even then, it may take a few months or years for your product to be recognized, or it may never happen.

Keep it simple

Two years of work have taught us one thing: we spend most of or our time focusing on edges cases that only very few of our users will experience. Sometimes, we forget that to get a product on the market, you need a minimum viable product, something that'll work for most people. Of course, you must not forget edge cases for the rest of your (future) users, but it shouldn't be a focus in the first place.

Sometimes, you think that one or two extra days is fine because you'll then have a perfect feature, but multiply this by the number of features your app will have, and you end up with twice as much development time as you initially planned.

Know your limits

Both of us are full stack developers. We analyze, design and implement interfaces and APIs ourselves. We also handle deployments and infrastructure on our own, adding to managing our VPN, backups, accounting, etc.

But sometimes, you just have to know what you can and what you can't do. And to be honest, I'm really bad at designing, so that brings me to the next point:

Get a designer

Seriously, do it. We have no money but still we managed to pay for a good designer. One thing, if not THE thing that will make the difference between an app that people like and an app that people love, is how you care about user experience and user interface.

Take risks

At the age of 28, I have no children, no house, no loan, no dog, basically no responsibilities but to pay my taxes. I quit my job as a well paid software developer to create a company. At the time, we had only one contract. I wasn't taking a huge risk, because I believed that the experience I would gain in the next few years would be worth all the money in the world. And honestly, I haven't been bored once for the pas 2.5 years. Sure, you have to keep finding contracts, but it's worth it all the way.

Don't be afraid to fail

If you think you will always succeed, then you've already failed. You WILL fail, no matter what you do. And when it happens, remember these words: it's o-kay. Try to get as much as you can out of it, try to grow from it, and it'll make you stronger.

Engineers will tell you that there's no such thing as failure as long as you get data out of it so you can fix things up and move forward. We failed at choosing the right technologies when we started working on Pmbot. But we learned a bunch from using them. You can read all the articles you want for things like Angular vs. React, Java vs. NodeJS. If you haven't used these technologies in production apps, it'll be hard to make a proper decision. Everyone has an opinion - make your own.

It's okay to pay a few $ for a hosted service

We're the type of guys that love hearing the words self-hosted and free. We'd rather spend a few hours coding our own tool than using a paid tool hosted somewhere where you can't keep control over your data.

But honestly, looking back at it, I think paying a bit would have saved us so much time that we could have allocated to other tasks. Think about it: $15-$25 a month is nothing compared to a few man days spent engineering a basic solution that others spent years building. Save time, spend a few bucks, it's honestly worth it.

You'll never be done

We're always trying to make things perfect. There's always that little edge case, a button that is not properly aligned, a color that doesn't match the rest of the page, a feature that's not perfectly smooth, a configuration that is ambiguous. Honestly, you'll never be done, so make sure you define a scope and that you stick to it. Of course, sometimes, you realize that you've missed a crucial feature that could really boost adoption of your product. Sure, you can add it to the scope, but do this too often and you'll always push back your launch date. It happened to us, and one day we just said STOP.

Don't stop believing

I don't know whether we'll have users, I hope so, but you never know. Sometimes, it's not the right moment for a product to come out, people don't get it, it's too hard to use, or it's just not the right product. But it's okay ! It's a learning process, and you'll always have opportunities to get good things out of it ! And if it works, then you've brought something new to the table, and you've helped others with a great tool, so cheers to you !

And last, but not least, don't try to look for ways to change the world - look at the world and find ways to change it. It's a lot easier and the world will thank you for it.

Trending on Indie Hackers
Getting first 908 Paid Signups by Spending $353 ONLY. 24 comments I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Join our AI video tool demo, get a cool video back! 12 comments