UI source vs component library vs template: what should you use?
Use UI source when you need one focused interface capability that your team can inspect, adapt, and own. Use a component library when many product surfaces need a maintained system of shared primitives, tokens, and APIs. Use a template when you need a broad preassembled page or application structure and are willing to reshape its architecture. vro.dev currently publishes item-level React component source—not a maintained design-system library or a template catalog—so evaluate each record as a focused starting point, then test the delivered version in your project.
Evidence boundary
The definitions and decision matrix compare product form rather than visual style. The vro.dev conclusion is based on the canonical public catalog and three exact published React records reviewed on the stated date. Only product types represented by current public records are shown as vro.dev examples; an empty navigation surface is not treated as published inventory.
Reviewed: by vro.dev product-form and live-catalog review. Correction owner:support@vro.dev.
UI source, component library, and template definitions
01UI sourceA focused implementation you bring into your own codebase, adapt to the surrounding product, and maintain as local application code.Best when: An existing product needs one distinctive behavior or surface without adopting a new design system.Ownership: Your team owns integration, adaptation, testing, and maintenance after delivery.Tradeoff: Fast local control, but updates are not automatically inherited and project fit still has to be proved.
02Component libraryA maintained system of reusable primitives, tokens, accessibility conventions, and versioned APIs shared across many product surfaces.Best when: Multiple teams or surfaces need consistent foundations and can follow the library's conventions and upgrade path.Ownership: The library maintainer owns the system contract; adopters own configuration, upgrades, and product-specific composition.Tradeoff: Consistency and shared maintenance in exchange for dependency, convention, migration, and customization constraints.
03TemplateA broader preassembled page, flow, or application architecture intended to accelerate a new build rather than add one isolated capability.Best when: A new project needs a substantial starting structure and its information architecture is close to the template's assumptions.Ownership: The adopting team owns replacing fixtures, reshaping architecture, verifying licenses, and maintaining the resulting product.Tradeoff: High initial coverage, but greater removal work, hidden assumptions, and potential divergence from the original update path.
Decision matrix
UI product forms compared by scope, dependency, update, and license model.
Product form
Typical scope
Dependency model
Update model
License check
UI source
One focused capability
Local code plus declared packages
Your team ports or reapplies changes
Exact files, version, receipt, and redistribution boundary
Component library
Shared primitives and systems
Maintained package and conventions
Versioned upgrades and migrations
Package, asset, trademark, and commercial-use terms
Template
Page, flow, or application shell
Broad architecture and fixture set
Fork, reconcile, or intentionally diverge
Code, fonts, media, demo content, and resale restrictions
Three worked project scenarios
01Add scheduling to an existing product → UI sourceThe application already has routing, tokens, data, and account flows. A focused scheduling interface can be adapted without importing an unrelated application shell.Verify: Connect real availability and timezone rules server-side, then re-test keyboard, focus, touch, empty, and failure states in the host product.
02Standardize a product family → Component libraryMany teams need the same primitives, tokens, accessibility rules, release process, and upgrade contract—not a collection of unrelated local implementations.Verify: Evaluate governance, version policy, framework support, accessibility ownership, migration cost, and whether the library's API can survive product variation.
03Launch a multi-page product shell → TemplateThe work benefits from a coherent page and application structure more than from assembling isolated interface capabilities one at a time.Verify: Audit routing, data boundaries, fixtures, dependencies, authentication assumptions, licensing, performance, and the cost of replacing the template's visual language.
Current vro.dev product form
vro.dev currently publishes item-level React component source. The reviewed public inventory does not establish a maintained design-system library or a template catalog. Use another source when the project needs those broader product forms.
Introduce a software platform through compact navigation, a precise conversion hierarchy, and an original code-native product workspace receding into a perspective runway.
Product form: UI source component · React 1.0.0
Dependencies: react
Use when: A React marketing surface needs a distinctive product-workspace hero direction.
Boundary: It is not a full marketing template, design system, or production content strategy.
Visualize a live agent execution plan as nested tasks, status changes, dependencies, and assigned tool labels without implying remote execution.
Product form: UI source component · React 1.0.0
Dependencies: lucide-react, react
Use when: An AI-assisted product needs a focused plan-tree interaction to integrate with its own state and agent runtime.
Boundary: It is not an agent backend, orchestration SDK, or complete application shell.
Method and limits
This is a dated selection guide, not a claim that one product form is universally better. Catalog inventory, source versions, dependencies, licenses, and access states can change. Recheck the canonical record and controlling license before use. A public preview does not contain protected source, and entitlement-protected delivery does not make vro.dev a package registry, design-system vendor, or template marketplace.