Making Technical Choices as a solo maker(Founder)
Making technical choices is one of the hardest and most time-consuming things we do(at least me) as developer-biased founders. Whenever we start a new project, we start checking out all the new tech we have been hearing on podcasts(shout to Syntax ❤️), YouTube videos, and reading blogs about. Not that this is bad but it can easily become the first rabbit hole we dig ourselves into trying to find which is the best, most efficient, smallest, and so forth. And most times these have almost zero advantage to your product whatsoever. I think things are worth considering when making these decisions, especially when you are on your own.
It depends entirely on you:
Don’t go low level: If your product doesn’t need anything special to go low level, then there’s no need to(If you’re not building a library as your product), going low level is a source of distractions and can sometimes end up overwhelming you and might even slowly lead to procrastination because of all the unnecessary moving parts. You’re not looking to make the fastest version of your product just yet, you’re just looking to ship something that works well enough to receive feedback on it. But on that note don’t pick trash tools that “lock you in” and can make the product a nightmare to work with.
You’re shipping a product not making libraries: There’s a lot of people making tools products out there and unless you’re one of please try as hard as possible to find tools with batteries included, just so that you don’t have to deal with small decisions that take a lot of time like”where should this file go” or “how should I handle auth” or “which is the best GraphQL Client?”, “How should I handle deployment with these, should I write docker files for this?”, even if you’re an expert at it, don’t go there unless it’s necessary.
Choose the most efficient way to ship the MVP (first version) of your product. Get off-the-shelf software anywhere that you can use to save time. If your product does not need a specific backend feature then skip building your standalone server and go for serverless, it’s cheaper, fast, way more scalable, and most importantly it saves you a lot of time you would’ve spent on making decisions technical decisions that don’t give you an edge and increase the complexity. I know it looks cool but don’t.
There are dozens of services that use them, There’s probably a service for almost everything Auth is an off-the-shelf service, queues as services, and a lot of other API as services. Make use of them to save on time. Most of them have a gracefully free tier or “cheap hobby tier”, These will save you a lot of time and reduce the number of things you’re dealing with. So that you can focus on delivering value and not focusing on maintenance and routine tasks that don’t add to the success of your product.
Choose cheaper (graceful free tier) You don’t need to start paying for something that hasn’t started generating its income yet, so just go ahead and pick the bigger like AWS, more established services that tend to have a more gracefully lower tier than most others.
If possible eliminate all unnecessary steps(deployment, containerization). Use Developer-friendly tools and services like Netlify, Supabase, Vercel and many others that make your life as a maker easier, products that reduce complexity and all you have to do is just focus on building the core part of your business.
Reduce the number of features and nice to have. This is a very tough thing to get through, always reduce the number of features to ship as much as possible. The fewer features you have for your product the faster you can build, and they will be exponentially better. More is always achieved by doing less. Especially a new product you can’t afford to confuse customers, and as always you can always ship those features later as they are needed and even make it interesting for your customers by sending them product update emails, giving the product the advantage of being “active” in the eyes of your customers. And you can brag about it on your landing page, and Twitter.
Automate as much as possible, This is the lowest hanging fruit to boost your productivity as a maker and reduce the brain space used for mundane tasks that don’t directly contribute to your product. Use Github Actions, code generators (Redwood is a great example of this). You’ll be surprised how much time those little routine tasks take.
These are some of the few that I learned to consider the hard way and I bet most of these are things you’ve heard before, the important thing is to start executing on them.