First Entry!
Thanks for taking your time and visit my site. I need a first post so lets begin explaining how this site works.
A bit of history
As you can see at the footer © 2023. Made by Me. I initially deployed this site in 2023. I left that date intact as a reminder, even though many things have changed since 2023. At the time, I was using Keystone.js, and manual deployments from my laptop it was basically an about me page. As time passed, I changed my laptop and forgot to back up the CMS, so now in 2026 I decided to do a fresh reboot of my site.
New requirements
- Automatic deployments: a must, even though I'm going to maintain it, and I'm a programmer. The least friction, the better. I don't want a dead site again.
- Easier to maintain CMS. I tried to run Keystone.js, and I got a bunch of errors. Now we have LLMs and agents, so let's try another and vibe code the needed changes to support it on the client side.
- Static site: Great loading times, better SEO, easy deployment. Initially I picked Astro.js, still a great option.
- Local CMS but not in a laptop: I have been homelabbing a lot lately, so I can host the CMS safely for a more reliable future of the content.
- Use a CDN for the static site for reliable delivering.
The solution

Strapi
Strapi is one of the most popular headless CMS, after a simple deployment using docker, you have to define your schemas using it's ui and the changes are reflected in the orm code, and creates the needed restful apis.
Jenkins
Even though Jenkins is super popular, it's my first time using it. As nowadays CI/CD is ubiquitous, I normally use GitHub or GitLab actions. But in this case, to keep it self-hosted, a self-hosted Jenkins instance was a great solution. I'm sure that there will be more uses for this instance in the future.
Cloudflare Pages
And finally, the cherry on top that makes the site super fast to load is our CDN that brings the edge computing power to this little. It's easy to integrate into GitHub Actions. I already did that for my resume (check it if you are interested).
Vibe coding
As an AI-first engineer.... No, really. I consider myself more of a concepts-first engineer. But as said initially, I needed to migrate from the Keystone GraphQL API to the RESTful API of Strapi. The process was straightforward. I used the generated schema as context, and a few prompts later on opencode, voila.
Future work (maybe)
- Adding comments support
Conclusion
Finally, I have a practical, self-hosted place to post my thoughts and projects. Let's see where this takes me. Even though it's a simple setup, it's a pretty solution, and I hope to post at least here, as I'm not much of a social media guy.