BagUI is a curated registry of modern shadcn/ui components, animated sections, and production-ready blocks designed to help developers build beautiful interfaces in minutes.
A modern, open-source registry of UI components, blocks, and ready-to-use sections — built to help developers ship polished interfaces faster with shadcn/ui.
Live Site · Getting Started · Contributing · Project Structure
Built by Anelka Bag
BagUi is an open-source component registry offering a growing collection of production-ready UI blocks, sections, and components — navbars, heroes, footers, pricing tables, CTAs, and more — built with a strong focus on clean design and smooth animations.
git clone https://github.com/anelkabag/bagui.git
cd bagui
npm install
npm run dev
The app will be available at http://localhost:3000.
BagUi is open source, and contributions are very welcome! Whether it’s a new component, a bug fix, or a documentation improvement — here’s how to get started.
git checkout -b feat/my-new-component
Components live in two places:
| Type | Path |
|---|---|
| Blocks | registry/default/blocks |
| UI components | registry/default/ui |
Rules to follow:
registry/default/blocks/navbar/navbar1.tsxexport default function Navbar1() {
return (
<nav className="flex items-center justify-between p-4">
<div className="font-semibold">BagUi</div>
<div className="flex gap-3">Home</div>
</nav>
);
}
Keep it clean, reusable, and consistent with the project’s existing conventions.
registry.jsonAdd an entry for your component in the items section of registry.json:
{
"name": "navbar1",
"type": "registry:block",
"title": "Navbar Example 1",
"description": "Modern and responsive navigation.",
"files": [
{
"path": "registry/default/blocks/navbar/navbar1.tsx",
"type": "registry:block",
"target": "components/blocks/navbar1.tsx"
}
],
"access": {
"tier": "free"
}
}
Checklist before saving:
namepath points to the correct file under registry/defaulttargetaccess.tier is set to free or npm run build
npm run registry:build
The first command makes sure the app compiles correctly. The second prepares and publishes your component to the registry.
bagui/
├── registry/
│ └── default/
│ ├── blocks/ # UI blocks & page sections (navbar, hero, footer, ...)
│ └── ui/ # Reusable base UI components
├── registry.json # Registry manifest — lists all available components
└── public/ # Static assets
registry.jsonnpm run buildnpm run registry:buildregistry/default/blocks first.This project is licensed under the MIT License.
Made with ❤️ by Anelka Bag — contributions welcome!