Writing a business plan with markdown and mermaid

I love writing when I can focus on the task and not get bogged down in formatting.

Jonathan Van Eenwyk

2 minute read

I love writing when I can focus on the task and not get bogged down in formatting. That’s why, over the last few years, I’ve gradually converted important old documents and written most new documents in Markdown format. I primarily use Typora which is a fantastic editor that emphasizes keeping focus on the writing experience.

Lately, I’ve been busily writing a business plan to forecast the next few years. Turns out, I can do far more than I imagined by leveraging Typora’s support for Mermaid, a human-readable format for describing flowcharts and diagrams. Building a forecast gantt chart was a breeze:

Gantt Chart with Mermaid

Turns out, Mermaid supports milestones too, but it’s not currently documented. After digging around a bit, I figured it out and it’s actually remarkably easy:

Mermaid milestones

gantt
  dateFormat YYYY-MM
  axisFormat %b %Y
  
  Networking : 2021-01, 2021-11
  Join business group : 2021-06, 2022-06
  First hiring target :milestone, 2021-06, 2021-06
  Second hiring target :milestone, 2022-06, 2022-06
  Reach first revenue target :milestone, 2022-01, 2022-01
  Reach second revenue target :milestone, 2023-01, 2023-01

Just adding :milestone was all that’s needed. The milestone appears halfway between the start and end dates, so you need to specific both dates unless you want to calculate the dates based on other markers. Pretty slick!

It was a little harder to build a normal-looking organizational chart, but I was still able to build something that’s good enough:

Mermaid org chart

Yeah, it’s not oriented top-to-bottom, but that’s primarily because mermaid doesn’t appear to have any advanced layout options and I have a lot of depth in my org chart.