Docusaurus first impression and stealing like an open sourcer
Tags: opensource, beginners, tutorial, webdev
Published: 2022-10-31 21:36:48

## Hello Everyone!

Today, I am going to share a new cool tool I learned about from my professor as well as the new changes that I did to my SSGulnur command-line tool.

### Docusaurus 🦖

Today, I explored a new tool called [Docusaurus](https://docusaurus.io). It was created by Facebook and is now part of the [Meta Open Source](https://opensource.fb.com). Docusaurus helps to create beautiful documentation websites for open source projects with no need of web knowledge, so that the users can focus on the content instead of implementation. It is full of additional features, very easy to use and therefore is very popular and widely used. One of the open source tools you are using has definitely built its documentation with Docusaurus. For example, [React Native](https://reactnative.dev), [Jest](https://jestjs.io), [Home Assistant](https://developers.home-assistant.io) are all using it. 

### Experience ✨

I decided to check out Docusaurus myself and created a sample website. I followed the [Docusaurus documentation](https://docusaurus.io/docs) and its [installation instructions](https://docusaurus.io/docs/installation). I did a mini [5-minute tutorial](https://tutorial.docusaurus.io) and decided to deploy my website. At first, it was hard as I tried to do it all manually myself, but then I found [these amazing deployment docs](https://docusaurus.io/docs/deployment) (which always existed, but I am a lazy developer who's hands type code before checking the docs 🚩). Apparently, it only required one command lol.

So, I would confirm that this tool is so easy to start and use. 

You can see my [sample repo](https://github.com/gulyapulya/docusaurus) and live GitHub Pages website at https://gulyapulya.github.io/docusaurus/. 

### Stealing like an open sourcer 🥷🏻 he-he

Docusaurus does something similar to my SSG tool which is converting different types of files to html static pages. However, it does it much better and is full of cool features which I am very tempted to duplicate.  

I recently found out that in the open source world, you can copy from each other as long as the license lets you to. Docusaurus uses an [MIT license](https://github.com/facebook/docusaurus/blob/main/LICENSE) which allows you to "use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software," as long as you continue the license. 

### SSGulnur's new feature 👀

Previously, I was required to implement the markdown support manually which meant that the use of public libraries was prohibited. My tool could only support limited styling elements such as header1, header2, links, bold and italics, but now I can finally let my tool have a full markdown support by using [Showdown](https://github.com/showdownjs/showdown). 

I chose this feature as it seems foundational to me. Other features such as different themes, improved accessibility and configurable sidebar are nice to have but less important than the markdown support. 

I filed a new [issue](https://github.com/gulyapulya/SSGulnur/issues/12) and started working on it on the new branch. I saved every step as commits which I squashed into one later. Everything went as planned and the implementation took me about what I expected, as I was not creating anything new myself and was only working on integrating an existing tool into my project.

### New feature always means new issues 🤡

However, when I started testing, I realized the tool works but there were still many places for improvement. For example, there is a [bug](https://github.com/gulyapulya/SSGulnur/issues/13), which probably existed before but I never noticed, that the last paragraph would not get converted and pasted into resulting page. Additionally, I filed an [issue](https://github.com/gulyapulya/SSGulnur/issues/15) for documentation improvement as I did not update it to reflect the full markdown support.

As I am a lover of Agile, I try to embrace progress over perfectionism. So, I filed those improvements as issues to work on later. The most important to me was that the tool worked and general purpose was achieved. 

### Conclusion 💡

In open source, we aspire to inspire!