Pitch: Criei uma ferramenta para criação de Source of Truth
Em janeiro lancei uma ferramenta open source chamada Substrata. Era inútil. Nem eu usaria.
Passei fevereiro e março reconstruindo do zero. Mudei o nome. Entendi o problema de verdade.
Em março lancei o Underlith (open source)
O problema que eu queria resolver:
Toda vez que você migra de framework, seu design system quebra. Não porque as decisões de design mudaram, mas porque essas decisões nunca foram separadas da implementação. Cores hardcoded em componentes. Espaçamentos definidos por framework. Nenhum lugar único onde a intenção de design realmente vive.
O que o Underlith faz:
É um sistema de design tokens framework-agnostic construído em CSS Variables. Mas a feature mais importante do v2.1.0 é o brand layer.
Dois comandos pra projetos novos:
underlith brand init --org acme
npm publish --access public
Isso gera um pacote @acme/tokens com seus brand tokens separados dos primitivos do framework, pronto pra publicar no npm. Todo projeto da sua org instala o pacote e herda as decisões de design automaticamente. Muda uma vez, atualiza em todo lugar via npm update.
Três comandos pra projetos existentes. Exemplo:
underlith init --shadcn --globals ./styles/globals.css
underlith brand init --org acme
npm publish --access public
O primeiro comando mapeia suas variáveis CSS existentes para tokens Underlith sem tocar em nenhum componente.
Tem também tokens de motion com suporte a prefers-reduced-motion, semantic aliases, suporte a Tailwind v4 via @theme e integração com Sass.
O Underlith não é o seu source of truth. É a infraestrutura pra você construir o seu.