Hey developers! 👨💻👩💻
Let's vote about our favorite front-end frameworks! This can help you and many other developers decide on which path to choose for their next project.
My favorite is React ⚛. I actually just started learning a few months ago and am liking it. However, Vue makes a close second because of how easy it is to start with.
It would be awesome if you could comment below 👇 about why you 💗 your framework/library.
Vue, easy to start with and even easier to maintain your code base.
Love, love, love Vue. I'm using it to build out all the front-end UI for Nodewood and it is very clean to build and easy to maintain.
I'm half-excited, half-terrified for Vue 3 to come out, honestly, because as easy as it is already, it's going to get even easier (a lot less to remember, a lot fewer hacks required). I want to offer the simplest and most-easily-maintainable framework I can, so I'm definitely going to spend some time converting to Vue 3 once it's out, even though that's going to take a bunch of time away from other features.
Hey, I agree that Vue is easier to start, but I really cannot make a decision between Vue and React, since looks like not only we could use React for web dev, but also for ios/android dev, right?
And this sounds like a big win for me.
Just a quick note, but React Native is the framework you are thinking of for ios/android development. React and React Native, at my last investigation, were not 1-to-1. Vue has similar tools to what React Native offers as well, if memory serves.
Anyway, good luck!
For vue i know of quasar to build hybrid apps, and you can use nativescript for something similar to react native. do you know of any other frameworks to build android/ios with vue?
Thanks! You too!
Totally agree with this 👍
and with Vue + Electron on top of mobile apps you can also do desktop apps. So I think it's more a matter of taste, because both framework are great (I'm using Vue personally)
Not sure I can call it a framework but Stimulus JS with a Rails Back End :)
After using Vue and React, Stimulus JS got my heart! I love its HTML approach.
99% of people using Vue/React here doesn't really need it. Big company does.
Keep it simple :)
Very well said. Actually, even big companies don’t need it because it’s an overkill and a humongous amount of technical debt that is hard to maintain.
For small teams with mid sized projects I recommend vanilla javascript with babel. Always!
ugh. as a CTO this gives me chills. If this is your jam on a personal project go for it, but I would never ever ever recommend this for a > 1 person tech team.
Honestly, this is exactly how the debt would talk.
Hit the messenger than the message. When you say things like 'personal project', '> 1 person tech team', you are effectively canceling your argument because in the parent it was specified for 'small teams' to begin with.
I'd argue that you don't need React even in large projects and there are solid examples of that in the wild including Github or this very website that you're commenting on.
Never heard that expression before. But if you’ve ever had a project that is growing quickly where you’re using garbage spaghetti js while trying to hire people and maintain as close to 100% uptime as possible you’d know where I’m coming from.
Completely agree!
I looked at Stimulus and got the impression that it doesn't handle lists (mostly because they just didn't mention it).
I agree that even Vue is probably too big of a library for me to be using, but stimulus actually looked harder to use as a solo developer.
Been a rails developer for a while and started using stimulus. it gets a little verbose in the markup w/ all the data-actions and data-targets, but you can get so much done with so little code as compared to other js frameworks. it's kinda surprising once u start using it how such a thin framework can do everything u need.
It feels very much an anti pattern. Basecamp way of thinking. Hope the dev community gets traction
Ma Man! Was going to comment on this. Drifting ruby is a good resource to learn Stim+Rails for anyone reading.
Never tried Drifting Ruby to lear Stim! Thanks for the plug!
Don’t forget the good old RJS 😁
I voted “other” because Svelte is not mentioned
My favorite dish -- spaghetti code with vanilla js flavor
(Just joking, voted for Vue)
Lol 😂 that's awesome
Elm. I'm always super surprised whenever a new poll like this is published and it's almost impossible to see people mentioning Elm among the replies. And it's surprising to me because of how vastly superior it is compared to any other frontend frameworks. I guess it's because of its functional nature ant its "weirdness"? But shockingly, is one of the easiest languages to learn because of its super small footprint. I've been coding for more than 20 years and if I had to choose a technology/language among all the ones I've tried during these years, I'd choose Elm hands down.
How do you deal with Elm and the benevolent dictator for life style open source management? I hear horror stories of the 0.18 to 0.19 transition where they removed a lot of features.
I don't really care. Actually, I gladly embrace any updates done to the core because refactoring a whole elm app is a breeze: the compiler guides you through the whole process and you just have to apply its suggestions until the app compiles. Elm it's still pretty young, being the latest version just 0.19, I expect it to change a lot, so any breaking changes are not surprising to me. And about the leadership, I totally trust Evan. He's a guy 1000 times smarter than me, and smarter than most developers. They proof is the amazing language he has created and no one has been able to create before. I think it's a good thing the people involved in the core development is short list of names. At least until they reach v1.0.
I never understood the criticism. IMHO the complaints would have made the language more instable and fragile, one of its strongest features.
Well I guess I found you 😂
I think that’s a great point you make. I’ll have to try Elm out this week. Thanks for the tip :)
Awesome! I really recommend you to try it. It may seem weird at the beginning, but once it clicks (and it does really fast), you never go back.
Here's a list of the best elm resources out there: https://github.com/sporto/awesome-elm
Cool! I’ll check it out.
I don't personally like the React API as it concerns to CSS and HTML, so upvote to Vue. HTML templates feel more natural as an old school web developer, instead of defining everything in JavaScript. Vue has way less dependencies, you can even use it in a <script> tag which is great for legacy projects. Vue is easy to do simple solutions, but once you graduate to anything but trivial apps, Vue gets complicated too, because then you are getting into why these frameworks were invented in the first place, for something simple use vanilla JS. But whatever floats your boat.
Totally agree with you. I'm used to that "old school way" because I sell HTML/CSS themes on buildfaster.co. Using that basic workflow makes coding much easier.
I really like Svelte
Yup, I think Svelte should have been in the list.
Dabbled with Angular a few years ago...not great. I recently picked up React and it has been a delight. Have you ever tried a framework/language and found it just "clicked" with you? That's been my experience with React. #fangirl lol
Awesome! Good for you 😄
React with TypeScript is just magic, I love it. I tried Vue and made some large apps in it too but I don't like it, it's not pure JS, it has all these concepts like plugin registering. I just want to import a file, I don't want to register anything. It also doesn't work as well with TypeScript as React, since React is pure JS, so that's why I like React more.
Nuxtjs and Nextjs for me. Simplicity and Power.
I tried both and they are cool and easy to learn especially Nuxt but are we able to build a proper mobile app from it ?
Both support PWA. PWA can easily be extended to TWA. PWA and TWA can be packaged in proper mobile app.
https://developers.google.com/web/android/trusted-web-activity
https://github.com/GoogleChromeLabs/svgomg-twa
That look very they even have a module, thank you !
(I've used these frameworks for years. Of the offering, Vue is my favorite.) Having said that, I have eagerly switched all of my development to rendering my pages out of Django.
So many reasons! As fun as it is to develop with these frameworks' flexibility, Django's MVC-esque environment scales so much better for me. Python is incredibly enjoyable (and would be easy to learn if you haven't written much code, btw). You still get pretty flexible template behavior: there isn't anything I could do with Vue/React/Angular that I haven't been able to make happen with Django. It's taken me maybe a few more minutes of tinkering with manipulating the dom via arrays at times, but overall there is far less hassle than I had assumed. Machine learning is also practically a drop-in feature as most of it is done in Python or R.
And finally, Google. I've spent the last year with Python and Django, so I don't keep track of if they are getting any better, but Google really struggled with SPAs when I was still writing in javascript frameworks. I mean really. It's fun to build sites now and have them be well-understood by Google.
P.S. Ruby/Rails is another setup I've had highly recommended to me.
P.P.S. I have a friend building a saas app in Haskell. Haskell. He loves it. Develop in whatever language you want! :)
Thanks for offering you experience @gohugo! Great advice 👏
You got it! Good luck with everything you're working on!
In a moment I hated React, now I love it, it was a hard learning curve from Jquery . I hope I can try another frameworks like Vue or Svetle
Yeah I think you should try VueJS. Very simple to setup an environment and has a highly loved by the dev community 🤗
haha thank you, I will
I see a few comments saying Vue is “easy to use”... could someone elaborate why? Because I find React to be pretty easy too but I’m interested in how Vue might be easier.
I think what they mean is that Vue is easy to setup. All you need is a CDN and you're good to go :)
I have been using React from last 4 years and I am really happy with it. It has even great eco system around it.
Angular because typescript, have everything I need, well maintained, less google looking for plugins that may work or not.
I prefer to use no framework at all if possible. I try to minimize my JavaScript code I write, if I need to, I use vanilla. Frameworks are for me more of a last resort and I only use them when they give me a large advantage.
Me as well, I use Babel so I can use Es6, if I have to use a framework, I use Vue. I don't lean on frameworks, but I do use libraries a whole lot, like axios, lodash, babel, only if needed.
Same, I love Pure JS and use it as much as possible :)
Angular is my go-to solution as I don't have to waste time looking for other stuff which is not I framework. Angular has everything prepackaged everything just works,
For careermove.io I used Next - server-side rendered React
I worked with all the above in the past 4yr.
But I will vote for "Svelte", it allowed me to create my own UI framework to build and share components and templates across projects and reuse them later with native js.
Vue is so easy!
Agreed 😄
I was wondering what do you think about Flutter? Specifically I'm interested to know if you would recommend going that route for my specific situation.
Some background: I'm going to pick up a JS framework soon (so far only JS basics) with the goal being developing apps (web + app store) for both my own projects as well as clients (freelancing).
Problem is few companies will actually use it
For mobile app flutter is great choice
Flutter just made so much more sense to me than a typical js framework.
Just voted for "other" because I'm still trying to decide. What do you suggest?
Nuxt - server side rendered Vue
Next - server side rendered React
I like vue more so Nuxt gets my preference.
I feel like if you want to use Vue, you should just use Nuxt to get more options.
Hey I just did my first SSR website with Nuxt and it was very cool but I am wondering, is there an "official" / "proper" way to convert it into a real mobile app ? Or should I switch to Next ?
Your already ahead of me lol. Haven't finshed a Nuxt app yet. But from what I know you cant use Next with mobile either, but you can use React Native. For mobile...I honestly think Flutter trumps all right now.
Oh thank I will check Flutter.
Hey Kida, I honestly think there is no wrong choice. I did a post related to this a bit ago with some great advice. I suggest you check it out:
https://www.indiehackers.com/post/the-ongoing-question-react-or-vue-79fdae38a5
React.
• enables unidirectional data flow that solves a lot of coordination problems (on the other hand data binding and event bus usually create such problems 😁)
• gives you components that are far better unit of decomposition (conventional separation of concerns is bullshit )
• gives you hooks that bring two worlds together (pure code vs code that produce effects on outside world)
Cool! I’m learning React right now. I’ve done a few posts related to it too.
Nice! You're on the right track.
Thanks!
I used Mithril on a recent project and really enjoyed it. It's like React, but smaller. It does the core stuff well without the bloat of all the stuff that you probably don't need. Id use it again.
I am using React for everything nowadays. I am more comfortable in it and I get things done faster and easier.
In the past, just plain jQuery + vanilla JS + CSS + HTML in Django templates, but they have their limitations and it gets harder to get cool stuff done in it.
Plus that I also need to build a Command Line Interface tool for my project and having just an API for the backend is faster to develop than Django views for the web app and a separate API for the CLI.
I've used Vue for the past couple years and really like it. The syntax is easy to use. I like having the .vue components with all the related code in one file, but still separated enough to keep things organized.
Lately though, with the introduction of Laravel Livewire & Alpine, I've been avoiding using Vue because it almost doubles the work, both front-end and back-end. It's easy to get caught up with JS. You start by adding a modal, and all of a sudden you're using Vuex and building out a full-fledged API 😆
Vanilla JS http://vanilla-js.com/
Fast, lightweight, cross-platform, 0 bytes zipped.
We have a winner hear 😂🏆
i've done some large projects on all of these... and they get the job done. vue is super-easy to get started, comparatively... large community too.
Yeah for sure :)
HTML+CSS, plus a little bit of JavaScript. Combine it with Red Goose to publish iOS and Android apps on the app store. 🥳
RedGoose looks cool! Nice job :)
Thank you!
It’s that beautiful indie hacking thing that I wanna go after with this. 🤟🏻
Nextjs + react is my fav.
Woo! Majority vote on React!
jk, I personally like React for its simplicity, component system and JSX of course. I remember from the old PHP days where you could write PHP code within HTML and it's kinda taking me back
We actually use Handlebars templates quite often: for email templates, standalone forms, but even together with jsx/React. It prove to be super future proof and portable - we literally moved a project from Perl to Java and others from php to Django, while the frontend more or less stayed the same.
Handlebars is a great secret! I’ve used it where I need the same template on the front end and on the back end (using node but doesn’t have to be). Change the template and I get the server side rendering and client side rendering kept in sync. To me much easier than learnings nextjs even though I do like React
I would have voted for Ember some years ago. At that time, Angular 2 made breaking API changes which upset the community, React still had some worrying licensing issues, and I didn't see any alternatives. I really enjoyed working with Ember for the next years to come.
Unfortunately it never got the popularity it deserved and I found it hard to license Ember code I wrote to clients as they weren't able to maintain it. Angular kept going strong and React was growing like crazy. So in the end, I moved towards React.
I have been using React for years now, and haven't ventured to try the trendiest new frameworks/libraries.
Gotta say the experience has improved dramatically. It used to be that I would have to do a lot of boiler plate or awkward things to make it work "the React way". But now it's very pleasant to work with.
Used to do vanilla frontend (if that's actually what its called) no framework just jQuery but started learning React a few months ago and can't see me going back to the old way, really like it
I use Ember because I've been using it for many years and it does a lot for you out of the box. The Ember of today is quite different from most of the outdated examples that you will find around the net, and it's gotten WAY better. I've used Svelte and Sapper, which are pretty nice, but they're early and need to mature a little.
Interesting. I'll have to try out Ember someday. Thanks for the tip :)
I'm a backend developer so my frontend skills are nowhere close to some in this thread... I still write server-side generate pages with some native JS here and there when I want to make a page dynamic.
I've written Portabella in React. Hoping to move to Preact soon but a couple things/libraries aren't compatible.
Definitely pain points with React but in general pretty enjoyable.
Svelte in my case.
But I'm going to learn Mint or ELM in my next project and see how good their are
I see a few people wondering what frontend framework to choose, and there are two articles I would encourage them to read…
The Cost of Javascript Frameworks — Web Performance Consulting: https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/
Great idea @braydentw! My personal favorite is Vue because it is super easy-to-use. Within the first few days, I was already developing my own apps!
This comment was deleted 4 years ago.
whoops 😅
This comment was deleted a year ago.
Yeah you should. I sometimes use it for projects and it's definitely worth it.