Our previous support page had lost its luster over the years. Originally developed in-house using Ruby on Rails, it initially provided an efficient way to create and edit articles directly on the website using Markdown. However, as time went on, the management of the page became increasingly challenging, and the lack of version control became a significant limitation. This led to the desire within our team to have a support page that allowed Markdown editing via Git.
So, as a trainee project, we started looking for an alternative for our support page and discovered Docusaurus.
Docusaurus is an open-source static site generator originally developed by Facebook. It offers an easy way to create appealing and well-structured static websites. By easily structuring the website within a GitLab repository, we were able to create several useful CI pipelines that made it easier for us to maintain the website. We could also generate a preview of the support page in GitLab Pages, allowing our team members to review their changes on the website before they were actually published.
During the implementation phase, we encountered several challenges. The most significant difficulty was migrating articles from the old support page to the new one because the previous support page had a different structure. To simplify the migration process and avoid errors, we wrote a migration script in Golang. This script read the old data and generated new Markdown files in the correct location within the repository of the new support page. We also had to ensure that old links continued to function. Fortunately, Docusaurus offered a plugin for managing redirects within the repository, allowing us to migrate them seamlessly using the migration script.
The deployment of the project is managed by Deploio, Nine’s latest product, in collaboration with Renuo. Deploio only needs the URL and access credentials for the GitLab repository as input, the rest is handled automatically, without the need for complex settings and parameters. As soon as changes are merged into the master branch of the repository, the public support page is updated to the latest version.
Finally, we can now proudly present a new support page to our customers and conclude this successful apprentice project. I would like to thank my team for the great support during this project and hope that such projects will be made possible for the trainees in the future as well.