Current Tech Stack
I like to experiment with technologies, but the last year I found that if you want to build ideas more quickly it's better to stick to one stack and build a solid foundation in it. Even within your stack, there is enough room to try different things out.
Quick Overview of My Current Tech Stack
- NextJS - Frontend
- Backend - Python / FastAPI
- Backend Services (eg. Storage, Authentication) - Firebase
NextJS is more of a framework where React is a library. A framework forces you more in a structure. A library you can implement the way you want. This might feel like a downside for NextJS but in my experience, it takes away a lot of the "Am I doing this right?" feeling. It also becomes easier to get into other people's codebases because the structure is generally the same.
NextJS takes away a lot of overhead. It has routing built-in, no need to specify a router in your project. You can also specify different ways of fetching data. It has Server Side Rendering and static rendering built-in.
Python w/ FastAPI
For my back-end, I like to use Python. I like Flask, but lately, I have been using FastAPI. It's based on Flask but it has a lot of extra features. It forces me in a habit of documenting my code which is something I do less often on my personal projects.
But it's better to have some proper documentation if I can back after a long time. It's a good mix between the rigidity of Django and the freedom of Flask.
I've never been a fan of using off-the-shelf products. I'd always like to set up my own things. Be in control of everything and maintain everything myself. The predictability of costs was also a huge factor.
But recently I’ve seen the added value of using third-party services to shave off development time and get products out there quicker. If any of them grow big enough that bills could be a problem I can always change it up later. But if the goal is to validate an idea, it’s better to get them out faster. And in the long run, I also save a lot of time not having to maintain anything.
Firebase is an ideal platform because it provides a lot of features that otherwise would be spread over multiple services. Database? Firestore. File hosting? Cloud Storage. Website Hosting? Firebase Hosting! And the developer experience of implementing authentication becomes a breeze with Firebase Auth. I’m still not a big fan of the vendor lock-in. But in terms of building software, it’s a winner.
Bringing It All Together with DivJoy
One of the purchases I made this year was a DivJoy license. DivJoy is great to get a project set up in a matter of minutes. The code is of good quality. And they are actively working on new features. I’m personally looking out for the Tailwind integration.
A few years ago I would've thought that spending 200 euros on a template that I could build myself was insane and a total waste of money. This year I started to value my time. Even if I would’ve valued my time at 10 euro an hour, DivJoy already saved me multiples of that.