O schema do seu banco,
vivo no git.
Seu schema já vive num arquivo .dbml no git. O Gabbro transforma esse repo num estúdio: diagrama ER interativo, docs navegáveis, diff estrutural entre branches e histórico commit a commit. Local-first: sem banco próprio, sem conta, sem build.
Windows · instalador .exe · última versão direto do GitHub ReleasesO schema já é código. Faltava um estúdio à altura.
O schema do banco vive no git como um arquivo .dbml — a fonte da verdade. Mas ler DBML cru, comparar duas branches ou entender o que mudou entre dois commits é trabalhoso. Ferramentas de diagrama vivem soltas do repo e desatualizam.
O Gabbro liga as duas pontas: abre o repo de dados e mostra o schema como diagrama, docs e diff — sempre em sincronia com o git, porque é o git. Cada edição é um commit com o seu autor; push e pull usam a credencial que o seu git já tem. Sem stack de autenticação, sem banco próprio, uma dependência só.
É local-first: cada pessoa roda no próprio clone. O histórico compartilhado é simplesmente o remoto git.
Schema como código
O .dbml no git é a fonte da verdade. Toda mudança de schema é um commit, com autor e mensagem.
Branches são ambientes
master espelha produção, develop o banco de dev. Compare as duas visualmente.
Multi-usuário sem servidor
Cada dev roda no seu clone. O histórico com autor por pessoa é o próprio remoto git — nada pra hospedar.
Quatro abas sobre o mesmo arquivo de texto
Diagrama, docs, diff e histórico — tudo derivado do seu .dbml. Cada recurso com uma amostra do que você vê no app.
Um diagrama ER que você navega, não só olha
Pan e zoom, arrastar tabelas, grupos coloridos por módulo e arestas de FK com roteamento ortogonal. Passe o mouse numa tabela e as relações dela acendem. O layout vive no positions.json, fora do schema.
Documentação navegável, gerada do schema
Índice por grupo de tabelas, busca e uma seção por tabela com tipos de coluna e badges PK / FK / NN / UQ. As relações "References" e "Referenced by" são clicáveis — você segue o schema como se fossem links.
Compare dois ambientes, tabela por tabela
Escolha base → target e veja o que mudou no diagrama e nas docs: tabelas e colunas adicionadas, modificadas e removidas (fantasma vermelho). É o "o que a develop tem que a master ainda não" na sua frente.
Cada commit vira um diff estrutural
Os commits que tocaram o schema, com autor, data e mensagem. Clique num commit e o Gabbro renderiza o diff vs o commit pai — no diagrama e nas docs. O Save ainda sugere a mensagem de commit a partir do resumo do diff.
Leitura tranquila, edição quando precisa
View é somente leitura pro dia a dia. Edit abre o editor de DBML e libera salvar posições — a barra fica verde pra deixar o estado claro. Salvar commita na hora e pusha em background; sem identidade git configurada, o app vira leitor puro e explica o git config que resolve.
Mover tabela não polui o diff do schema
As posições das tabelas vivem no positions.json, separado do DBML. Reorganizou o diagrama? O diff do schema continua limpo. Tem um seed a partir de um ERD do StarUML pra herdar o layout que a equipe já conhece.
E ainda vem com
Sync com auto-cura
pull --rebase --autostash e push que se recupera de non-fast-forward. Falhas voltam classificadas com o fix sugerido.
Modo hosted opcional
O mesmo código roda como serviço central: clona um repo https, commita como identidade de serviço e escreve só na branch de edição.
Seed do StarUML
Extrai as coordenadas de um ERD .mdj pro positions.json — o diagrama que vivia no StarUML mantém o layout.
Auto-update
Novas versões chegam do GitHub e instalam sem assistente. Você escolhe reiniciar agora ou depois.
Sem build, 1 dependência
Node 24, uma dependência só (express). Sem banco próprio, sem build step, sem stack de auth.
Local-first & seguro
Escuta só em 127.0.0.1, com guarda anti DNS-rebinding e anti-CSRF. Roda no seu Windows ou no navegador.
A identidade é a sua. O app nunca guarda token.
No modo local não existe campo de senha, token nem conta. Commits usam o user.name / user.email do clone; push e pull usam o credential helper ou a chave SSH do sistema, igual ao git no terminal. Se o seu git consegue pushar, o Gabbro consegue.
- Credencial do sistema
Nenhum token digitado no app. Atribuição e controle de acesso são os do git/provedor. - Edição na branch ativa
O commit cai na branch checked-out; as demais são somente leitura (git show). O app nunca faz checkout. - Sem lock-in
O DBML é formato aberto e documentado. Nenhum app, e nenhuma empresa, fica dono do seu schema.
Código aberto de verdade, sob licença MIT
O Gabbro nasceu de uma coceira pessoal — ver o schema do banco como ele merece — e fica melhor com mais mãos. Stack pequena, sem build, issues à mão. Traga uma ideia, um parser melhor ou um fix.
Comece pelas issues
Pegue uma good first issue ou abra a sua. Melhoria de layout, de docs ou de parser DBML, tudo conta.
Stack sem susto
Server Express, front sem framework nem build, Electron no desktop. Node 24 e uma dependência. Clonou, rodou.
DBML aberto
O formato é do dbml.dbdiagram.io. Some um tipo, um decorator, um caso de borda no parser.
PRs, ideias e bug reports são bem-vindos.
A rocha que cristaliza devagar
O gabro é a rocha ígnea que se forma no fundo, esfriando bem devagar. Esse tempo deixa os cristais crescerem grandes e visíveis a olho nu — cada mineral com sua forma, encaixados numa estrutura legível. É a imagem exata de um bom schema: entidades bem definidas, relações claras, nada escondido.
E, como a rocha, o Gabbro é escuro por natureza e sólido: tema dark de ponta a ponta e dados que são só seus, no seu git. Primo do basalto — mesma lava, só que a que teve tempo de virar cristal.
Comece em minutos
Baixe o app, ou rode do código apontando pro seu clone do repo de dados.
Baixe ou clone
Pegue o instalador .exe pra Windows, ou clone o repo pra rodar do código.
Aponte o clone-DBML
Passe um clone git existente (com .git/) do seu repo de dados.
Abra o estúdio
Sobe em 127.0.0.1:8080 e abre o browser. Diagrama, docs, diff e histórico do schema.
App não assinado. O Windows pode mostrar o SmartScreen no 1º uso: Mais informações → Executar assim mesmo.
Sem identidade git na máquina? O Gabbro vira leitor puro e mostra o git config que libera a edição.