uuid: - value: 2d05cfa9-d5cf-41df-ba50-2c55b776f1f5 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:08+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'Mermaid - markdown for charts' created: - value: '2024-08-18T00:00:00+00:00' changed: - value: '2025-05-11T09:00:08+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2024/08/18/mermaid-markdown-for-charts langcode: en body: - value: |

Whilst mentoring at the School of Code Hackathon, something the team and I discussed was documentation and documenting any decisions we made about the approaches they were taking, the techologies to use, etc.

We kept it simple by adding this to a README file, but I also mentioned ADRs and technical decision documents and how they can be written in Markdown and stored alongside the code in the same repository.

Another approach to documentation that I like is to create diagrams and flow charts.

I've used various tools to do this, but recently, I've started to use Mermaid, which is a Markdown-like syntax to generate charts and diagrams.

Here's the thing

There are online tools to do this, but there's also mmdc command-line tool that generates diagrams locally.

This means that I can easily generate diagrams and store in the codebase too, and have them version-controlled so I can see the history as they evolve during the project.

Want an example?

Here's one I did for the Build Configs tool, which I recently open-sourced, and that GitHub renders by default (you can click the 'Code' tab to see the code for the chart).

format: full_html processed: |

Whilst mentoring at the School of Code Hackathon, something the team and I discussed was documentation and documenting any decisions we made about the approaches they were taking, the techologies to use, etc.

We kept it simple by adding this to a README file, but I also mentioned ADRs and technical decision documents and how they can be written in Markdown and stored alongside the code in the same repository.

Another approach to documentation that I like is to create diagrams and flow charts.

I've used various tools to do this, but recently, I've started to use Mermaid, which is a Markdown-like syntax to generate charts and diagrams.

Here's the thing

There are online tools to do this, but there's also mmdc command-line tool that generates diagrams locally.

This means that I can easily generate diagrams and store in the codebase too, and have them version-controlled so I can see the history as they evolve during the project.

Want an example?

Here's one I did for the Build Configs tool, which I recently open-sourced, and that GitHub renders by default (you can click the 'Code' tab to see the code for the chart).

summary: null field_daily_email_cta: { }