Thoughts on clojure, linux, security and Bitcoin's 0.1v (Satoshi Nakamoto's Design) in an era of artificial intelligence
When building a personal blog, modern web development defaults to overkill. Setting up dynamic frameworks (like Next.js, Remix, or MERN stacks) with backend databases, authentication layers, and real-time APIs introduces a massive maintenance burden, security attack surface, and slow page-load times.
For a blog, static HTML is the ultimate architecture. This blog is powered by Quickblog, a lightweight static site generator designed for the Clojure/Babashka ecosystem by Michiel Borkent (@borkdude).
Here is a breakdown of how it works under the hood and why this architecture is a superior design choice.
At the heart of Quickblog is Babashka, a fast-starting scripting runtime for Clojure.
Traditional Clojure runs on the JVM, which is powerful but suffers from a slow startup time (often several seconds)—making it tedious for quick CLI utilities and scripts. Babashka solves this by using GraalVM to compile the Clojure interpreter into a native binary. This gives us:
Quickblog is executed entirely as a Babashka task defined in bb.edn.
Quickblog's architecture follows a clean, functional pipeline:
graph TD
A[Markdown Posts /posts] --> B(Babashka CLI / bb.edn)
C[HTML Templates /templates] --> B
D[Assets /assets] --> B
B -->|bb quickblog render| E[Pure HTML/CSS/RSS /public]
E -->|Git Push| F[GitHub Pages]
F -->|HTTPS CNAME| G(blog.nurazhar.com)
/posts directory and reads configuration parameters from bb.edn./templates/base.html, /templates/post.html, etc.).index.html (the homepage loading up to N posts).archive.html (a list of all posts).tags.html (filtered views).feed.xml (RSS feed)./public directory, ready to be hosted anywhere.In his original 2008 Bitcoin v0.1 release, Satoshi Nakamoto focused on peer-to-peer simplicity—designing a system with direct nodes, no unnecessary intermediate layers, and raw efficiency.
Quickblog mirrors this philosophy in web development. By stripping away heavy JS frameworks, hydrations, client-side state managers, and database servers, it leaves you with exactly what the web was built for: clean, readable, and immortal HTML.
Published: 2026-06-14
Tagged: simplicity architecture clojure babashka