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 mermaid no 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.