Building a Blog with Elixir and Phoenix
TL;DR: itβs an Elixir app using Phoenix server side rendered pages, with the blog post pages generated from Markdown using NimblePublisher. Itβs running on a self-hosted Dokploy instance running on Hetzner , with bunny.net as a CDN sitting in front of it.
This is a very belated write up of how this blog was put together! Thereβs nothing terribly original here, but I figure it could come in handy for someone out there as a reference. And the world needs more Elixir content.
I have used static site generators before to power my blog (shoutout to Hakyll ), but I wanted to open the door for myself to also have little experiments on this site, ones that would require more interactivity than a static site allows. Besides, I just like using Phoenix. Although most of my Phoenix projects use LiveView, this felt like a good place to do things old-school with DeadViews.
It also means I get full control of what Iβm building. Using a tool someone else created means getting a lot for free, but the moment you step outside of the expected youβre having to figure out how to make things work for their tool.
So I kept things simple. No Ecto, no DB. Just server-side rendered HTML. Itβs blazingly fast, as you can see from this PageSpeed Insights report.
My setup closely matches the original Dashbit blog post Welcome to our blog: how it was made! , which led to the creation of NimblePublisher.