HACKER Q&A
📣 kirso

What framework should I learn?


In 2024, if you have a good grasp of HTML/CSS/JS without the need for a job and disregarding the # of job postings - what is the best way to get going building full-stack web app?

I've never built a production ready app before and there is still a lot to learn about databases, deployments etc. But I also don't want to spend 5 years to ship a CRUD app with some API fetching and forms.

Any tips would be appreciated!


  👤 martinbaun Accepted Answer ✓
If it is not for employment right now, I'd say some basic server side rendering + HTMX. This will probably be one of the "hot" tech stacks in 2-5 years. The reason is simply, fast rendering and easy to make and use.

For server side rendering, you can go with something simple like expressjs, flask or even... Wordpress -_X Yes I did just say that.


👤 alecsm
I know people around here won't like it but Symfony is a pretty solid choice. It just works. You don't need fancy servers, weird deployments, etc.

You can create monoliths, miroservices, APIs, it works with almost any DB, it has a good performance, etc.


👤 PaulHoule
A lot depends on what kind of app you want to build.

For my current side projects I am interested in two kinds of technology.

(1) ML-enhanced apps that involve sorting and classifying content. Here I am drawing everything in the back end and using HTMX to partially update the screen to, for instance, create modal dialog boxes. The point here is that I want to quickly add new UI tasks and it will not be so quick if a front end build process is involved. (Notably in my system you can roll out a new task on the back end without reloading the front end)

My back end is Python which I am souring on. The basic problem is that it does not have threads. So if I have a 1GB ML model and a celery with 32 processes I could waste memory with 32 copies of the model. There are ways of working around all this but if I was just using Java, one copy of the model could be shared by any number of threads. Java doesn’t have the ML libraries though. As it is I think adding another RAM stick will solve my problems but that’s not a good answer for a system with a lot of users.

The general principle here is that the vast majority of React apps are just ordinary form processing apps that could be developed using the methods we used back in 1999 and seem to have either forgot or never learned (if we are young.). You could make the case that DX and UX were better then.

(2) Virtual reality applications using

https://aframe.io/

here there is no back end. With these tools you can make a world that is browsable with an ordinary web browser but put on a VR headset and you are there. This is another counter to the boring React app because it is something you could never do with an frontendless site.


👤 runjake
I like the idea of pitching Ruby on Rails. It’s relatively easy to grasp and contains everything including the kitchen sink.

The thing I’ll share is that I have a day job and kids. I learned JavaScript and then started learning a JS framework.

The problem I had was that by the time I was able to become proficient in a framework, it was on its way out and there was some new thing.

I still do a lot of JS with Node and Express and Fastify but I’ve stopped bothering with further frameworks until I have a firm requirement for one.


👤 austin-cheney
If not for employment then just learn docker. That’s it. The rest you can build yourself and once you have it written you can repurpose it for any project. When you have the pieces you need as static libraries ready to be dropped in like LEGOs your CRUD app will perform faster and scale in ways you could not imagine before.

Otherwise the only purpose to JS frameworks is either attaining employment or because you cannot write original architecture.


👤 ravirajx7
If you are coming from Java Background with some basic understanding of JavaScript/Typescript you should try using Spring framework with React. Try reading blogs from Baeldung.com[1] which provides lots of different articles on how you can use spring for your particular use case.

[1] https://www.baeldung.com/spring-tutorial


👤 eddd-ddde
Personally I believe Qwik is the future. You don't see many frameworks talking about resumability. With Qwik you get instantly interactive web apps without eagerly loading tons of JavaScript.

👤 uptownfunk
Go/Gin React PostgreSQL

👤 precompute
I like HTMX / babashka, although it's a bit bare. Hiccup is amazing.

👤 barrenko
Rails. Maybe even forget frameworks and just get good at HTML / CSS. We need more experts.

👤 constantinum
Django, amazing documentation, and great community

👤 mooreds
Yeah, I'd use Ruby on Rails for a webapp. So productive.

👤 brudgers
Ruby on Rails.

Good luck.