So, you have a new project! Hurray! 🎉
You gathered requirements and you’re ready to build it. “But… What should I build this with?”, you wonder.
That’s a super exciting question! You start to fantasize about languages, tools, and frameworks… “I could use Elixir on the backend… heard lots of good things about it and I always wanted to take it for a spin!”
Soon you realize you may not quite have all the necessary knowledge to build it with Elixir, however. And sooner than you think you find yourself browsing YouTube for crash courses and you even start considering an investment on an in-depth, structured course.
Now, if you’re an employee and your company encourages this kind of exploration, sure you may build it with that fancy new tool you’ve always wanted to try. And they may even finance your learning investments. But that’s a scenario we won’t go into as it’s heavily dependant on company policies and appearances.
Assuming you have a business though (i.e., you’re a freelancer or an agency), you’re responsible for profits. That’s a huge difference. And so you realize that you definitely need a more pragmatic approach about how to choose a technology stack.
First off, let’s start with the big one: there’s no “best tech stack”. Technologies come and go. “Best” doesn’t really mean anything. And most clients couldn’t care less about the technologies you use.
Clients care about time, money, and results. And those are what you should care about too as a professional. So keep that in mind as your North Star: whenever you’re in doubt about a tech stack decision, consider each option impact on
- and results
and simply select accordingly.
Keeping that in mind as your North Star, another great rule of thumb is to use what you already know. Using what you already know minimizes time, maximizes your profits and efficiency, and gives the best results. Perfectly in line with our North Star!
There’s a time and a place for intellectual exploration, but it is NOT on a professional project. It is going to be far less risky and far more pleasurable to keep explorations confined to your spare time.
Finally, to avoid any doubt or temptation when it’s time to choose a tech stack for a new project, I’d recommend you to have a simple decision flow defined for your line of work. This way the decision will be rational and coherent and you’ll be able to get going on the important stuff.
For reference, here’s my simple decision flow when selecting a tech stack for a new web development project 👇
Is it a static website? Then use a simple HTML, CSS, JS combo.
Is it a blog? Then use WordPress (so they’ll be able to post autonomously).
Is it a web app? Then use Next.js and Firebase.
Is it a (multi-platform) mobile app? Then use Flutter and Firebase.
And whenever possible, use an existing template and do not reinvent the wheel. Time is the most precious resource.
Define your decision flow today. Keep it simple. And have a bias towards action and results. You can always update it later once you’re more confident about your Elixir skills. But define one now and get going.
Leave the tech discussion to the pundits and internet trolls.
Liked the post? There’s more where that came from 🙂
Sign up so you never miss out! 👇