Kiln is a UI component library I've been building, with one stubborn rule: it doesn't look like Material, doesn't look like Tailwind UI, and doesn't look like every other startup. It looks like Bangladesh โ the colour palettes of nakshi kantha, the geometry of riverine ceramics, the contrast of monsoon and dry season.
It ships in two forms: kiln-ui on npm (v0.4.0, 56 components) and a Flutter port at v0.2.0 with full parity. Same tokens, same component contracts, both stacks.
Why a new design system at all
Most products from this part of the world look like American products in a hurry. There's a generation of Bangladeshi-built apps that I want to look unmistakably from here, the way Japanese apps look Japanese and Scandinavian apps look Scandinavian. Kiln is my contribution to that.
The 56 components
The component list is deliberately practical: buttons, inputs, dialogs, tables, navigation, charts, data display, layout primitives. Nothing fancy until the basics are airtight. I've shipped this way before โ when a design system tries to be clever before it's complete, the clever bits are what teams reinvent badly.
Web and Flutter, in lockstep
- Shared tokens. One source of truth for colour, spacing, radii, motion, type. The Flutter package generates its theme from the same JSON the web package consumes.
- Mirrored API. A
<Button variant="primary">on the web maps to aKilnButton(variant: KilnButtonVariant.primary)in Flutter โ same vocabulary, both stacks. - One docs site. Every component has both the React and the Flutter snippet side by side.
What I learned shipping this
- Tokens before components. If the tokens are wrong, every component inherits the wrongness.
- Versioning is part of the design. A 0.4 โ 0.5 bump that breaks consumers is a tax. Communicate every breaking change like you're paying it personally.
- Heritage is a constraint, not a decoration. The colour palette comes first. Components live inside it.
A design system is a long bet. The components are 30% of the work. The 70% is the discipline of saying "no" to one-off variants for the next three years.
Where it goes from here
The next phase is quality, not features: tests, axe-core accessibility audits, SSR support, a bundle-size budget, and a public Storybook. The Flutter package is ready for pub.dev โ analyze is clean, the dry run shows zero warnings, and I'm just waiting on a final review pass before publishing.
Kiln is on GitHub at arafatomer66/kiln-ui. Feedback welcome โ especially from designers who think I've got the colour palette wrong.