Search

Search documentation

Arch

Architecture Overview

Technical architecture and product overview of the Evolphin UI design system.

A comprehensive design system and private component registry built on shadcn/ui.

Product Summary

Evolphin UI is an internal design system that provides:

  1. Private Component Registry β€” Install components via CLI with @evolphin/ namespace
  2. Documentation Site β€” Interactive docs with live component previews
  3. 54+ UI Components β€” All shadcn/ui components, customizable for your brand

Key Benefits

FeatureDescription
One Command Installpnpm dlx shadcn@latest add @evolphin/button
Full OwnershipComponents copied to your project, not locked to a package
Zero DriftDocs and registry always in sync (same source)
Professional DocsMDX-based with live previews, code examples, API tables

Tech Stack

LayerTechnologyVersion
FrameworkNext.js16.1.1
LanguageTypeScript5.x
StylingTailwind CSS4.x
Component Baseshadcn/uilatest
DocumentationFumadocs + MDX3.x
Package Managerpnpm10.x
Build SystemTurbopack(built-in)

Core Dependencies

  • react / react-dom 19.x - next 16.x - tailwindcss 4.x - class-variance-authority β€” Variant styling - clsx + tailwind-merge β€” Class utilities
  • @radix-ui/react-* β€” Accessible unstyled components - lucide-react β€” Icon library
  • react-hook-form β€” Form handling - @hookform/resolvers β€” Schema integration - zod β€” Schema validation
  • cmdk β€” Command palette - sonner β€” Toast notifications - vaul β€” Drawer component - recharts β€” Charts - embla-carousel-react β€” Carousel - react-day-picker β€” Calendar

Architecture Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Evolphin UI Repo                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  registry/default/ui/           content/docs/           β”‚
β”‚  β”œβ”€β”€ button.tsx                 └── components/         β”‚
β”‚  β”œβ”€β”€ card.tsx         ───────►      β”œβ”€β”€ button.mdx     β”‚
β”‚  └── ...                            └── ...             β”‚
β”‚       β”‚                                  β”‚              β”‚
β”‚       β–Ό                                  β–Ό              β”‚
β”‚  shadcn build              Next.js App Router           β”‚
β”‚       β”‚                          β”‚                      β”‚
β”‚       β–Ό                          β–Ό                      β”‚
β”‚  public/r/*.json           /docs/components/*           β”‚
β”‚  (Registry)                (Documentation)              β”‚
β”‚                                                         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flow

  1. Components are authored in registry/default/ui/
  2. shadcn build generates JSON files in public/r/
  3. MDX docs import and demo the same components
  4. Consumers install via shadcn add @evolphin/[name]

Project Structure

Project Structure
evolphin-ui
content
docsMDX documentation
registry
default/ui54 UI components
default/hooksCustom hooks
default/blocksComposite blocks
src
appNext.js routes
componentsCustom components
libUtilities & config
public
rGenerated registry JSON
source.config.tsFumadocs MDX config
mdx-components.tsxMDX component mapping
registry.jsonRegistry definition
components.jsonshadcn config

Scripts

CommandDescription
pnpm devStart development server (Turbopack)
pnpm buildBuild registry + Next.js app
pnpm registry:buildGenerate registry JSON files only
pnpm lintRun ESLint
pnpm startStart production server

Consumer Setup

Configure components.json

{
  "registries": {
    "@evolphin": "https://ui.evolphin.com/r/{name}.json"
  }
}

Install Components

pnpm dlx shadcn@latest add @evolphin/button @evolphin/card

On this page