The post was originally published on my blog.
As a developer, I always could create things, but I didn't. Not sure about the reasons though, I probably was short on time, or don't have a good enough idea or just was too lazy.
But I decided it should change this year. I set the goal at the beginning of the year to develop and launch at least 2 projects. And here it goes. After 3 months I launch my first project Arcade Hub.
I hope my story encourages some of you who also want to have a side project but continuously postponing the first step.
I decided not to think too much about the idea because it's probably one of the reasons I haven't done it in the past. So I just started to notifying the problems I experienced and the moments "I wish I had this..." and write it down to the Notion.
At the moment of the start, I just looked at my notes and picked the easiest and fun. In my case, it was a service that supports Apple Arcade users.
Apple Arcade is the service by Apple which costs around 5$ per month and you get access to 100+ library of games (mostly arcades) without ads or any internal monetization. So it's game subscription service for all Apple devices.
After the launch, I tried the service and I liked it. But there was one problem, I didn't know how to pick a good game. They have reviews and scores as any app in AppStore, but it's inconvenient to check every game. That's what I decided to fix.
I love to learn new stuff so I decided to pick technologies that I never used or used not much before. It was Node.js, React.js, GraphQL powered by Apollo client and server, MongoDB.
I think here I made a mistake. The one thing is to do the project for learning and completely another doing project with goals to launch it for the public and have real users. The most important goal was finishing the project, get this closure feeling. But with learning new technologies, it could never happen.
It was a mistake, but that's what the first projects are for. To learn on our mistakes. Eventually, I stuck with a couple of problems because of the lack of experience, but with the Internet, everything could be solved, right? However, I decided my next project going to be on the familiar stack.
Especially if this is your first side project which you want to finish and maintain further I recommend you to chose your working stack.
On that topic, I was just lucky that my wife is starting to learn design. So we decided this project going to be an experiment for her as well and she can practice web design.
If you don't know any designers I'd recommend using Figma and/or design systems. Even that I had designs, out of the box components allowed me to go much faster with elements. Otherwise, I need to implement a lot of CSS for that. And I'm not a big fan of CSS, to be honest.
Depending on your stack but TailwindCSS is a very good solution especially with the amount of ready components on the web. Design systems could be also very helpful. I used https://ant.design/ for React, but it could be anything. I heard a lot of good stuff about material design and you can find the components for any framework.
I finally finished and launched it, what's now?
Since it was a test project and I wanted to learn on my mistakes so I decided to try marketing as well. I know nothing on that topic, so I went through the pretty standard process that I've seen in makers communities: Product Hunt, Reddit, Hacker News, Twitter, and a little bit on IndieHackers and Makerlog. My hopes were on PH and Reddit, gaming projects seem not so popular on PH, but Reddit fits perfectly.
I found the niche community for the project (/r/AppleArcade) and post about my project. For such a small community I got around 75 votes which were one of the most popular topics on this subreddit. And most importantly I got my first traffic and amazing feedback. People find my project very simple and I thought it's going to be a downside of it but everyone prises how simple it is. Probably people tired of complex web-apps doing everything and my one-purpose app turns out very refreshing. That was insightful. I also got a lot of ideas on how to expand the project further.
I got around 1000 unique visitors during the two days of launch according to SimpleAnalytics and it's no big numbers overall but for me it was amazing. The feeling that you've done something helpful even for a few people is very inspiring!
Also, one of the Hungarian online magazines (they write about Apple stuff) found my post on Reddit and published the article about the project. It was beyond my expectations.
From the start, I planned this project should be completely free and the main purpose is to have fun and learn something about launching products. But just in case I've created the buymeacoffee page and put it to the "About" section of the app.
I was really surprised when after a few weeks I got my first €5 subscriber. I didn't expect it at all. It turns out it was one of the developers of Apple Arcade games and he finds my site very helpful and he used it for some internal analytics. I suggested implementing API to easier get the data from my website and he was really happy.
That's another cool thing about publishing your projects - you never expect how it turns out. A lot of successful startups did several pivots before they found their purpose.
A bit later I got positive feedback from one more developer of Apple Arcade games.
In terms of maintaining I'm having fun as well. I finally have the place where I can experiment and apply something I recently learned in the area of programming or something else.
I think every developer should at least once try to build the side project. It's very fun, encouraging, and inspiring to do so.
You shouldn't try to build a multimillion startup or trying to create the best product ever. In the beginning, you should just try to satisfy one user - yourself. And don't worry about all these successful projects people launching. Behind each successful project a lot of work and sweat. First off try to have fun and then you decide if you want to tie yourself out with making.
Let me know if you have any questions. I'm always willing to help!
PS. I'm now building my second project and it's about learning in public. I'm starting MVP with the purpose of learning programming. I want to expand the ideas of 100DaysOfCode and similar ones and present a good platform for learning in public and build a good community.
Very excited to present it in the future!