Ronbun 論文#
Ronbun (paper) is currently the content management system (CMS) powering this website. It's build with the golang programming language, uses sqlite for the database, and Kaku for the markup.
Ronbun has evolved a lot (it started as a static site generator in JavaScript back in 2019!) but stays a self-discovery project following my needs of the time. If you want to know more about how the project evolved, this blog post should answer most questions.
Philosophy and features#
Ronbun's goal is to be as unobtrusive and fast to use as possible. The install is a single go binary, the database is automatically created. Despite being a CMS, it doesn't have an administration panel, users just navigate the website when they want to reach content.
Creating a new page can be done from anywhere on the website, using a keyboard shortcut or button. The metadatas required are limited: visibility, parent page, category, publication date, RSS feed, etc.
In the edition panel, users can import images, video and audio files to put in their page. There's no wysiwyg or block editor, users just write using the Kaku syntax and can see a preview of their future page.
A few extra features exist, such as adding pages to the main RSS feed, generating OG images for link embeds, showing a list of subpages, search, sitemap, and themes that can work without JavaScript.
It's not open source#
Almost all my code projects have been open sourced with the The Anti-Capitalist Software License, but unfortunately Ronvun won't be part of this tradition.
Ronbun has too many things hard coded. If that's not an issue for my personal use, open sourcing the project would require removing my design, add a table for static values, write better documentation, create builds for different operating systems, create a public repository, fork it to add back my own design, etc. It's a lot of work that I am not sure I want to do.
Also, there's AI generated code inside for the image compression part. I don't feel like open sourcing a project with AI generated code inside. Even if it's only 200 lines, it still needs to be rewritten.
Links and credits#
- The book Let's go by Alex Edwards was the main course I followed for building this project and learn how to structure a go web application. I started by following the examples, then bifurcated to build my own thing. I cannot recommend it enough.
- Alex allowed me to share the code's project since it's in the end very different from its book. The code can be read here.