Pushing the benefits of the JAMstack further
The latest round of development and deployment flow optimizations is out for the xavierwendling.com website.
Last year, this website became a JAMstack project based on the Hugo static website generator, bringing many benefits in terms of development experience, performance, security and deployment simplicity.
Up until now, I had set up a fairly automated one-click deployment flow pushing a dockerized build directly from my local development box to a server with Ansible. Of course my project’s source code had long been version-controlled and hosted on Github. But I wasn’t leveraging that part for deployment. Fair enough. I was already enjoying some of the benefits of the JAMstack approach, being able to deploy to a new server in no time if needed, ensuring safe atomic deploys, having reasonably simple mechanisms to rollback if needed…
Still, having followed a bit what the smart guys at Netlify, an all-in-one platform for automating modern web projects, had been building I knew from day one my next move would be headed that way. I am pleased to report I have now completed that journey. The move brings even more good things:
- this project is now entirely delivered through a high-performance CDN, fully reaping the benefits of its front-end nature.
- production builds are no longer pushed from my local development box but instead continuously pulled from Github and built on Netlify’s servers.
- atomic deploys and instant rollbacks to previous deploys are made even more simple and robust.
- instant cache invalidation mechanisms allow for frequent build-to-deploy iterations.
- provisioning and automatic renewal of SSL certificates is made even simpler.
The missing part
At this point adding a headless CMS for improved content management remains the last part missing. This is fine for this particular project because, as the lone content developer, I am perfectly fine directly managing and editing my markup files as needed. However this is were I am headed now, especially for projects were multiple technical and non-technical stakeholders are likely to collaborate on content creation and editing.
This is a hot maturing topic right now, with already numerous alternative solution, commercial or open-source, API-driven or Git-based, popping up or already well established to fulfill the promise of proper decoupling between content management and content presentation through a website or app.