lerpa
ver1.0.0
node20.11
branch⎇ main
uptime14d 03:42:17
cpu3.2%
mem14 MB
teams4,213
utc00:00:00
LIVE
$git clone

Contributing

Lerpa UI is open source and welcomes contributions — new components, fixes, and docs. The project lives on GitHub.

Get the monorepo

It's a pnpm + Turborepo monorepo (Node 20+). Clone it and install:

git clone https://github.com/cuibit-labs/lerpaui.git
pnpm install
pnpm dev

The docs site runs on :3001.

Where things live

packages/ui
The source of truth — components in src/components, page blocks in src/blocks.
packages/registry
The compiler that turns packages/ui into the shadcn-compatible registry JSON. Never hand-edit generated registry files.
packages/cli
The lerpa-cli that consumers run.
apps/docs
The Next.js docs and gallery site.

Add a component

  1. Create the component in packages/ui/src/components, following the existing conventions: design tokens (no inline colors), prefers-reduced-motion gating on any animation, and accessible semantics.
  2. Export it from packages/ui/src/index.ts.
  3. Rebuild the registry so the CLI can serve it.
  4. Add a demo / gallery entry in the docs app if applicable.
  5. Run the quality gates and open a PR.
pnpm registry:build

Quality gates

All three must pass with zero errors before a PR is merged:

checks
pnpm lint        # eslint, incl. jsx-a11y rules
pnpm typecheck   # tsc across the monorepo
pnpm test        # vitest + vitest-axe

The registry is downstream of packages/ui. If you add or edit a component, rebuild the registry and re-run registry:validate rather than editing generated JSON.

New to the codebase? Skim the project structure and accessibility guide first — they capture the conventions every contribution is expected to follow.

lerpa · running
turbopack142ms
a11yAAA
tokens14
network14kb