Skip to main content

Why Docusaurus

· 3 min read
Hagen Morano

When we introduced our chapters as part of our circle based structure, we had the idea to publicly announce what our chapters are doing, what technologies they are using and how they are working. When it came to the tooling decision, Docusaurus came up pretty quickly as it comes with multiple features that fit our technology stack out-of-the-box:

React

As React is our front end javascript library of choice, it felt quite familiar to extend Docusaurus to our needs.

Markdown

Docusaurus articles can be written in Markdown syntax. This also allows "non-tech" colleagues to quickly get into writing articles without the need to learn JSX - a syntax extension for JavaScript used by React. Additionally, our colleagues are used to work with GitLab, which is also using Markdown as markup language in their editor.

Document versioning

Docusaurus comes with document versioning for its documentation plugin which helps keeping track of changes inside the chapters e.g. changes in technologies or processes.

Multiple documentations

Through its configuration file, Docusaurus can be used to serve multiple documentations: This is an important feature, as we have multiple chapters and therefore multiple chapter documentations that need to be maintained by different people.

Already styled

We could get rid of almost all styling workload as Docusaurus already comes with some neat styling that can be easily adapted in most cases (See Cons)

SEO

Docusaurus provides a convenient way to add SEO (search engine optimization) to our pages. In fact, every author can add custom metadata to his blog entries inside his Markdown file!

Performance

Docusaurus is a static site generator: It creates separate .html files for each page (e.g. a blog entry) which significantly increases the performance of the pages compared to other approaches like SPA (single page application) or SSR (server side rendering).

...and a blog?

When we had our internal discussions about the tooling for the chapter page, our very own Stephan Hochdörfer came up with the requirement of a new blog engine (Read more on his post about the migration from Silverstripe to Docusaurus) which Docusaurus also covers.

Of course there are even more features provided by Docusaurus, like Internationalization or a Search which by the time of writing have not been required (stay tuned! 🚀)

Cons

Despite all the positive aspects of Docusaurus we experienced some obstacles:

Writing articles

People who want to write blog articles will have to set up the docusaurus project locally, create new folder(s), files etc. to get a preview of their articles. This requires a local setup of node and a node package manager (like npm or yarn). We are currently working on a more seamless flow to write articles for all authors.

"Infima"

For more complex layouts, the styling framework used by Docusaurus ("Infima") is a little limited. For our use-case it would have been better if Docusaurus had stuck to a CSS framework like Tailwind CSS.

Conclusion

Using Docusaurus is a breeze - all the features it provides feel well-chosen and meaningful. The time it took us to set up a blog and multiple documentations was impressively low.