Ask HN: What framework/tools to use to build front end in 2023?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • core

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. (by vuejs)

  • I'm for Vue/Nuxt. While reading React code is fine, I found it easy to shoot myself in the foot (causing circular effects or getting no reactivity) in a way Vue didn't. Vue feels more explicit. I like React's TSX for embedding HTML, but Vue's splitting of model and view appeals to me. I'm torn on that one.

    Vue's ecosystem isn't as big, but it's an established framework. Both React and Vue feel easier to work with than Angular. RxJS is really cool, but also very comprehensive, making it difficult to keep the entire API in mind. At least for me, who only use it casually (used to use it more while at Google.) And on top of that, I have to know the Angular API. Angular used to be great for Material Design, but I nowadays there are MD packages for all systems.

    Nuxt is for Vue what Next is for React: SSR and SSG. It adds auto-imports, which is nice. At this point, I see no reason to use Vue alone, since there's always something that can be pre-rendered. Perhaps the frontpage, or help pages. Since Vue itself provides entrypoints for SSR, Nuxt is more of a file-structure based router that just simplifies things. The documentation is a bit sparse on e.g. the difference between a plugin and a module, and I usually resort to navigating their source to understand things. That might not be everyone's cup of tea.

    If what you're writing is a web app, there is also Quasar, built on top of Vue. Similar to Nuxt in that it ties in directory structure, build system and MVC framework. It is also a Material Design UI widget library. Their selling point is that you can build mobile apps, and web apps with the same library. I.e. like React Native. I felt it strays too far away from the core simplicity of Vue, unlike Nuxt, but it's no doubt a very capable framework.

    Finally, I'm currently using PrimeVue as the UI widget/theming library on top of Vue. It's okay. :\ Switched to it when the Vue Bootstrap project decided to to support Vue 3 (or whatever the situation was.) I haven't come across anything that's actively broken or missing. The companion library PrimeFlex provides layout CSS. Annoyingly, they've decided to close GitHub FRs, and some (far from all) bugs, and just keep track of them internally. Makes it more dificult to communicate, but I don't know their reasoning behind it (they didn't respond when I asked.)

    * https://vuejs.org/

    * https://nuxt.com/

    * https://vitejs.dev/

    * https://primevue.org/

    * https://primeflex.org/

    * https://quasar.dev/

  • vite

    Next generation frontend tooling. It's fast!

  • I'm for Vue/Nuxt. While reading React code is fine, I found it easy to shoot myself in the foot (causing circular effects or getting no reactivity) in a way Vue didn't. Vue feels more explicit. I like React's TSX for embedding HTML, but Vue's splitting of model and view appeals to me. I'm torn on that one.

    Vue's ecosystem isn't as big, but it's an established framework. Both React and Vue feel easier to work with than Angular. RxJS is really cool, but also very comprehensive, making it difficult to keep the entire API in mind. At least for me, who only use it casually (used to use it more while at Google.) And on top of that, I have to know the Angular API. Angular used to be great for Material Design, but I nowadays there are MD packages for all systems.

    Nuxt is for Vue what Next is for React: SSR and SSG. It adds auto-imports, which is nice. At this point, I see no reason to use Vue alone, since there's always something that can be pre-rendered. Perhaps the frontpage, or help pages. Since Vue itself provides entrypoints for SSR, Nuxt is more of a file-structure based router that just simplifies things. The documentation is a bit sparse on e.g. the difference between a plugin and a module, and I usually resort to navigating their source to understand things. That might not be everyone's cup of tea.

    If what you're writing is a web app, there is also Quasar, built on top of Vue. Similar to Nuxt in that it ties in directory structure, build system and MVC framework. It is also a Material Design UI widget library. Their selling point is that you can build mobile apps, and web apps with the same library. I.e. like React Native. I felt it strays too far away from the core simplicity of Vue, unlike Nuxt, but it's no doubt a very capable framework.

    Finally, I'm currently using PrimeVue as the UI widget/theming library on top of Vue. It's okay. :\ Switched to it when the Vue Bootstrap project decided to to support Vue 3 (or whatever the situation was.) I haven't come across anything that's actively broken or missing. The companion library PrimeFlex provides layout CSS. Annoyingly, they've decided to close GitHub FRs, and some (far from all) bugs, and just keep track of them internally. Makes it more dificult to communicate, but I don't know their reasoning behind it (they didn't respond when I asked.)

    * https://vuejs.org/

    * https://nuxt.com/

    * https://vitejs.dev/

    * https://primevue.org/

    * https://primeflex.org/

    * https://quasar.dev/

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • Quasar Framework

    Quasar Framework - Build high-performance VueJS user interfaces in record time

  • I'm for Vue/Nuxt. While reading React code is fine, I found it easy to shoot myself in the foot (causing circular effects or getting no reactivity) in a way Vue didn't. Vue feels more explicit. I like React's TSX for embedding HTML, but Vue's splitting of model and view appeals to me. I'm torn on that one.

    Vue's ecosystem isn't as big, but it's an established framework. Both React and Vue feel easier to work with than Angular. RxJS is really cool, but also very comprehensive, making it difficult to keep the entire API in mind. At least for me, who only use it casually (used to use it more while at Google.) And on top of that, I have to know the Angular API. Angular used to be great for Material Design, but I nowadays there are MD packages for all systems.

    Nuxt is for Vue what Next is for React: SSR and SSG. It adds auto-imports, which is nice. At this point, I see no reason to use Vue alone, since there's always something that can be pre-rendered. Perhaps the frontpage, or help pages. Since Vue itself provides entrypoints for SSR, Nuxt is more of a file-structure based router that just simplifies things. The documentation is a bit sparse on e.g. the difference between a plugin and a module, and I usually resort to navigating their source to understand things. That might not be everyone's cup of tea.

    If what you're writing is a web app, there is also Quasar, built on top of Vue. Similar to Nuxt in that it ties in directory structure, build system and MVC framework. It is also a Material Design UI widget library. Their selling point is that you can build mobile apps, and web apps with the same library. I.e. like React Native. I felt it strays too far away from the core simplicity of Vue, unlike Nuxt, but it's no doubt a very capable framework.

    Finally, I'm currently using PrimeVue as the UI widget/theming library on top of Vue. It's okay. :\ Switched to it when the Vue Bootstrap project decided to to support Vue 3 (or whatever the situation was.) I haven't come across anything that's actively broken or missing. The companion library PrimeFlex provides layout CSS. Annoyingly, they've decided to close GitHub FRs, and some (far from all) bugs, and just keep track of them internally. Makes it more dificult to communicate, but I don't know their reasoning behind it (they didn't respond when I asked.)

    * https://vuejs.org/

    * https://nuxt.com/

    * https://vitejs.dev/

    * https://primevue.org/

    * https://primeflex.org/

    * https://quasar.dev/

  • primevue

    Next Generation Vue UI Component Library

  • I'm for Vue/Nuxt. While reading React code is fine, I found it easy to shoot myself in the foot (causing circular effects or getting no reactivity) in a way Vue didn't. Vue feels more explicit. I like React's TSX for embedding HTML, but Vue's splitting of model and view appeals to me. I'm torn on that one.

    Vue's ecosystem isn't as big, but it's an established framework. Both React and Vue feel easier to work with than Angular. RxJS is really cool, but also very comprehensive, making it difficult to keep the entire API in mind. At least for me, who only use it casually (used to use it more while at Google.) And on top of that, I have to know the Angular API. Angular used to be great for Material Design, but I nowadays there are MD packages for all systems.

    Nuxt is for Vue what Next is for React: SSR and SSG. It adds auto-imports, which is nice. At this point, I see no reason to use Vue alone, since there's always something that can be pre-rendered. Perhaps the frontpage, or help pages. Since Vue itself provides entrypoints for SSR, Nuxt is more of a file-structure based router that just simplifies things. The documentation is a bit sparse on e.g. the difference between a plugin and a module, and I usually resort to navigating their source to understand things. That might not be everyone's cup of tea.

    If what you're writing is a web app, there is also Quasar, built on top of Vue. Similar to Nuxt in that it ties in directory structure, build system and MVC framework. It is also a Material Design UI widget library. Their selling point is that you can build mobile apps, and web apps with the same library. I.e. like React Native. I felt it strays too far away from the core simplicity of Vue, unlike Nuxt, but it's no doubt a very capable framework.

    Finally, I'm currently using PrimeVue as the UI widget/theming library on top of Vue. It's okay. :\ Switched to it when the Vue Bootstrap project decided to to support Vue 3 (or whatever the situation was.) I haven't come across anything that's actively broken or missing. The companion library PrimeFlex provides layout CSS. Annoyingly, they've decided to close GitHub FRs, and some (far from all) bugs, and just keep track of them internally. Makes it more dificult to communicate, but I don't know their reasoning behind it (they didn't respond when I asked.)

    * https://vuejs.org/

    * https://nuxt.com/

    * https://vitejs.dev/

    * https://primevue.org/

    * https://primeflex.org/

    * https://quasar.dev/

  • nuxt

    The Intuitive Vue Framework.

  • I'm for Vue/Nuxt. While reading React code is fine, I found it easy to shoot myself in the foot (causing circular effects or getting no reactivity) in a way Vue didn't. Vue feels more explicit. I like React's TSX for embedding HTML, but Vue's splitting of model and view appeals to me. I'm torn on that one.

    Vue's ecosystem isn't as big, but it's an established framework. Both React and Vue feel easier to work with than Angular. RxJS is really cool, but also very comprehensive, making it difficult to keep the entire API in mind. At least for me, who only use it casually (used to use it more while at Google.) And on top of that, I have to know the Angular API. Angular used to be great for Material Design, but I nowadays there are MD packages for all systems.

    Nuxt is for Vue what Next is for React: SSR and SSG. It adds auto-imports, which is nice. At this point, I see no reason to use Vue alone, since there's always something that can be pre-rendered. Perhaps the frontpage, or help pages. Since Vue itself provides entrypoints for SSR, Nuxt is more of a file-structure based router that just simplifies things. The documentation is a bit sparse on e.g. the difference between a plugin and a module, and I usually resort to navigating their source to understand things. That might not be everyone's cup of tea.

    If what you're writing is a web app, there is also Quasar, built on top of Vue. Similar to Nuxt in that it ties in directory structure, build system and MVC framework. It is also a Material Design UI widget library. Their selling point is that you can build mobile apps, and web apps with the same library. I.e. like React Native. I felt it strays too far away from the core simplicity of Vue, unlike Nuxt, but it's no doubt a very capable framework.

    Finally, I'm currently using PrimeVue as the UI widget/theming library on top of Vue. It's okay. :\ Switched to it when the Vue Bootstrap project decided to to support Vue 3 (or whatever the situation was.) I haven't come across anything that's actively broken or missing. The companion library PrimeFlex provides layout CSS. Annoyingly, they've decided to close GitHub FRs, and some (far from all) bugs, and just keep track of them internally. Makes it more dificult to communicate, but I don't know their reasoning behind it (they didn't respond when I asked.)

    * https://vuejs.org/

    * https://nuxt.com/

    * https://vitejs.dev/

    * https://primevue.org/

    * https://primeflex.org/

    * https://quasar.dev/

  • Svelte

    Cybernetically enhanced web apps

  • Svelte/SvelteKit is currently killing it in increasing popularity. It is easy to learn and fixes design patterns around some of React's hard to learn and long to type patterns like state management and reduction, and integrated server-side rendering.

    I recommend to take a look

    https://svelte.dev/

    Naturally it is smaller and newer than React. But innovation is born from the fact people want to make something better than React.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts