How infinitedim/justui works
JustUI is a Flutter UI component source generator: developers use its Rust CLI to configure a project, discover registry components, and copy selected source into their own codebase. The add flow resolves registry metadata and dependencies, rewrites imports, optionally adapts Dart constructors, verifies integrity, and writes files and declared dependencies. The repository also contains reusable component implementations, theme and token libraries, and visual presets. Command wiring and several subsystems are inferred from README and tree where excerpts were unavailable.
Main entry points: add.rs Add Components · main.rs CLI Entry · registry.rs Registry Client · commands Project Setup
Components 19
Rust CLI
- CLI Entry
packages/cli/src/main.rs - Project Setup
packages/cli/src/commands - Add Components
packages/cli/src/commands/add.rs - Discovery & Inspection
packages/cli/src/commands - Component Lifecycle
packages/cli/src/commands - Project Config
packages/cli/src/config.rs - Registry Client
packages/cli/src/registry.rs - Import Rewriter
packages/cli/src/utils/import_rewriter.rs - Dart Transpiler
packages/cli/src/utils/constructor_transpiler.rs - Dependency Editor
packages/cli/src/utils/pubspec_editor.rs
Component Registry
- Component Registry
registry - Component Sources
registry/components - Visual Presets
registry/components
UI Design System
- Flutter Components
packages/core/lib/src/components - Theme Engine
packages/core/lib/src/theme - Design Tokens
packages/tokens/lib/src
Target Project
- Project Files
- Project Pubspec
Other components
- Developer
Connections 21
- Developer → CLI Entry: runs commands
- CLI Entry → Project Setup: dispatches
- CLI Entry → Add Components: dispatches
- CLI Entry → Discovery & Inspection: dispatches
- CLI Entry → Component Lifecycle: dispatches
- Project Setup → Project Config: writes config
- Project Setup → Project Files: generates theme
- Discovery & Inspection → Project Config: reads settings
- Discovery & Inspection → Registry Client: fetches metadata
- Component Lifecycle → Registry Client: checks registry
- Add Components → Project Config: reads settings
- Add Components → Registry Client: fetches sources
- Registry Client → Component Registry: reads index and files
- Add Components → Import Rewriter: rewrites imports
- Add Components → Dart Transpiler: adapts constructors
- Add Components → Project Files: writes components
- Add Components → Dependency Editor: adds dependencies
- Dependency Editor → Project Pubspec: edits
- Component Sources → Flutter Components: provides implementations
- Visual Presets → Theme Engine: provides theme variants
- Theme Engine → Design Tokens: uses tokens