For real.
and on power of freehand drawing.
Organize your architectural diagrams respecting the layering of the C4 model.
Typically, various architectural diagrams share some elements (databases, servers, clients, etc.).
Add these elements to the library and include them in your diagrams. This way, you will promote the sharing of architectural elements and their characteristics within your team and speed up the creation of diagrams.
The layering of the C4 model enables the creation of clear and understandable diagrams. Moreover, you will often create diagrams focusing on specific systems, which, in turn, integrate with other systems.
By linking diagrams of different levels or systems together, you will enable interactive navigation that allows users to have a clear and detailed view of your architectures.
In the case of complex architectures, with many diagrams and shared architectural elements, it's important to quickly search for the existence of specific content to avoid duplication and encourage reuse.
For this reason, in addition to the standard search functionalities (within the library or in the list of diagrams), Mina integrates a keyword search feature in your diagrams with the ability to access them quickly with a click.
Mina provides various plugins and libraries to include interactive diagrams directly into the most common documentation platforms (e.g., Confluence, Docusaurus, etc.) using a URL (e.g., Git repo URL), thus eliminating the need for exporting them.
If you need to export the diagram as a static image instead, you can do so directly from Mina.
Even offline.
- C4 model centric: Mina is based on the C4 model approach to diagramming software architecture.
- Serverless: a diagram as code application, without the need of installing servers or deploying software. Just download the application and use it.
- Offline: the rendering system of Mina is based on Rust, and compilation into WASM enables its portability across different systems. This allows for the quick and immediate translation of code into diagrams, without the need to depend on external servers, thus also available offline.
- Simple: an interface reduced to the essentials and simple to use.
Just based on PlantUML.
Specifically, Mina supports the syntax of the official PlantUML C4 model standard library.
This allows you to reuse PlantUML C4 code created with other tools and immediately leverage Mina's capabilities. If you decide to leave Mina (but we hope you don't), you can still reuse the PlantUML code created in Mina with other tools that support PlantUML.
PlantUML was born in 2009 and is a well-known open-source tool with a mature and widely used DSL. In the meantime, several PlantUML extensions have been released. Among these is C4-PlantUML, the standard library that supports the specifications of the C4 model.
Applications with fully automated rendering systems, in the presence of many architectural elements, generate cluttered and hardly understandable diagrams, making them lose their utility.
For this reason, Mina adopts and integrates a semi-automated rendering system: starting from the code, it automatically renders various architectural elements, but leaves the positioning activity to the user.
In the future, Mina will seek to automate rendering even more, without ever neglecting the fundamental goal: the comprehensibility of the diagrams.
.puml
files: contain the code of the diagrams..json
files: contain specifications of the diagrams, including position, size, and metadata of the elements within a diagram.
Thus, the project only contains human-readable code without any binary data or incomprehensible metadata files.
This feature makes a Mina project easily versionable with tools such as GitHub, facilitating the adoption of common software development best practices like code reviews, pull request approval processes, continuous integration, and more.
By using these packages:
- You can include the diagrams using their URL, without the need to export them.
- As a result your documentation will always render the most updated diagram based on your versioning system, without the need for constant manual updates.
- The diagrams will be interactive, allowing navigation across various connected architectural diagrams.
Mina integrates AI to generate diagram code based on a natural language description of your architecture.
Mina uses OpenAI's gpt-3.5-turbo-instruct
model to provide the functionality of generating code for architectural diagrams from natural language descriptions. Since Mina is and always will be open source and free, and since the gpt-3.5-turbo-instruct
model is not free, you will need to configure your OpenAI API Key within Mina if you want to use this feature.