DotConfig, meet world. World, meet DotConfig.
For a while, I've been collecting app ideas in one place. I've also tried to build a couple of side projects but they never came to light. I lost interest in the projects, procrastinated and dropped them after a while. At the beginning of this year, I was determined to never make that mistake again. I decided that I would find an idea I liked, build it and launch it.
Looking back, I made a few mistakes with my first 2 dead projects.
I naively chose ideas that I'm not passionate about or didn't care enough. People say that you should solve your own problems when building products. The reasoning is that if you have a big enough problem, other people might and you'll be your own customer. While I had the problem I was trying to solve, I didn't care enough about it. In fact, I found a better way to solve my problem later on (I read a book). But that is a different story.
I spent too much time thinking about what features I would build. I had a long list. I told myself my app would never be perfect without these long list of features. So I started building. I spent a couple of weekends on it. I don't remember what happened after that. All I know is that I just stopped working on it.
I spent too much time thinking about the design. I spent a lot of time trying to design the perfect UX for my perfect app. I spent hours and hours designing and perfecting the design as much as I could. I'm not a designer but I'd like to think that I have a good eye for design and details. When the design was finally over, I'd lost interest in this project again.
Don't get me wrong, design is important. But as a solo maker, don't let it suck you into a rabbit hole.
Late last year, I'd heard about James Clear and his new book Atomic Habits. I'm a regular listener of the Indie Hackers Podcast. After listening to his episode on IH, I bought his book. The first few chapters of Atomic Habits had a huge impact on me. If you want to build good habits or drop bad ones, read it. It's worth it.
It talked about how small things can build up over time and a lot more. Seriously, read it. I even managed to quit smoking by following a single passage in the book. I've tried to quit several times over the past years.
Anyway, I wanted to start my journey as a maker and try to generate revenue from my projects. I also wanted not to make the mistakes I made in the past. So I did the opposite of all the mistakes I made. I chose an idea that had been rattling around in my mind for a while. In fact, I picked up setting up code splitting and service workers as a part of my day job. We'd been using Webpack 3 and I also had to migrate to Webpack 4.
That opened a can of worms. At the end of it, I thought about all the people who find Webpack hard.
For most projects, the webpack setup uses only a few options. So why not make an interface which makes it easy?
After a quick google search, I found an app that did exactly that. But there were a few things missing.
- It supported Webpack 4 but had only one config file. I wanted at least 2 — one for production and one for development.
- It didn't have options for Hot Module Replacement, creating HTML files, minifying CSS.
- It didn't support code splitting at that time (it does now but only splits npm modules)
Coming back to my previous mistakes, I made a list of all the features that I'd like to see. And then, I made another smaller list of features from the bigger list. This was the list of features that I was gonna launch with.
I made a rough sketch of how I wanted the app to look. That was all the design I required to start building. To make things more interesting and to force me to finish this project, I decided to live stream it. I came across about shipstreams.com and the 24 hours startup challenge. It had happened in November last year. If only I'd known, I would have participated. If I had, I wouldn't have built a product.
So one fine Saturday, I woke up early, dusted off my Twitch account and OBS, began the stream and started coding. A lot of people dropped in, asked questions on the chat. When I stopped, I'd been coding and streaming for close to 13 hours. I'd made decent progress on DotConfig.
Over the next couple of weekends, I spent a few hours here and there to finish the rest of the features. I streamed some of it. During the process, I even took a couple of things off my features list and put it off for later. I did this because they were taking time and I didn't want to get stuck on them.
And then the day came
On March 4th, I did the final touches and launched! I had a decent looking product.
Throughout the day, I watched as the upvotes came on Product Hunt. I thought that I'd get more traction on Hacker News than PH. I was wrong. By the end of the day, DotConfig had close to 130 upvotes. Not bad for a first launch. This means people liked the idea. (Right?)
This was enough motivation for me to continue working on DotConfig. Over the past couple of weekends, I've been working on building the rest of the list I'd made.
I'll finish the features over the next few days and I've a few more ideas for DotConfig. I also got a couple of requests on Twitch which I'll be building. I'm also starting a small blog to write what I know and what I learn. I don't have plans to monetise it right now. I've other app ideas that will probably help me build new income streams. Let's see.