Show HN: Reladraw – Uma linguagem de diagramas onde você decide onde colocar as coisas
Uma nova linguagem de diagramação, Reladraw, tenta preencher a lacuna entre ferramentas de auto-layout como Mermaid, Graphviz e D2 e ferramentas manuais como draw.io, permitindo que autores especifiquem posicionamento relativo (“à direita de”, “abaixo de”, lados específicos de arestas) enquanto o mecanismo cuida da aritmética e do roteamento. Os comentaristas elogiam sua clareza de intenção, controle refinado e adequação para agentes de IA que precisam de layouts determinísticos, ao mesmo tempo em que a comparam a sistemas como Pikchr, TikZ, PlantUML e modelagem C4. Pedidos de recursos e melhorias iniciais se concentram em roteamento de arestas, temas, construções multilinha e semelhantes a macros, e integração em editores e fluxos de trabalho com markdown.
Recepção geral
- Muitos comentaristas estão entusiasmados; vários dizem que isso preenche uma lacuna de longa data entre ferramentas de auto-layout (Mermaid, Graphviz, D2) e ferramentas manuais (Draw.io, Excalidraw).
- Ponto de dor comum: lutar contra motores de layout para corresponder a uma imagem mental; o posicionamento relativo explícito do Reladraw é visto como um alívio.
- Alguns dizem que vão experimentá-lo em diagramas de trabalho reais ou integrá-lo em fluxos de anotação/IDE (Obsidian, VS Code, IntelliJ).
Comparação com ferramentas existentes
- Comparado a Pikchr e pic: são “turtle graphics” ou baseados em coordenadas/deslocamentos; Reladraw é baseado em restrições/relacionamentos (por exemplo, “à direita de A”).
- Comparado a Mermaid/Graphviz/D2: estes decidem o layout automaticamente; Reladraw deixa usuários/agentes decidirem o posicionamento, mas ainda lida com aritmética e espaçamento de colisão.
- Comparado a TikZ/PlantUML: TikZ é mais poderoso, mas pesado em LaTeX; PlantUML é flexível, mas ainda orientado por dicas de layout. Reladraw busca uma DSL de diagramas mais restrita e direta.
- Alguns dizem que o TALA do D2 já fornece layout com restrições avançadas, mas outros acham que ainda não oferece controle determinístico como o Reladraw.
Design da linguagem e capacidades
- Ênfase em nós, arestas e relações relativas simples (esquerda/direita/abaixo/de).
- As arestas suportam ângulos retos (afiados/arredondados), estilos (contínuo tracejado pontilhado), espessura e portas específicas por lado com espaçamento entre múltiplas arestas em um lado.
- Restrições conflitantes ou ambíguas produzem erros explícitos em vez de substituições silenciosas; há debate sobre erros rigorosos versus avisos e padrões sensatos.
- Filosofia atual: sem blocos, sem instruções em várias linhas; vários comentaristas pedem continuações de linha e rótulos longos/em várias linhas, observando trade-offs do parser.
- Recursos planejados: atributos personalizados, variáveis, funções, possíveis macros com parâmetros e melhores mecanismos de reutilização (por exemplo, para diagramas de sequência/C4).
- Discussão sobre parametrização a partir de dados externos (CSV/JSON) e geração mais programática.
Roteamento, temas e bugs
- Não há roteamento automático completo com desvio de obstáculos, mas as arestas podem “passar entre” nós; alguns usuários querem menos microgerenciamento do roteamento.
- O comportamento de arestas em ângulo reto e curvadas está sendo iterado; bugs em curvatura de arestas e temas foram relatados e corrigidos rapidamente.
- Vários temas (claro/escuro, incluindo um semelhante ao “Vesper”) agora existem; foram notadas inicialmente falhas no Safari/temas.
Ecossistema e integração
- Já existe uma extensão do VS Code para renderização e realce de sintaxe.
- Embutimento em Markdown como
mermaidno GitHub não é possível no momento; ferramentas locais podem suportá-lo via plugins. - A CLI atualmente gera diagramas renderizados, mas há interesse em um modo que produza apenas posições resolvidas (JSON), para que outros renderizadores/backends possam ser usados.
- A implementação é em TypeScript/Node; alguns querem binários menores, sem dependências. Há menções a experimentos com ferramentas como scriptc e Deno, com trade-offs no tamanho do binário.
IA/agentes e fluxo de trabalho
- Vários comentaristas querem explicitamente isso como uma DSL de diagramas “amigável a agentes”: agentes podem expressar layout relativo em vez de adivinhar coordenadas ou lutar contra auto-layout.
- Alguns defendem abordagens ainda mais “visual-first” (programação visual/UML pura), enquanto outros relatam bons resultados deixando agentes conduzirem Draw.io ou Graphviz.
- Uma pessoa observa que agora muitas vezes apenas pede a modelos de fronteira que emitam SVG diretamente, mas outros consideram uma DSL estável valiosa para reprodutibilidade e controle.
Críticas e ceticismo
- Alguns consideram a sintaxe e as restrições potencialmente incômodas para rótulos longos e layouts complexos até que haja multiline/continuação.
- Preocupações sobre fragmentação de linguagem versus estender Mermaid ou D2; outros acham que misturar auto-layout e fortes restrições seria complexo demais.
- Um comentarista questiona o valor do projeto se grandes partes parecerem geradas por LLM, sugerindo desconfiança, enquanto outros rebatem essa posição.
- No geral, há uma mistura de entusiasmo pela ideia e reconhecimento de que ergonomia, reutilização e suporte ao ecossistema determinarão a adoção de longo prazo.