For real.
and on power of freehand drawing.
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.
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.
Diagrams-as-code is great, but your team might not be familiar with the C4-PlantUML syntax and may not be productive right away.
To overcome this hurdle, Keadex Mina provides a low-code features: you can create C4 diagram elements using just the UI, and Mina will generate the PlantUML code for you.
Thanks to Mina Hooks, you can execute your custom code (e.g., for storing data in a database, creating metrics, analytics, dashboards, etc.) every time an event occurs in Mina (e.g., when a user creates, deletes, or modifies a diagram). The hooks receive in input a structured C4 representation of the diagram(s) affected by the event.
Keadex Mina is one of the few tools with a code editor that provides an IntelliSense feature for the C4 PlantUML DSL.
With IntelliSense integrated into the Mina code editor, you and your team can code diagrams faster and with fewer errors. The parameter info and member lists will also assist you if you're not experienced with the C4 PlantUML syntax.
Tagging your diagrams can be useful to: speed up and simplify the search for a specific diagram, filter diagrams by specific labels, group diagrams with common characteristics.
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.
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 provides three options for rendering diagrams:
- Auto Layout: Let Mina position the diagram elements. This will speed up your work but may result in messy diagrams.
- Custom Layout: Have the freedom to decide how your diagrams will look. This will slow down your work, but your diagrams will look great.
- Hybrid Layout: Enable auto layout to generate initial positions, then disable it to customize them. This is a compromise in terms of speed and final rendering.
The choice between these options depends on the complexity of the diagram.
.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.
Since Mina strongly supports open-source technologies, it offers a configurable AI integration that allows you to choose the AI APIs and model you want to use.
Whatever AI APIs you decide to implement, make sure they are compatible with the OpenAI format. Tools like LiteLLM can be used to ensure the OpenAI format.
This flexibility allows you to leverage AI features for free by running an open-source AI model like Llama locally, using tools such as Ollama.
For more information, please visit the Mina documentation.
Keadex Mina will then interpret the AI's response and utilize its own rendering system to render the generated diagram code.