GentleDuck
Production-grade developer tooling. UI components, compiler extensions, CLI automation, and systems utilities — all designed to work together.
GentleDuck is an open source organization building production-grade developer tooling. We reduce friction across the entire development lifecycle — from UI and interaction design to documentation, automation, testing, and systems performance.
Explore the Ecosystem

@gentleduck/ui
59+ production-ready components with copy-source philosophy. Own your code, not your dependencies.

@gentleduck/gen
Compiler extension for type-safe API routes. Scan your server, emit .d.ts, get typed requests.

Ecosystem Architecture
See how primitives, variants, hooks, motion, and libs compose into a unified stack.
Packages at a Glance
Core Layer
| Package | Description | |
|---|---|---|
| @gentleduck/libs | cn, Slot, Portal, and shared utilities — zero external dependencies | Docs |
| @gentleduck/variants | Type-safe class generation, ~7x faster than CVA | Docs |
| @gentleduck/hooks | Purpose-built React hooks for real-world UI workflows | Docs |
Behavior Layer
| Package | Description | |
|---|---|---|
| @gentleduck/primitives | Headless, accessibility-first UI primitives | Docs |
| @gentleduck/motion | Enter/exit animations and mount/unmount transitions | Docs |
| @gentleduck/vim | Framework-agnostic vim-style keyboard navigation | Docs |
UI Layer
| Package | Description | |
|---|---|---|
| @gentleduck/ui | 59+ production components — forms, navigation, overlays, data display | Docs |
| @gentleduck/cli | CLI for installing and scaffolding UI components | Docs |
Tooling Layer
| Package | Description | |
|---|---|---|
| @gentleduck/gen | Compiler extension — scans NestJS controllers, emits typed route maps | Docs |
| @gentleduck/query | Type-safe HTTP client powered by generated route types | Docs |
Testing & Performance
| Package | Description | |
|---|---|---|
| @gentleduck/ttest | Zero-runtime TypeScript type testing | npm |
| @gentleduck/lazy | Lazy-loading and performance utilities | Docs |
| @gentleduck/template | Rust-powered project scaffolding | GitHub |
Why GentleDuck
Modern teams ship fast, but tooling often fragments as systems grow. GentleDuck creates tools that work well together, share conventions, and stay reliable in real production environments.
- Clarity over complexity — Simple, predictable APIs backed by clear documentation and strong conventions.
- Consistency at scale — Shared UI foundations, registries, templates, and tooling that keep teams aligned.
- Performance you can trust — Production-ready tooling designed for real workloads.
- Composable tools — Each library stands on its own, but follows shared patterns that make the ecosystem stronger when used together.
Quick Start
# Install the UI component library
bunx @gentleduck/cli init button dialog input select
# Use individual packages
bun add @gentleduck/variants # Type-safe class generation
bun add @gentleduck/primitives # Headless UI primitives
bun add @gentleduck/hooks # React hooks
# Type-safe API tooling
bun add -d @gentleduck/gen # Compiler extension (dev)
bun add @gentleduck/query # HTTP client (runtime)# Install the UI component library
bunx @gentleduck/cli init button dialog input select
# Use individual packages
bun add @gentleduck/variants # Type-safe class generation
bun add @gentleduck/primitives # Headless UI primitives
bun add @gentleduck/hooks # React hooks
# Type-safe API tooling
bun add -d @gentleduck/gen # Compiler extension (dev)
bun add @gentleduck/query # HTTP client (runtime)Every package is published independently on npm. Start with what solves your biggest pain point, then expand as your needs grow. No lock-in, no all-or-nothing.
Stay Updated
Check out What's New for the latest releases, or follow the project on GitHub and X / Twitter.