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