VivekUI vs shadcn/ui
VivekUI and shadcn/ui both give you accessible React components; one is an installed package, the other is code copied into your repo. The trade-offs, plainly.
How shadcn/ui works
shadcn/ui is a collection of components you copy into your own project with a CLI, styled with Tailwind CSS utility classes and built on Radix UI primitives. You own the code and edit it directly; updates are re-copied by hand.
Side by side
| Aspect | VivekUI | shadcn/ui |
|---|---|---|
| Runtime dependencies | None. `package.json` has no `dependencies` field; React and React DOM are peers. | Radix UI packages, class-variance-authority, clsx, tailwind-merge and Tailwind CSS as a build dependency. |
| Styling | One static stylesheet, every selector in `:where()` (zero specificity), variants as `data-*` attributes, tokens as `--vk-*` custom properties. | Tailwind utility classes in the copied component files. |
| Overriding a style | Any one class of yours wins — no `!important`, no specificity war. | Edit the component file you own, or pass more utility classes. |
| Server Components | Unbundled build; each file keeps its own 'use client'. 50 of 109 components ship no client JavaScript. | Components carry 'use client' where needed; you control the files. |
| Accessibility testing | A `vitest-axe` assertion per component, browser axe on composed pages in three viewports, keyboard maps from the WAI-ARIA Authoring Practices. | Inherits Radix behaviour; testing is up to your project. |
| Sections and pages | Hero, Navbar, Pricing, FAQ, CTA, Footer, Stats, Testimonials as components; 62 blocks and 12 whole pages to copy. | Blocks are offered on the website; pages are assembled by you. |
Choose shadcn/ui when
You already run Tailwind and want components written in it.
You want to edit component source directly rather than compose props.
You prefer Radix primitives as the behaviour layer.
Choose VivekUI when
You want a versioned package with a changelog, so upgrades are `npm update` and a migration note.
You do not use Tailwind, or you want components that work with any CSS approach.
You want zero runtime dependencies for supply-chain or bundle reasons.
You want marketing sections (Hero, Pricing, FAQ…) and whole page templates, not only primitives.