11 best open source tools for Software Architects

Published by Terrence Aluda on March 19, 2025
11 best open source tools for Software Architects

A few months ago, I decided to take my software development skills to the next level by getting into Software Architecture. I had worked on several projects before, but I realized that understanding how to structure and design scalable, maintainable software was just as important as writing clean code.

I started by exploring fundamental best practices, principles, and methodologies in software architecture. I also contacted some experienced Software Architects over Slack and Reddit communities, asking them about the tools they use daily. The deeper I dug, the clearer it became that choosing the right tools is necessary for any architect. From diagramming system components to modeling infrastructure, the right tools make architectural decisions more structured and effective.


To use what I had learned, I chose to use open-source tools to design a fintech application. During the process, I concluded that there isn't a single best tool for software architecture. The kind of architecture you're working on, your role, and the size of your organization will all affect the tools you need. For a small SaaS application, a solo developer may use code-first, lightweight tools, whereas an enterprise architect creating distributed systems may need formal modeling frameworks.

I also figured out several logical categories of software architecture tools based on job stories. Those include modeling and diagramming, design and analysis, cloud architecture design, collaboration and documentation, code analysis & visualization, and testing. While I focus primarily on modeling tools, these broader clusters help capture the full range of architectural needs.

For software architects, diagramming is essential for understanding system components, data flows, and infrastructure.

With that in mind, I’ve compiled a list of tools that I find the most useful and accessible. I leaned toward tools that help with visualizing, documenting, and structuring architectures. Let's get started.

1. Graphviz

Graphviz is the first tool on our list because several modeling and diagramming tools extend and use it in some way. It is a software that provides a code-based approach to generating graph modeling diagrams.

NOTE: The words text-based and code-based will be used interchangeably in the article. They mean the same thing- using some form of grammar to draw diagrams and models. Another note is that code-based diagram generation makes it easy to add version control and integrate CI/CD into your diagram/model creation process.

Why should architects care about graph visualization? Many applications, especially large ones, are highly interconnected with many dependencies, microservices, APIs, third-party integrations, etc. To clearly understand these interconnections and their relationships, architects need to map them visually. Graphviz provides an efficient way to define and render these graphs.

Key features of Graphviz

  • It uses the DOT Language, which is a simple but powerful grammar for generating graphs.
  • Graphviz has Command Line Interface utilities that allow users to convert DOT scripts into graph diagrams quickly. This allows you to automate your diagram-generation workflows using scripting.
  • Graphviz offers several layout engines that use specialized algorithms to structure graphs. This gives architects the choice to work with hierarchical, radial, or force-directed layouts in their graph presentation.
  • Architects can control node positioning, edge connections, and hierarchical structures using its customizable layouts feature. This ensures that the diagrams you generate are suited to your specific needs.
  • It supports a wide range of output formats, like PNG, SVG, PDF, and JSON. These options make it easy to integrate visuals generated by Graphviz into web applications and documents.

I view Graphviz as a tool meant for extensibility and being used as a base component for other modelling tools. For graph connections though, I find it easy to use diagram-based tools with drag-and-drop features to draw them.

2. PlantUML

Following Graphviz, the next tool on our list is PlantUML. This is a browser-based diagramming tool that enables architects to create diagrams using simple text-based syntax.

Key features of PlantUML

  • Software architects can generate:
    • UML Diagrams like Sequence diagrams, use case diagrams, class diagrams, deployment diagrams, etc.
    • Non-UML Diagrams like ER diagrams, Gantt charts, EBNF trees, and more.
  • You can create interactive diagrams by adding hyperlinks and tooltips for additional context.
  • PlantUML allows the use of Unicode, icons, and rich-text formatting to create visually enhanced diagrams that improve readability and presentation.
  • Under the hood, PlantUML uses various rendering engines for diagram generation giving you several options. Some of the engines include Graphviz (covered earlier), Smetana (Graphviz-based), Puma, etc.
  • Exporting diagrams is flexible too as it can output PNG, SVG, LaTeX, and even ASCII art.

To get better diagrams, I would recommend changing the rendering engines because at times different engines may render slightly different diagrams.

3. D2

The next tool on our list is D2. Declarative Diagramming (D2) is a code-based diagramming tool created by Terrastruct. It streamlines the process of creating and maintaining diagrams by allowing you to:

  • Organize large diagrams by modularizing diagrams, which is similar to breaking code into smaller, manageable components. You can also group diagrams using its Containers feature to improve maintainability and reusability in complex visualizations.
  • Use globs for easily making changes in your diagrams.
  • Provide additional context and interactivity to diagrams with tooltips and hyperlinks.
  • Animate your diagrams.
  • Quickly create and share diagrams without installing anything using its online playground.
  • Use almost any natural language in creating your diagrams.
  • Easily export SVG, PNG, and PDF files directly from the command line.

I like the depth of D2's documentation and the user-friendliness that comes with it. The diagrams rendered are also great with fine and smooth finishes. However, it is not a standalone tool like a software since it is a language. Unless you are using its playground or CLI, you will need to integrate it for intuitiveness.

4. Gaphor

Gaphor is a UML 2 compliant modeling software that implements UML, SysML, and RAAML standards and includes support for the C4 model making it usable for different architectural needs.

Key features for architects

  • It supports multiple modeling standards.
  • Every element added to models is visually represented in diagrams, eliminating hidden properties or side panels. This makes your models easy to understand and navigate.
  • You can extend its functionality using plugins for code generation, documentation exports, and other integrations.
  • Using its tree view navigation feature, quickly locate and manage different elements within your model. This feature simplifies working with complex diagrams and large-scale projects.

It is better suited for those who put standard-compliance first. Also, since it is a standalone software, updates from the maintainers would not be immeadiate like browser-based tools because they will need downloading for them to get the latest versions.

5. Mermaid

Mermaid is a browser-based diagramming tool that transforms text-based definitions into dynamic visuals. It lets you write diagrams in a Markdown-like syntax that can be rendered instantly and dynamically.

Its key features include:

  • An easy-to-use syntax that feels like writing Markdown making it easy to create and modify visuals without complex tooling.
  • Dynamic rendering, i.e., you can modify diagrams on the fly using the Live Editor and instantly see updates as you edit.
  • Multiple diagram support allows architects to create flowcharts, sequence diagrams, state diagrams, and more.
  • Many available integrations for working with GitHub, GitLab, Notion, Obsidian, and other popular tools.

For those architects who want a tool that has established itself integration-wise, then Mermaid is the better option. Those coming from a JavaScript background would also love it.

6. Archi

As system architectures grow in complexity, Enterprise Architecture frameworks like TOGAF and modeling languages like ArchiMate become essential. But how can architects create clear, structured models without expensive proprietary tools? One open-source solution I found out is Archi. This is an ArchiMate modeling software designed for enterprise architects and organizations of all sizes without the high costs of proprietary software.

Some of Archi's features include:

  • The Magic Connector- a feature that automatically connects your model's elements correctly. This aids in reducing manual effort and improving accuracy.
  • ArchiMate Views & Viewpoints for aligning models with stakeholder perspectives helping ensure clarity and relevance for different target audiences.
  • Hints View which gives feedback on your models' elements and relationships helping you apply the correct modeling conventions and best practices.
  • The Visualiser that displays relationships providing a clear, structured view of complex model connections.
  • Sketch View and Canvas Modelling for brainstorming, designing, and structuring ideas before committing to a model.

For Linux users, you may find some user interface issues using this software as pointed out in the Downloads page. To update it, you might also need to uninstall the version that you have- I am not sure if this will sit well with you. The user guide is also in a PDF file, meaning architects risk following an outdated guide if they had downloaded the PDF file.

7. Modelio

Another tool that prides itself in Enterprise architecture modeling is Modelio. It supports multiple industry standards, making it an excellent choice for working across different domains, from software design to enterprise architecture.

With Modelio, architects can:

  • Model business processes, and enterprise architectures due to its support for UML, BPMN, ArchiMate, and TOGAF standards.
  • Easily exchange UML2 models between different tools using its XMI import/export capabilities
  • Publish and share models in HTML using the HTML Publisher module.
  • Add custom methodologies and techniques with its extensibility allowing them to modify the tool to their specific project needs.
  • Capitalize on Jython scripting for automating repetitive tasks and enhancing productivity.

The documentation, the website, and the GitHub code are not updated regularly, so I would deduce that it's not a tool to rely on your enterprise architecture needs.

8. Diagrams.net (formerly Draw.io)

At times, you may not require a rigid UML modeling tool. A straightforward yet powerful diagramming tool like Diagrams.net is a good choice. It integrates with cloud platforms, popular apps, and version control systems. It also offers security-first design and advanced collaboration features.

While this tool is great for UML diagrams, it doesn’t stop there. You can also create other diagram types like flowcharts, mind maps, etc.

Some of its features include:

  • Multiple storage choices, allowing users to work securely and efficiently based on their needs.
  • A rich template library for accessing a wide range of pre-built templates for platforms like AWS, Azure, GCP, IBM, e.t.c, enabling quick system modeling.
  • Automatic arrangement of elements improving readability using its auto-layout and formatting feature.
  • Collaboration and integration features for working with teams and integrating diagrams into your favorite productivity tools. Using the shared cursors feature, you can see other team members’ cursors and live edits while working on the same diagram, ensuring smooth teamwork.

The collaboration feature is only found in the production version and not the GitHub version as pointed out in the project's README.

  • It is fully customizable to the extent of being embeddable in custom software for a fully integrated experience.
  • Lastly, owing to its PlantUML and Mermaid Support, you can automate diagram creation using code-based diagramming.

This tool has a lot of features and it is a best fot for someone who wants to play around with many features in their diagramming workflows. I loved this tool the most 🙂.

9. Excalidraw

Excalidraw is another tool on our list. It is a lightweight browser-based whiteboarding tool architects can use to sketch and brainstorm modeling ideas. Its style gives the impression of the sketches being drawn by the hand. Some reasons that would make you choose Excalidraw include its:

  • Offline working support. It also autosaves work to the browser allowing you to pick off from where you were after closing your browser.
  • Secure data exchange due to the end-to-end encryption feature.
  • Multi-user editing support for team collaboration that is secure due to the encryption feature previously highlighted.
  • Image upload feature that allows you to reuse diagrams that are found in images.
  • Pre-created shapes and components for easy diagram creation.

It is easier to get started with but not for generating solid architecture diagrams.

10. tldraw

tldraw in a similar way to Excalidraw and the two bear the same features, so we won't talk about tldraw's features. However, one feature of tldraw is its SDK. The SDK can be used by developers to integrate the whiteboard into applications. Since this article is meant for software architects, we won't dive into the SDK.

My parting shot about it is the same as that for Excalidraw- it is only supposed to be used for brainstorming.

11. Cerbos PDP

Finishing off this list at number 11 is Cerbos Policy Decision Point (PDP). Cerbos PDP stands apart from the rest in that while all the other tools focus on diagramming and visualization, Cerbos PDP serves a different purpose. It provides an open-source authorization solution that can be up and running in minutes. I think that when designing software architectures, having secure access control is as important as defining system components and data flows.

So with Cerbos PDP, you can:

  • Define and manage authorization policies from a single location, ensuring consistency in policy updates across the system.
  • Implement fine-grained access control based on user roles, attributes, and other contextual factors, ensuring access is adjusted to specific user circumstances.
  • Evaluate and enforce policies instantaneously as access requests are made, ensuring security without compromising system performance.
  • Use authentication service providers of your choice since Cerbos PDP supports almost all providers.

Feature summary and comparison of the tools

Wrapping this listicle is this side-by-side table comparison of the key features contained by these tools. The table may assist you in making a choice of the tool you would want to use for your architecture requirements. Of course, there are many more awesome open-source tools that software architects can leverage. But let’s save those for the next article.

Tool Code/Text-based Drag-and-drop-based Built-in collaboration support Browser-based
Graphviz Yes No No No
PlantUML Yes No No Yes
D2 Yes Only in the playground No No (Only the playground)
Gaphor No Yes No No
Mermaid Yes No Yes Yes
Archi No Yes No No
Modelio Yes Yes No No
Diagrams.net No Yes Yes Yes
Excalidraw No Yes Yes Yes
tldraw No Yes No Yes

Book a free Policy Workshop to discuss your requirements and get your first policy written by the Cerbos team