Major refactoring of my homepage

Based on dynamic server-side rendering

Read here the reasons why and how I refactored my website. The refactor was no rocket science, but it surely future-proofs my motivation to regularly update and extend this website.

Wrapping Two 90-day Goals

One of my first 90-day goals for early 2026 was the refactoring of my homepage and my homelab. The homelab refactoring came first. The new setup leverages Komodo to manage container management, builds and deployments.

The second big task was the refactoring of my website. It was inspired by various other websites where I discovered that many have a dynamic website, as opposed to a statically generated website. I figured, with an actual Python backend, I will be able to quickly add features, and rapidly redeploy, whenever changes to my website occur. The combination with Komodo makes it seemless.

What was my motivation for a change?

The previous version of my website was mainly self-build. I had the attitude of having everything as individual as possible, as small of a footprint as possible, and other tediously slow attitudes. This lead to lots of maintenance overhead on petty time wasts such as extending my own CSS framework or adding new features to my self-written static site generator.

Any changes, write-ups or more dynamic rendering was sheer impossible. I had to find workarounds, and realized that I didn't update my website as frequently as I should.

Thus, I scraped the web for some inspiration, and figured that I can work on a small backend myself with technology I am already familiar with.

What are the major changes?

My new version sticks to the original layout of my endpoints. However, the backend is now dynamically rendering my pages. Yes, the majority of the pages are still based on markdown and rendered on the fly, but I have the flexibility to deviate whenever I need it.

The initial version of the website does not deviate much. Optics have changed due to the usage of the Bulma CSS framework. The backend is serving pages dynamically, instead of prebuilding them and serving static content.

But all in all, it gives me the flexibility to add features on demand. I added an obligatory API router to the website, to allow me to add small API features to my website. Those are not necessarily meant to make the website more dynamic and interactive, but mostly to provide easily accessible features that I regularly need. I will document my API here on the pages as well to allow others to use them, too.

What's next?

The website is now deployed as a container on my new machine. My old server will retire anytime soon. Once this is done, and my website is running without noticable issues, I will continue adding functionality.

My first functional extension will probably be an API endpoint to generate a random set of IPv4 or IPv6 addresses. Next to this, I will start to build a framework to dynamically generate documentation on my API endpoints.

Conclusion

The refactor was fun. I used technology I know, but more importantly, I prepared my website to be future-proof with small API-endpoints that I can add whenever I feel like one is missing.