Booyaka! I'm building a fully open-source documentation site generator, as an alternative to cloud-based/closed-source Mintlify or Redocly. So, Booyaka is a modern, good-looking doc site generator that you can self-host and customize as you want, free of charge (never understand why these mofkaz try to get rich from parsing some markdown files 😂 )
For the Markdown parsing, I'm using my own (incomplete) library called Marv, which I'm also developing alongside Booyaka. Marv supports most of the common Markdown syntax, including footnotes, table of contents generation and heading anchors. Also, is perfomant as hell (over 100K lines of markdown text ~5.3 MB in ~188ms on a boring Ryzen 5).
As for the webserver I'm using Supranim (which is also incomplete, but works pretty well! Will tell you more about it in another post), which wraps the libevent library.
Back to Booyaka, the project is not yet open-sourced, but I plan to do it in the next few weeks. Most probably in January!
Meanwhile, here you have a live demo 👉 https://booyaka.openpeeps.dev (on mobile looks creepy!)
The GitHub repo: https://github.com/openpeeps/booyaka
Other features that I'm planning to add
I want to make Booyaka run as a single binary with no external dependencies (including static linking of libevent), so it can be easily deployed on any server or even run locally even on non-technical users' machines.
Btw, Nim is amazing! Mamma mia! Haha
If you have any ideas or suggestions, please let me know! Will keep you posted with the progress 🤟
NO React, Svelte, Vue, or any FAANG-sh*t frameworks
Finally documentation that loads and scroll fast! So annoyed by these humongous documentations that need to make you swallow megabytes of JS. Less is more!
Going to try it out for my next project, great work so far!
This looks really nice. The experience of the demo on mobile is slightly awkward though (at least using Chrome on Android). It seems like it only loads the navigation menu when loading a page and then it does some sort of lazy loading of the actual content of each page when you scroll past the navigation menu. This means that when you open a page and start scrolling it will stop scrolling after the navigation menu, the main content loads and you will have to scroll again, which gets annoying quickly.
Furthermore, whenever you change the page on the site you will always first see the navigation menu, which probably not what you are most interested in. Also, it is not clear that anything was loaded when you click. Maybe this can be fixed by putting the navigation menu in a hamburger menu?
Finally, the search function in the demo isn't working.
If you have any ideas or suggestions, please let me know
add navigation buttons (next and previous chapter) at the end.
ideas,
static site generation. Documentation is a slow moving target, why waste energy on doing things dynamic?
A way to build a proper index. A good index is often more useful than a search engine. (markdown nor html provide)
Versioning. When I switch to a newer version software I would like to still have the earlier versions of it available in the same doc (as a page history)
Extendable. Let's take Nim. When I add a 3rd party library I would like to see the doc of that library show up in the Nim doc. Auto attached, with proper index etc.