If you are using a web stack that you think might be one of the most enjoyable and fun, what is it?
I think it's "fun" because I have I don't have to deal with "how" something works. My perspective instead is "how" I can implement it. Chances are there is also a nuget package, dll, or some api out there for the same boring CRUD app we're doing so it helps expose me to more things even easier.
That all being said, when things don't work, it can be a royal PITA.
Keeping it super simple on the frontend keeps it enjoyable / fun by avoiding React. HTML with templating or Vue is great to move quickly and not get bogged down in technical detail and just create/design.
With that in mind, my opinion is that all these web stacks have made things worse. I've been on multiple projects now where it was the web framework that put the project in jeopardy of missing the deployment deadline.
I have found just using Javascript, HTML, and CSS to actually be more productive and maintainable if one knows what they're doing.
I've also found it's actually better to separate the front end and back end. The front ends I develop are completely independent of the back end and can simply be dropped onto any server that provides the required API.
For me personal hell is a giant stack that I barely understand, a stack that I'm very slow to iterate on, a stack that has 9999 exceptions and custom rules and "quirks" that I need to remember and work around. This is infuriating, and definitely not fun.
So then what's fun? For me it's something small, fast, something that's no hassle and that lets me put my ideas into practice. Something that makes sense, something that I can have a complete mental model in my head and modify it in practice as fast as I modify that model in my head.
For me, the closest thing is:
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...
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 a few things I've built/am building with this:
https://www.namy.ai https://www.hugomontenegro.com https://www.remindy.me
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.
P.S.: This got too long, but I got over excited with the topic :)