If you don't care too much and don't have experience yet, why not go for native browser and HTML/CSS/JavaScript?
Even if you eventually migrate to other web UI libs and frameworks, the foundations knowledge will be useful.
If you don't care too much and don't have experience yet, why not go for native browser and HTML/CSS/JavaScript?
Even if you eventually migrate to other web UI libs and frameworks, the foundations knowledge will be useful.
Aye. K.I.S.S. has been forgotten in frontend. Its so simple to make basic sites. No need for huge ass frameworks or complicated build pipes most of the time.
why not go for native browser and HTML/CSS/JavaScript?
I guess because you end up rewriting a lot of stuff manually, rather than going for tried-and-true solutions that work out of the box? I mean isn't that the same as every framework, regardless if we're talking JS or frontend or backend or whatever. I mean I use a framework in the backend as well, I'm not about to roll my own routing system and manually listening to a socket and everything.
I totally get the sentiment of KISS, but if you know that your site will not be super simple and will need interactivity and the possibility of complex workflows, isn't the raw HTML/CSS/JS kinda limiting? That's the impression I'm getting from what I've read online.
But you (almost certainly) started using those backend frameworks after you had experience. You learned the basics first, and then incorporated frameworks when you got to larger projects.
I came here to say the same thing as the original reply in this thread, albeit with slightly different justification:
If you don't know the basics, and can't build a functional site with just HTML/CSS/JavaScript, all of the frameworks will be a nightmare. You should really learn those first, even if it means building a practice site, or completely rebuilding your frontend when you decide to use a framework.
The frameworks can make your life easier, but there's a learning curve, and a huge cognitive burden especially when you are just starting. You'll fight them more than work with them at the start.
That all said, never use what's "hip" on the frontend. JS frameworks typically have the lifespan of a house fly. React is one of very, very few that has remained popular, and continued to get updates for a long time (at least in JS framework terms). It's a solid choice with a huge community, good docs, good tooling, etc. There may be other valid choices, but seriously - avoid anything new and flashy, because that usually just means its deficiencies haven't been found yet, and as soon as they are, there will be a new framework.
I don't know what you're looking for, and what your "not super simple" is, but baseline browser tech provides various controls, layout mechanisms, styling, interactivity, etc.
Do you have a concrete idea of what and where specifically you hope for gains by using frameworks? Do you plan to hold a lot of state on the client that needs state separated from the DOM and its mechanisms? Do you want a standard library of styled components instead of using the native ones or styling them yourself? Do you want more robust JavaScript? Those are all very different concerns and requirements.
I like the low complexity, low barrier, low requirements of baseline web tech. The native html form controls may arguably look "ugly", but those can be styled, individually or through a style-only CSS lib.
First get the basics with HTML and CSS. Learn JavaScript then Typescript. Figure out if you want to learn SaSS, styled components (for JavaScript based applications), or a library like Tailwind. Do YouTube searches and research on React, Vue, and Angular. See which one gels with you.
I suggest Udemy for that and if you're interested I can suggest specific teachers.
If you or your company are hiring UI/UX developers then DM me, hopefully then I'll train you myself.
As a backend dev, this is the way. HTML + CSS + Vanilla JS goes a looong way.
Sorry, I should've made myself clearer. I am an experienced backend developer but I know basic HTML, CSS and JS/TS. My problem is not with learning the basics of these foundational technologies, or learning anything actually. My problem is what should I even learn and what is a good stack-choice, taking into account not just my own enjoyment and what is popular/cool, but futureproofing and maintainability as well. I don't have time to go through all frontend frameworks. There are simply too many and it is not an exercise I find enjoyable.
Well there is no silver bullet. My two cents is React, but that drives people nuts. Pick one of the big three (React, Angular, and Vue) and then start practicing.
My two cents is React, but that drives people nuts.
Could you elaborate on why you think it drives people nuts? And why you are recommending it despite that? Genuine questions, just looking for some reasoning as I have no intuition in this area myself.
The negative feedback I get from more engineer minded people (I'm more design minded) is that the library is bloated and its features are convoluted. When it first came out and it was completely class based components that was confusing to me. Now the library is focused on functional components which makes it more intuitive in my opinion. With that said React is my bread and butter.
more engineer minded people (I’m more design minded)
I'm definitely more engineer-minded, but that is another thing I'm having to deal with in my frontend journey here 😅. Figuring out how to code a UI is one thing, but figuring out what the UI should even look like to begin with is a whole other thing. A thing I'm very uncertain about still. Were you always design-minded or was it something you learned? I feel like I was always engineer-minded and backend came very naturally to me.
I'm a visual thinker and I love art. I picked up coding 10 years ago for survival purposes (I'm currently unemployed). What you need to understand about frontend development is that everything being rendered on screen as DOM elements are fancy looking blocks on a grid. Key value pairs never go away, they just get a coat of paint. There are best practices such as making sure not to put #000000 text on a #ffffff background and some fancy CSS tricks to make things visually appealing. You need to translate brand guidelines and designs into variables so you can template out as much as you can for reusability. Using the ANDI browser extension will check your DOM for accessibility so people with screen readers and poor eye sight will be able to use your app.
Dear god someone give me a job.
As a frontend dev working my way to the backend, I would probably say a stack of React/Vue, Typescript, and SASS. These are industry standards (or at least, as standard as you can get with such a fractured ecosystem). And/or: learning the ins and outs of an ecommerce platform for theme development, like Shopify or BigCommerce. In terms of frameworks, I prefer Vue because it's a little higher level than React and translated well from vanilla JS.
What’s your goal?
I think building something with what you know should be a good start. Then look into the different frameworks and determine which is the best for your use case to convert it. Definitely overkill.
All that to say, just jump in and pick one.
The most future proof web tech is not using frameworks and libraries at all.
Render native HTML controls.
I also assume it's lower barrier than any of the libs and frameworks you could use, which is always a subset of web tech with the addition of their own concepts.
Using 'raw' JS/CSS/HTML is a coveted skill. A lot of people forgot and/or never learned how to do that. Those over engineered frameworks are essentially a form of premature optimization, and in many cases obsolete because modern browsers already implement their whole reason for existing.
Using ‘raw’ JS/CSS/HTML is a coveted skill.
I can do this, how can I cash in?
It just doesn't seem like best practice to do raw JS/CSS/HTML from what I read online? I get that for maybe small sites where you just need mostly static pages, that might be fine, but if you want any complexity and flexibility, isn't raw JS/CSS/HTML sort of limiting? I.e. you'd end up doing lots of complicated stuff that you'd build yourself instead of using a framework.
Web components exist.
What's "complicated stuff"? Your business logic will probably be complicated regardless of what you use. A framework will just add a few more layers of complexity and introduce a (usually fragile) build process.
Idk what you're trying to build, but from this:
I “just” want to build a pretty standard, responsive, modern-looking UI. Ideally without too much boilerplate,
It doesn't sound like you need a framework. Want responsive? Learn how to use flexbox. Want a "modern" look? Learn design, or find some CSS templates to start from.
If you're trying to make a SPA (which a lot of beginners/insane people seem to think is a good default, which it definitely is not), then a framework might make it easier, or it might not. It depends on what you're building. You may be able to use HTMX with a light sprinkling of JavaScript, or may need a full-blown batteries-included framework.
So. What are you building?
Just wait until you come across an open source website you get excited about and then dig into their code and figure out how they did things. Don't look at weird abstract specs of frameworks, look at the things people make with them!
I recently got very excited about revanced.app
I’m also a backend dev that hates how many frameworks there are. At my last company i built a small tool and chose svelte. I’m glad i did. It is so easy for a backend dev to learn in comparison to react or angular or vue. I wouldn’t touch those three with a 50 ft poll in this day and age. There’s several good articles on why in the !webdev@programming.dev community a few days ago.
https://programming.dev/post/39156162
https://programming.dev/post/39374784
I would choose HTMX, Astro, Quik, or Sveltekit. I really like svelte, and it’s been at the top of stack overflow’s “beloved” chart for several years now. It really is a joy to use compared to react or angular (at least for a backend dev like me). I know they’re not nearly as popular, but using react is like using J2EE, you don’t need it, like 99.99% of the time.
I'll jump on the bandwagon and say that while I haven't used Svelte or Quik, I have used React, NextJS, and a lot of older tech like AngularJS, ASP, PHP, JSP, JQuery, YUI, vanilla JS, ...
I agree. React is over-engineered, and tries to solve the same thing Angular does: optimize for the most efficient DOM updates possible. As a result, your code is compressed into hard-to-debug pretzel shapes. Its cousin, NextJS, confuses front and backend in such a way that you'd need to be experienced with the separation before being able to navigate it. Neither is starter tech by any stretch of the imagination.
I've dabbled a bit with HTMX. I really like this one since it more closely resembles the dynamic web we had before JS and heavy-clients took over. You wind up with a lot more chatter between the browser and server, but each of those conversations can be engineered (more or less) in isolation from the rest of the app. Meanwhile, you avoid round-trips that update the entire page - the very thing that these other stacks try so hard to avoid. You can build an HTMX application one component at a time, instead of all-or-nothing. This makes troubleshooting a lot easier, so it's likely an easier place to start.
I am also not a frontend dev, but you got me curious, so I did a little digging. Sounds like if you think you may ever turn it into a mobile app, choose React. Otherwise flip a coin between Vue or Svelte.
Front end is such a wasteland of overdoneness now. It used to be fun :/
Try Svelte
Maybe you are looking for a component library, something like Bulma or Bootstrap, rather than a JS framework. Your primary problem may be design, UX layout and learning basic CSS/HTML.
But if you want one of the lighter frameworks, I'd try Vue. But it is increasingly possible to do stuff without a framework, especially if your needs are not too complex. I'd start by looking into Vite, and use one of its simpler templates. You may want to select typescript instead of JS if you get the option.
Also... when you say "Frontend" we don't know if you're going to do a visualization-rich 3D application with touch gestures, or a business CRUD applications with lots of forms and tables and paginated lists filtered server-side, or a content-heavy web page with lots of articles to read...?
Devographics has been running these popular "State of X" surveys (State of JS, State of CSS, etc) that have been useful for tracking trends in frontend framework usage:
https://www.devographics.com/
https://stateofjs.com/en-US
https://stateofcss.com/en-US
https://stateofhtml.com/en-US
https://stateofreact.com/en-US
The StackOverflow survey is also somewhat useful:
https://survey.stackoverflow.co/2025
Welcome to the web development community! This is a place to post, discuss, get help about, etc. anything related to web development
Web development is the process of creating websites or web applications
Some webdev blogs
Not sure what to post in here? Want some web development related things to read?
Heres a couple blogs that have web development related content