Neeto maintains NeetoUI, a proprietary React component library that acts as the design system and UI foundation for an ecosystem of 15+ SaaS products.
Currently:
All Neeto products import exclusively from NeetoUI
Some NeetoUI components wrap Ant Design
Other components are custom implementations
Products never import Ant Design directly.
This architecture has ensured cross-product consistency, but the rise of AI coding tools introduces new considerations.
Engineers now regularly use:
Claude
Cursor
Windsurf
GitHub Copilot
The design system should evolve to work effectively with AI-generated code while maintaining long-term maintainability and design consistency.
Goals
The strategy should achieve the following goals.
1. Cross-Product Design Consistency
Maintain consistent UI patterns across all Neeto products through a shared design system.
2. AI Tool Compatibility
AI-generated code should align with NeetoUI patterns, not bypass them.
3. Long-Term Maintainability
Reduce long-term dependency on Ant Design.
4. Developer Experience
New engineers should receive accurate suggestions from AI tools and easily discover the correct component usage.
Constraints
Several practical constraints must guide the strategy.
15+ production products depend on NeetoUI
A big-bang migration is not feasible
Migration must be incremental
Team expertise is primarily React
Team may not have strong Tailwind CSS expertise
Documentation is already available via Context7 MCP for Claude
Architecture Options
The following architectural approaches were evaluated.
Option A — Keep NeetoUI As-Is (Ant Design Underneath)
Description
Continue the current architecture:
Products
↓
NeetoUI
↓
Ant Design
Advantages
No migration cost
Stable production environment
Developers already familiar with the system
Disadvantages
AI models are heavily trained on:
Radix UI
shadcn
Tailwind
Headless UI
They are not trained on proprietary wrappers around Ant Design.
This leads to issues such as AI suggesting incorrect imports:
import { Button } from "antd"
instead of:
import { Button } from "@bigbinary/neeto-ui"
AI may also suggest Ant-specific props that NeetoUI does not expose.
Risk
Long-term lock-in to Ant Design architecture.
Verdict
Stable in the short term but not aligned with the AI-driven development ecosystem.
Option B — Publish NeetoUI as a shadcn-Style Registry
Description
Expose NeetoUI components via a component registry similar to shadcn.
Example usage:
npx neeto-ui add button
Advantages
AI tools can understand and reference real components
Developers can inspect component source
Standardized component usage examples
Improved compatibility with AI coding tools
Disadvantages
Internal architecture still depends on Ant Design.
Verdict
High value with minimal risk.
This improvement should be implemented regardless of the chosen long-term strategy.
Option C — Replace Ant Design Internals with Radix UI
Description
Gradually replace Ant Design internals while keeping the NeetoUI API stable.
Example transition:
Current architecture:
NeetoModal
→ Ant Modal
Future architecture:
NeetoModal
→ Radix Dialog
Advantages
Removes long-term dependency on Ant Design
Radix provides accessible headless primitives
Widely supported and understood by AI tools
Disadvantages
Requires incremental rewriting of several components.
Component complexity varies.
Component |
Migration Difficulty |
|---|---|
Modal |
Medium |
Dropdown |
Medium |
Select |
High |
Table |
High |
Form |
High |
Risk
Public API changes could break products.
This risk can be avoided by preserving the NeetoUI public API.
Verdict
Strong long-term architecture with manageable migration risk.
Option D — Full Rebuild on shadcn
Description
Completely rebuild NeetoUI on top of:
Radix UI
Tailwind CSS
shadcn patterns
Advantages
Clean modern architecture.
Disadvantages
Very high migration cost.
Estimated effort:
12–18 months
Significant risk to the stability of 15+ production products.
Verdict
Technically attractive but too risky operationally.
Option E — Migrate to BaseUI (MUI Headless Library)
Description
Replace Ant Design with BaseUI, a headless component library from the MUI ecosystem.
Comparison
Library |
Popularity |
Ecosystem Maturity |
|---|---|---|
Radix UI |
Very high |
Very mature |
BaseUI |
Moderate |
Relatively new |
Verdict
Radix has stronger ecosystem adoption and documentation.
BaseUI introduces unnecessary risk.
Option F — Hybrid Strategy (Recommended)
This option combines the advantages of Options B and C.
Strategy
Publish NeetoUI as a shadcn-style registry
Gradually replace Ant Design internals with Radix primitives
Final architecture becomes:
Products
↓
NeetoUI (Stable API)
↓
Radix UI primitives
↓
DOM
Advantages
AI compatibility improves immediately
Migration can happen incrementally
Public API remains stable
Ant Design dependency can be removed gradually
Verdict
Best balance between innovation, stability, and maintainability.
AI Code Generation Impact
AI compatibility differs significantly across options.
Option |
AI Code Quality |
|---|---|
A |
Poor |
B |
Good |
C |
Very Good |
D |
Excellent but expensive |
F |
Excellent |
Modern AI models are trained extensively on:
Radix UI
shadcn
Tailwind ecosystems
Aligning with these ecosystems significantly improves AI-generated code quality.
Design Tokens Strategy
Introduce design tokens using CSS custom properties.
Example:
:root {
--neeto-color-primary: #5b5bd6;
--neeto-radius-md: 6px;
--neeto-spacing-sm: 8px;
}
Components reference tokens instead of hardcoded values.
.button {
background: var(--neeto-color-primary);
}
Benefits
Consistent theming across products
Easier design system evolution
AI-readable design constraints
Compatible with Tailwind if adopted later
LLM Documentation (llms.txt)
A public llms.txt file should be published for NeetoUI.
Example location:
neeto-ui.dev/llms.txt
Example content:
# NeetoUI LLM Guide
NeetoUI is the design system used across all Neeto SaaS products.
Rules:
1. Always import components from "@bigbinary/neeto-ui"
2. Never import components from Ant Design
3. Use NeetoUI layout primitives
4. Follow Neeto spacing tokens
Example:
import { Button, Modal } from "@bigbinary/neeto-ui"
<Button variant="primary">Save</Button>
This helps AI tools generate correct code aligned with NeetoUI standards.
Recommended Architecture
The long-term architecture should become:
Products (15+)
↓
NeetoUI API (Stable)
↓
Radix UI primitives
↓
CSS Design Tokens
AI tools interact primarily with:
NeetoUI registry
NeetoUI documentation
llms.txt
Phased Migration Plan
This plan assumes a 10-engineer frontend team.
Phase 1 — AI Enablement (1–2 Months)
Objectives:
Publish NeetoUI component registry
Improve AI-friendly documentation
Publish
llms.txtIntroduce design tokens
Expected Impact:
Immediate improvement in AI-generated code accuracy.
Estimated Effort:
2 engineers for approximately 6 weeks.
Phase 2 — Radix Infrastructure Layer (2 Months)
Introduce Radix primitives internally while preserving the NeetoUI API.
Examples:
NeetoDialog
NeetoPopover
NeetoTooltip
Estimated Effort:
3 engineers for 8 weeks.
Phase 3 — Component Migration (6–8 Months)
Replace Ant Design implementations incrementally.
Suggested migration order:
Priority |
Component |
|---|---|
1 |
Modal |
2 |
Dropdown |
3 |
Tooltip |
4 |
Tabs |
5 |
Popover |
6 |
Select |
7 |
Datepicker |
8 |
Table |
Products continue using the same NeetoUI APIs.
Estimated Effort:
5 engineers for 6–8 months.
Phase 4 — Remove Ant Design (3 Months)
After all components are migrated, remove Ant Design entirely.
Benefits:
Reduced bundle size
Simplified dependency graph
Estimated Effort:
2 engineers for 3 months.
Estimated Timeline
Phase |
Duration |
|---|---|
AI Enablement |
2 months |
Radix Infrastructure |
2 months |
Component Migration |
6–8 months |
Cleanup |
3 months |
Total estimated timeline:
Approximately 12 months
Migration occurs gradually without disrupting existing products.
Final Recommendation
Adopt Option F: Hybrid Strategy
Publish NeetoUI as a registry for AI tooling
Introduce design tokens
Gradually migrate components to Radix UI
Remove Ant Design dependency
This approach ensures:
Strong AI compatibility
Stable design system APIs
Incremental migration
Long-term architectural flexibility.