You are starting a new project for a client, & he said you are free to choose whatever tech stack you want to use for the project. Isn’t this great!!
It is finally the chance to try out this new framework/library/language that you’ve been wanting to try for lately! 😎
But what I’ll do here is to try to convince you not to do so… 😅
Let’s first agree that yes, being able to choose the tech stack is a exciting because:
However, this decision here can have a lot of big long-term consequences. Yet, I see it often not given the correct consideration it deserves.
Some developers might say: ”As long as I deliver the project on time & in good shape, whatever tech stack I use is fine”
Unfortunately, a big NO…
I know this will sound harsh, but the statement above is honestly short-sighted & self-centered…
Why??
Several reasons:
1- The project development doesn’t end once you deliver the “initial” version to the client! The client will most likely need to continue expanding on it later. Adding new features, updating existing features, fixing bugs, …etc.
Now you may or may not be the one to do that, so he will have to find developers who are familiar with the tech stack you chose.
So if it’s very new (or very old), not commonly known, …etc, the client will struggle to find good developers to continue working on it.
2- How likely is it to keep being maintained & updated in 1 or 2 years? Very new stuff always have a higher risk of being abandoned compared to stuff that already has a big community & a lot of projects are using it.
So ask yourself, if support & further updates for this library stops, will it be a problem for the project?? If it’s a small library or tool, it’s likely not a big problem. But if it’s something like the framework you are using, the components library, the state management library, …etc, then yeah, it might be an issue.
3- The first time you use a new tool, you are very likely NOT going to use it right… Writing not-very-clean code, using incorrect patterns, doing some weird hacks for things you don’t understand, …etc.
This is usually very normal for any new thing you are using for the first time. But, there is a difference between doing this on your own personal/side projects, and between doing it on a client’s real project (where other devs will later continue on what you built)
Please understand that I’m not saying “you should not use new tools and only use what you are good with”, you won’t grow this way. But I’m saying that: You have to put the project’s short & long term interests before your own interests & preferences. That’s why the client hired you & is paying you for.
I know some may not like the sound of this, but it is what I see a responsible & professional developer would do in my opinion.
Until next time 👋
About Me
I'm a freelance web developer who specializes in frontend.
I have a special love for React. And my personal goal is: Building things that are Awesome! ✨
If you are someone who is building a project where high quality is a MUST, then Let's Chat! I'll be glad to help you with it.