Documentation as Code Tech Stack
This page contains all the modern tools, languages and frameworks, platforms and techniques you need to know to treat documentation like code.
- Contexture in Tools added
Table of Contents
Asciidoctor is an open source text processor and publishing tool that converts plain text into various output formats, such as HTML, PDF, EPUB, and more. It is designed to be a modern implementation of the AsciiDoc markup language, which was created as an alternative to Markdown.
Doctoolchain is a toolchain used to build, test, and publish software documentation.
It is a set of open-source tools that automates the documentation process, including building documentation from source code, generating HTML, PDF, and other formats, and publishing to various platforms. It aims to simplify the documentation process and reduce the time and effort required to create high-quality documentation.
Doctoolchain is popular among developers, technical writers, and documentation teams who want to streamline their documentation workflow.
A command-line tool for working with a log of Architecture Decision Records (ADRs).
The context mapper is a tool used in domain-driven design (DDD) to identify and visualize the different contexts within a complex business domain. It helps to break down a large domain into smaller, more manageable parts and to identify the relationships and boundaries between them.
The context mapper can be used to create a context map, which is a diagram that shows the different contexts and their relationships, and can help teams to better understand the domain and design more effective software systems.
Typically, a bounded context canvas is created on physical paper using post-ITs, while the digital versions are usually just a reflection of the physical representation, for example using Miro. This means that the captured information is presented as free text on virtual post-ITs and isn't stored in a structured way. This prevents further data processing and visualization of the information.
This is where Contexture comes into play, the:
- stores information about a BoundedContextCanvas in a structured way instead of just using free text on (virtual) Post-ITs,
- allows explicit connections between different bounded contexts,
- supports updating and versioning of the information over time,
- allows to export and visualize the information from the application,
- and helps people to input data for a BCC easier
Languages & Frameworks
AsciiDoc is a lightweight markup language used to write technical documents, user manuals, and other forms of technical documentation. It is based on the ASCII text format and uses plain text files to create structured documents that can be easily converted to HTML, PDF, and other formats. AsciiDoc provides a simple syntax for formatting text, creating tables, inserting images, and other advanced document elements. It is also highly extensible, allowing developers to create their own macros and plugins to add additional functionality to their documents.
PlantUML is an open-source tool that allows developers, analysts, and other users to create UML (Unified Modeling Language) diagrams quickly and easily. It uses simple text-based syntax to define UML diagrams, making it easy to create diagrams without needing to use a graphical tool. PlantUML supports a wide range of UML diagrams, including class diagrams, activity diagrams, use case diagrams, sequence diagrams, and more. It can also generate output in a variety of formats, including PNG, SVG, and PDF.
D2 is a scripting language for diagrams that converts text into diagrams. It stands for Declarative Diagramming. Declarative, that is, you describe what you want to represent in a diagram, and it generates the image.
Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual interfaces for other technical domains.
The Structurizr DSL is a domain-specific language (DSL) for describing software architecture models using code. It allows developers to define system components, their relationships, and their interactions using a concise and expressive syntax, which can be easily version controlled and shared with other team members. The DSL is designed to be easy to read and understand, and it supports a variety of output formats, including diagrams, tables, and JSON. The Structurizr DSL is part of the Structurizr toolset, which is a collection of tools and libraries that help software teams create and maintain architecture models.
Diagrams lets you draw the cloud system architecture in Python code.
It was born for prototyping a new system architecture without any design tools. You can also describe or visualize the existing system architecture as well.
Ilograph is an interactive diagramming tool for documenting complex systems. It's designed for engineers of all types who want to create documentation that is more detailed, comprehensive, and understandable than is possible with traditional static diagrams and text.
arc42 is a template for creating software architecture documentation. It provides a structure and guidelines for documenting software architecture.
Kroki provides a unified API with support for creating diagrams from different textual descriptions.
Terrastruct is a diagramming tool specialized for software architecture and other complex systems such as the domain your business operates in.
What makes this different from other diagramming tools is that it gives you a multidimensional view of your system. Define layers to go up and down the stack, scenarios to explore hypotheticals or error cases, and use frames for defining sequences.
Structurizr Cloud Service
Structurizr Cloud allows you to get started with Structurizr quickly, without the need to host and update software on your own servers.