Esta app é a vitrine do @uttara-dev/page-builder. Ela consome o design system @uttara-dev/ui exatamente como qualquer outra ferramenta do ecossistema vai consumir — e provê, por sua vez, o construtor de conteúdo complexo como peça reutilizável.
Várias ferramentas independentes, conectadas por um CAS de identidade e coerentes esteticamente porque consomem o mesmo design system.
O que você está vendo nesta página já é o tema oficial Uttara aplicado: tipografia Lexend (display) e Red Hat Text (corpo), paleta oklch, e claro/escuro reagindo ao toggle no topo. O pacote injeta tudo via applyTheme(); o styles.css desta app não declara cor própria.
# uma vez:
git subtree add --prefix=src/lib/uttara-ui \
uttara-ui main --squash
# atualizar para um release novo:
git subtree pull --prefix=src/lib/uttara-ui \
uttara-ui v0.2.0 --squashO código vive em src/lib/uttara-ui/ como source tracked, mas alinhado com tags de release do repositório upstream. Pacote NPM continua publicado para apps que tenham build secrets.
Mesma mecânica de entrega do @uttara-dev/ui: pacote NPM em pkg/, source compartilhado, tipos exportados, storage delegado para a app cliente.
import { PageBuilderEditor }
from "@uttara-dev/page-builder/editor";
import { PageRenderer }
from "@uttara-dev/page-builder/renderer";
import type { Page, Block, BlockInstance }
from "@uttara-dev/page-builder/types";
import { defineBlock, builtinBlocks }
from "@uttara-dev/page-builder/blocks";const adapter: StorageAdapter = {
load: (pageId) => /* sua query */,
save: (page) => /* sua mutation */,
list: () => /* sua listagem */,
delete: (pageId) => /* sua remoção */,
};
<PageBuilderEditor
adapter={adapter}
pageId={id}
/>Próximo marco: ler docs/briefing/ e começar a implementação do PageBuilderEditor sobre o esqueleto em pkg/.
Instalação via npm install autenticado por .npmrc + PAT em variável de ambiente. Caminho ideal para CI e ambientes de hospedagem que expõem secrets de build.
Source vive dentro do repo da app consumidora, alinhado a tags de release. Sem token, sem registry, sem bleeding edge. Custo: um git subtree pull por upgrade.