BACKEND:
- Python for the backend. Just a great, batteries included language that lets me do what I want fast and doesn't get in my way.
- Flask: a web framework for Python. There's Django too, but Django is no fun. Flask is small and exactly what I want.
- Pytorch: My DL framework of choice. Again, understandable, makes sense, and fastly iterable. No archaic nonsense (looking at you Tensorflow). Also of course pandas, numpy, scikit etc...
- Scrapy: pretty powerful scraping library
- PostgreSQL: classic
FRONTEND: I'm not a frontend guy, but it's a necessity, so I go with the simplest.
- Bootstrap: Lots of templates, easy to understand. I'm not entirely happy with it though; I wanted to try Tailwind.css for my next project
- Simple, custom Javascript. No complex frameworks. I barely understand JS; I don't want to use a framework until I feel comfortable with bare JS.
DEPLOYMENT & OTHERS:
- Heroku: a bit expensive but so simple. Removes all the hassle. I don't think deployment is fun, so Heroku is my friend.
- Google Analytics: I don't want a lot of analytics, and GA just works. I do want to move to a more privacy friendly choice.
- Uptimerobot for detecting problems. Simple, works, free.
With this tech stack I feel really comfortable, I can iterate on all layers, and I really do have fun developing on it. I can shoot out an MVP for most projects in a week.
Here's some stuff I've built with this:
https://www.namy.ai (still building it, especially improving the AI model right now)
https://www.hugomontenegro.com
My biggest gripe in this tech stack is bootstrap, but I think despite of that and me not being a frontend engineer I still managed to give the sites a bit of a non-generic flair.
Happy to answer any comments!