Architecture diagrams should be code

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor
Add the SurveyJS white-label form builder to your JavaScript app (React/Angular/Vue3). Build complex JSON forms without coding. Fully customizable, works with any backend, perfect for data-heavy apps. Learn more.
surveyjs.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. java

    Structurizr for Java (by structurizr)

    - https://structurizr.com/ (by Simon Brown, the creator of the C4 model)

  2. SurveyJS

    JavaScript Form Builder with No-Code UI & Built-In JSON Schema Editor. Add the SurveyJS white-label form builder to your JavaScript app (React/Angular/Vue3). Build complex JSON forms without coding. Fully customizable, works with any backend, perfect for data-heavy apps. Learn more.

    SurveyJS logo
  3. diagrams

    :art: Diagram as Code for prototyping cloud system architectures

  4. C4-PlantUML

    C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures

    The C4 model (https://c4model.com/) is great for architecture diagrams. You can use different tools to generate them. Here are the ones I've been using:

    - https://github.com/plantuml-stdlib/C4-PlantUML

  5. c4-notation

    Technical resources for using the C4 model for visualizing software architecture.

    The C4 model (https://c4model.com/) is great for architecture diagrams. You can use different tools to generate them. Here are the ones I've been using:

    - https://github.com/plantuml-stdlib/C4-PlantUML

  6. flowchart-fun

    Easily generate flowcharts and diagrams from text ⿻

    I totally agree the distinction exists, just wanted to say https://flowchart.fun/ is nice because you can run layout algorithms and then tweak to your liking w/in the same editor

  7. KeenWrite

    Discontinued Free, open-source, cross-platform desktop Markdown text editor with live preview, string interpolation, and math.

  8. kroki

    Creates diagrams from textual descriptions!

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. keenwrite-themes

    Discontinued Document typesetting configurations using ConTeXt

  11. mermaid

    Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown

  12. asciiflow

    ASCIIFlow

    This is perhaps a tangent, but I've used https://asciiflow.com/#/ a few times now to insert diagrams into my source code as comments. I understand people might have negative opinions on the efficacy of comments that this would only exacerbate, but nevertheless I've appreciated what AsciiFlow gave me.

  13. foam3

    FOAM: Feature-Oriented Active Modeller, Version 3 (unstable)

    Sort of related but an interesting idea is take it one step further with the Feature Oriented Active Modeler (FOAM) [1,2] paradigm and use code to model your whole system, which generates diagrams model, and runnable code in whatever language needed. The project is still young and it may not be practical today with the available tooling but it seems like a cool idea and project. It is influenced by the unix principle of “coding the perimeter not the area” which is essentially factoring your dev tasks into building NM capabilities, but instead of building NM things individually build N+M tools that can be composed into N*M capabilities [2].

    So with FOAM the idea is if we want to maintain a model of our software, and build it as well, what if we can use one composable tool to generate both, rather than model everything and code it separately.

    [1] https://github.com/kgrgreer/foam3

    [2] https://foam-framework.github.io/foam/

    [3] https://m.youtube.com/watch?v=3Ea3pkTCYx4

  14. excalidraw

    Virtual whiteboard for sketching hand-drawn like diagrams

    Yes! I use https://excalidraw.com/ for this. Its free and open source, is super easy to use, runs locally, looks nice without folks getting the impression it's a source of truth

  15. TALA

    A diagram layout engine designed specifically for software architecture diagrams

    This is a problem with the languages, not a fundamental flaw. Manipulating text has a much higher ceiling than drag and drop, in terms of speed and simplicity. Every programmer has their own ecosystem for manipulating text. I can grep, version control, diff, jump with Vim key bindings, etc.

    The layout engines are very hard. We've been making https://terrastruct.com/tala for over 2 years now. At first it seemed dubious whether it was even possible to beat Graphviz, but we've been designing it to emulate how diagrams might look on a whiteboard drawn by humans. That's a very different heuristic than the theoretical hierarchical cross-minimizations that previous algorithms strive for, and it's yielded good results for a subset of diagrams.

  16. d2

    D2 is a modern diagram scripting language that turns text to diagrams.

    you can do this in Terrastruct (https://www.youtube.com/watch?v=EhxVVkxv2Ns), which uses the open-source D2 (https://github.com/terrastruct/d2) for its code

  17. Moose

    MOOSE - Platform for software and data analysis. (by moosetechnology)

    I use TLA+. Almost every system has some sort of safety property that needs to be guaranteed (bad things must never happen). A good many have liveness properties (something must eventually happen). Diagrams are well and good for documentation but tell you nothing about the specifications of the system.

    I tried UML once but found it lacking.

    When I’m writing documentation I like to use diagrams. Mermaid has served me well. It’s integrated into GitHub these days which is convenient. I’ve also used ditaa and graphviz to good effect. With org-mode and org-babel it’s quite easy to build executable documentation: take the query from a database to build a rough ER diagram with graphviz, a shell command on a jump box to get the data-plane hosts to build into a network diagram, etc.

    Another interesting tool: https://github.com/moosetechnology/Moose I haven’t spent that much time with it but I learned enough to generate a dependency graph for a NodeJS project that was useful for planning refactoring work.

  18. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ask HN: Guidelines for making clear architecture diagrams

    3 projects | news.ycombinator.com | 1 May 2024
  • C4 Model - The Basics

    3 projects | dev.to | 27 Oct 2024
  • Vizdom: Diagrams as Code

    8 projects | news.ycombinator.com | 1 Sep 2024
  • How to draw beautiful software architecture diagrams

    17 projects | news.ycombinator.com | 27 Oct 2023
  • Which tools do you use to create diagrams?

    5 projects | /r/golang | 18 Apr 2023

Did you know that TypeScript is
the 1st most popular programming language
based on number of references?