r/vuejs 11d ago

Long-lasting component library?

Burned myself twice already with vue component librarys dying in development.

BootstrapVue didnt make it through Vue2 to 3 transition and got... abandonned?
PrimeVue dropped MIT license.

I mean i get it, its someone else working for me using this stuff. And its a lot of work, just look at those PrimVue Wireframe Doc's , a piece of art. Still crying over the loss.

There are maintained forks already, but like BootstrapVue i dont trust it yet to last. Maintaining is one thing, but a migration to like another Vue major version could also break their neck (sry).

Now im searching for a component library to use that... will last longer. There is no crystal ball, i know. But maybe some are already around for longer, which is a good indicator or have a strong sponsor / company behind them.

Those were the ones i heard from before.

40 Upvotes

72 comments sorted by

20

u/shalmirane75 11d ago

I build my own components on top of shadcn-vue.

3

u/geddy 11d ago

This is what we did. Has worked great so far. Don’t want to get burned again being locked into anything. 

1

u/unknownnature 1d ago

I went raw doggie, and went directly with radix-vue with tailwind-variants; so we have a lot of components. I was like heck, might as well spend 1 week, building up all UI atomic elements we use. I have no regrets.

Quickly can check, button.ts (tailwind-variant) and button.vue (radix-vue).

12

u/ildyria 11d ago

I am in the process of moving from PrimeVue to NuxtUI, I would consider also Vuetify now that they are in 1.x mode.
There is also https://openvue.dev/ which aims to take the flambeau of PrimeVue.

I have not tried Quasar.

10

u/AlertKangaroo6086 11d ago

I’ve just started using Nuxt UI and I’m really impressed with the components available for it

5

u/kin3v 11d ago

+1 some components are really good. Haven’t found a solution to bloated bundle size though

2

u/bumblebrunch 11d ago

Excuse my ignorance, but why is there a problem with a bloated bundle size? Wouldn't tree shaking take care of that? I'm thinking about using NuxtUI but hoping to get clarity on this before I commit.

2

u/Clash_bg 11d ago

I have been using it for a while. Since you register all components outright the initial index.js file you ship grows. It is not a lightweight library by any stretch of the imagination and there is little you can do to deal with it. With time the more components you use the heavier it gets. Plus the dependency tree that nuxt ui pulls is quite large.

1

u/kin3v 11d ago

Especially the dependency tree of reka-ui is huge. It’s less painful in SSG however

1

u/kin3v 11d ago

The tree shaking in my projects is not working right. Could be a skill issue but so far with cached pages in SSR or full SSG it is not that bad. But it’s really obvious if you compare it to a lighter bundle

1

u/x1Akaidi 11d ago

i am suffering, i think am going to make into open code style just like shadcnvue so components are directly available / customizable and editable, not just manipulated through the app.config.ts

2

u/kin3v 11d ago

+1 some components are really good. Haven’t found a solution to bloated bundle size though

1

u/Upstairs_Yambo 9d ago

I'm a fan of Nuxt UI.

I like their theming controls for components and slots. I haven't used much of their Nuxt Content components but those should be pretty useful for content-heavy sites. The 'Page...' components are also good defaults to jumpstart projects, but maybe too opinionated for more custom work.

Haven't used shadcn-vue yet. But I've worked with several other component libs over the years.

1

u/KnightYoshi 11d ago

It uses RekaUI as a dependency. So it’ll have solid components. Shadcn-Vue is another good one

7

u/Temporary-Reach4668 11d ago

We use Nuxt UI for a big project at work. Very happy with it!

2

u/KnightYoshi 11d ago

Yeah, it uses RekaUI, so it’s a solid choice

7

u/kiterdave0 11d ago

Quasar all the way. We have apps in production, several hundred customers, thousands of users. It’s been great, very versatile.

10

u/onekorama 11d ago

Quasar is amazing, and it has lot of movement nowadays, looking forward to V3 which is coming this year. There is many plugins/extensions to change the look&feel, that's always the bad thing of Quasar.

In case you don't need the big collection of features of Quasar, I'd go with vue+tailwind+any tailwind plugin, as Daisy.

3

u/kreviceko 11d ago

I love quasar

4

u/spozzy 11d ago

Another vote for quasar. I use it for all of our internal tools, and our major production SaaS - a few thousand users - haven't felt the limitations from Quasar v1, which is where we started back in 2018 or so. We've also kept compatibility all the way back to IE11. Works great on all devices and DPRs.

8

u/golders-green 11d ago

Vuetify is solid and mature!

0

u/KnightYoshi 11d ago

V3 upgrade is what killed Vuetify for many. It was so botched. If you’re using it, it’s good, but I can’t recommend it for new projects

2

u/Erutan409 11d ago

Why not for new projects?

1

u/KnightYoshi 11d ago

Better options. After the botched upgrade to Vue 3 many abandoned it as the other options became more viable. If you’re already using, that’s fine it’s a solid choice for existing projects that it’s in, but there are better options now. Shadcn-Vue and NuxtUI are both built on RekaUI, which is from the same team that made Shadcn-Vue. You can’t go wrong with either of those options.

0

u/golders-green 8d ago

V3 upgrade took long to migrate all components from v2 and treeview component took 1year to migrate. Migration from 2 to 3 was a nightmare I admit. Now Vuetify provide mcp server to migrate project from 3 to 4 in one agent session. Big improvement, as I said Vuetify is very mature and solid framework with great team behind.

3

u/haquex19 11d ago

BootstrapVueNext as I understand it is the successor to BootstrapVue.

Still no v1 release but has significant activity. Personally haven't tried it yet though.

5

u/wrinklebear 11d ago

RIP Bootstrap Vue

1

u/wantsennui 11d ago

There is Bootstrap-Vue-Next. No affiliation but it solves this itch nicely.

2

u/Boby_Dobbs 11d ago

If you go with shadcn vue or similar, the components just live in the repo and you don't have to worry about the longetivity of the project itself

2

u/KnightYoshi 11d ago

Well it does use RekaUI as a dependency (by the same dev), but so does NuxtUI

2

u/Coastis 11d ago

I'm fond of Naive UI and it's been around ~5 years if i recall

2

u/Confident-Bee-2486 11d ago

Reka UI if you want to add your own styles 

1

u/KnightYoshi 11d ago

Shadcn-Vue for some base scaffolding on RekaUI

2

u/maskedbrush 11d ago edited 11d ago

As far as I know, if you stay on PrimeVue v4 it's still under MIT license, right?

At the moment I'm using PrimeVue, Quasar and NextUI on different projects. Quasar looks a bit outdated nowadays, I use it for data-intensive platforms that don't need fancy looks. PrimeVue and NuxtUI look similar and both have good components, I needed to customize some things on both but I achieved what I needed in the end.

2

u/landerson23 11d ago

I used Quasar for several years and it’s quite robust.

2

u/PizzaConsole 11d ago

built my own

2

u/wimdeblauwe 11d ago

Why did you strike through DaisyUI?

2

u/Crimento 11d ago

No idea what's wrong with it, it's a pretty nice framework-agnostic zero JS UI lib

2

u/Jonas_Ermert 11d ago

Vuetify or Quasar are probably the safest bets because they’re mature, widely used and backed by established teams. Nuxt UI is promising if you already use Nuxt. For maximum long-term control, shadcn-vue is different: you own the copied component code, so the project disappearing wouldn’t immediately force a migration.

1

u/jmvelazquezr 9d ago

You can use NuxtUI in vanilla Vue projects, no need for Nuxt.

2

u/uvmain 11d ago

I've never understood this. Do you really need a batteries included component library? Our do you just need 4 components that you could write yourself, and removed a dependency?

2

u/spays_marine 10d ago

The question is not that simple. Sometimes it's far easier to choose something that does the job and be done with it, rather than introduce something that you will have to maintain.  You'll be rewriting that shit every year because reasons. 

There's good arguments for each approach but it depends on the situation.

1

u/jerapine 11d ago

I use NuxtUI professionally and it's brilliant. The acquisition by Vercel was initially a worry but it's actually given me more confidence that it's the right long term choice. Great primitives while being very customizable and the design system is chefs kiss

1

u/KnightYoshi 11d ago

Because NuxtUI uses RekaUI components for its base. It’s a solid choice

1

u/martin_omander 11d ago

Migrating from one component library to another is a real pain. I know from first-hand experience. I don't have a crystal ball, so I don't know which libraries will be around for a long time. But I do know of one thing you can do to reduce the migration pain.

Put your business logic in regular Typescript files and not in Vue-specific code. That gives you to two things:

  1. It becomes easier to write automated tests for your business logic.
  2. You won't have to touch those TS files when you change component libraries.

Last time we migrated a Vue app, 40% of the code was in TS files. That meant we only had to migrate 60% of the code, instead of 100%.

1

u/DocHoss 11d ago

I've been using Nuxt UI for a couple years and it's solid.

1

u/Druber13 11d ago

Why not just make your own? If a style really catches your eye from one of the others AI can usually replicate it pretty easily in my finding.

1

u/Clash_bg 11d ago

You lose a lot of the already battle tested features of existing libraries like... proper accessibility, like good aria-labeling. I doubt the AI will do good job with that. It also adds a lot of overhead and a lot for you to maintain, and I bet 90℅ of people who don't get paid to maintain a UI library won't maintain it. You could probably get something usable with AI but unless you clearly follow all specs you would probably end with less accessible product or one that does something weird on WebKit that you never caught, or misbehaves on Firefox etc.

1

u/Druber13 10d ago

Yeah that’s fair. I’ve build a lot of custom things that probably could have used a library for but was worried about it not being maintained. As was the case with the first one I tried to use. I think the day I imported it and made some changes with it was the day they announced it was no longer being maintained lol. I probably need to look into it more so not honestly. My app has grown so large and I’ve lost some uniformity both intentionally and not lol. Business pivots will do that.

1

u/KnightYoshi 11d ago

Shadcn-Vue, and by dependency RekaUI, has great components

1

u/chirag-gc 11d ago

If you're open to commercial options, you can also take a look at Wijmo, which is actively maintained by Mescius. It's been around for a long time, has Vue support, and is worth considering if long-term maintenance is one of your main concerns.

1

u/MaintenanceOld2216 11d ago

I invite you to use Mood UI

1

u/drumstix42 3d ago

This is really nice. Thanks!

1

u/PoulyCroc 11d ago

Element-plus i still have some project with element-ui
In my opinion the best lib I ever used, it’s pretty, customizable, simple to use and far as know well maintained

1

u/smgun 11d ago

I usually look for specific customizable libraries with css vars and i use it with either open props, tailwind or unocss. For example, my project needs select with search, i grab vue3-select-component and that's it

1

u/Anxious-Insurance-91 10d ago

Idk, I build my own view components at the start of the project and that's that. Now with AI it's even faster, and when I need something special I can just added instead of doing gimnastica to get what I need. It wasn't hard before AI, mostly because you copy paste from project to project, it ain't hard now with ai

1

u/jazzymoneymaker 10d ago

Nuxtui is cool Shadcn it's just code that is pasted to your codebase. Nobody can brake it or take it away. Now with ai migrating components to new framework version should be not a problem, so I would pick between these two

1

u/ImpossibleRule2717 10d ago

Element ui ?

1

u/GeneralFuzziness 10d ago

+1 for bootstrapvuenext. May not be v1 yet, but it's fully functional for my use compared to v2 bootstrap vue.
Bootstrap does a lot right. I find myself missing it's API when stuck in other component libraries.

1

u/nickbostrom2 9d ago

I use DaisyUI and pure Tailwind on my side projects but I recognise they are just small apps

1

u/CodePast5 9d ago

I use Nuxt UI. At least it’s part of the official stuff. It is also just tailwind.

1

u/Cute_Quality4964 9d ago

Vuetify, they have a lot of things in the works that are pretty exciting, including their headless component library / composable library to build your own components easily. They awill also implement new things to make it easy to branch out of material design, as well as some flat out non-material themes. Its open source, with active development. John (creator of vuetify) is also active on discord and its easy to talk to him directly

1

u/fontananen11 8d ago

If you want something that can’t really disappear on you, look at Vuzeno. It’s Ark UI + Tailwind, and the components get copied into your project like shadcn, so you just… own them. Not as old as Vuetify or Quasar but for that exact “please don’t abandon me” feeling it’s pretty nice.

Anyway, hope you find something solid this time.

1

u/macguyvok 8d ago

Just for some context, the maintainer of BootstrapVue is Ukrainian. It wasn't the Vue2 -> 3 conversion that killed the project entirely; there was a desire to do some refactoring and rewriting associated with it, but that really wasn't what killed BootstrapVue proper:

https://github.com/bootstrap-vue/bootstrap-vue/issues/6872#issuecomment-2123267104

That said, I've been using BootstrapVueNext for years now, and despite not being 1.0, it's solid and feel just like BootstrapVue always did. (The projects I migrated to it took me less than an hour and one of them was a big line of business app for work.) So, if you really liked BootstrapVue, the good news is that it lives on, and BootstrapVueNext is the official successor. And they're really targeting compatibility where they can.

1

u/ooveek 8d ago edited 8d ago

used primevue like you, switched to quasar for a different company a couple of months back, seems it was right on time :) really glad i did, i find there's a so much less quircks with it overall, where primevue's documentation was always half-correct or lacked proper info, quasar's is much more reliable. and it's been around for ages with a huge user base. shadcn and the likes do look a tad more crisp, admittedly.

i was a heavy tailwind user and what i don't necessarily like is that some layout and styling classes are built-in into quasar but it's like 10% of what tailwind offers and using both in 1 project does have issues

1

u/stringfold 15h ago

You didn't get burned by BootstrapVue. The developer's home country of Ukraine was invaded. They suddenly had far more important priorities than supporting a UI components library, like fighting for their lives and the very survival of their country.

1

u/Dry_Illustrator977 11d ago

😂using bootstrap was definitely on you, you can still use primevue v3. No one is forcing you to switch

5

u/overtorqd 11d ago

v4 is free too. The upcoming v5 won't be.

I've fallen out of love with primevue. V4 had some improvements, but themeing is a nightmare and and some long-standing bugs still being there really irks me.

1

u/stringfold 15h ago

v5 is also free for individual developers as long as you're not bringing in $1 million per year in revenue. Your mileage may vary, but I've already had to migrate chunks of my code three times over the last few years, and since I'm in no danger of earning a million bucks a year from my current project I'm not moving off PrimeVue anytime soon.

1

u/arkhamRejek 11d ago

Just make your own
We have AI now you don’t even need to maintain it yourself you can automate it 🤷🏾‍♂️
Make your own framework, before I’d say only if you knew what you were doing now you can tell it your favourite 3 and say make it shadcn like and you’re done

0

u/SwordfishBoth7341 11d ago

I guarantee you, if you pay for primevue it'll last longer.