Back to blog

Introducing olwibaCN: the primitive layer

The component foundation under every Genesis project: accessible, token-driven primitives you can actually own.

Every interface in a Genesis project, from the marketing hero to the admin tables, ultimately renders olwibaCN primitives. This post introduces the bottom layer of the ecosystem and explains why it exists.

What it is

olwibaCN is a curated set of component primitives in the shadcn tradition: buttons, inputs, dialogs, cards, accordions, and the rest of the vocabulary an application speaks. Each component is accessible by default, themed through CSS variables, and designed to be composed rather than configured.

It ships as @olwiba/cn, a published, versioned package. Projects consume it like any dependency, which is the point: a fix or refinement lands upstream once and reaches every project on the next update.

Why not just use shadcn/ui directly?

shadcn's copy-paste model is brilliant for getting started and painful for maintaining ten projects. Once you have pasted a component into five codebases, every improvement is five manual edits, and every project slowly forks away from the rest.

olwibaCN keeps the spirit (you can read every component, nothing is a black box) but publishes the result as a maintained package. The years of accumulated decisions, focus management, contrast handling, spacing rhythm, and dark mode behavior live in one place.

Tokens all the way down

Color, typography, spacing, and radius flow from CSS variables. Genesis exposes a single brand accent in project.config.ts, and the cascade does the rest: change one value and the entire application, marketing pages included, follows.

This is what makes a Genesis project rebrandable in an afternoon. There is no second design system to keep in sync because there is only one, and it is the production code.

Where it sits in the stack

olwibaCN is the foundation layer. olwibaUI composes these primitives into full application blocks, and Genesis composes those blocks into pages. The rule that keeps the system healthy: if a component is reusable across projects, it belongs in the ecosystem, not in your app folder.

olwibaCN is open source under MIT. The primitives are a community tool; the ecosystem built on top of them is what Genesis delivers.