DEV Community

Cover image for How I Built a 150KB Blog Framework on Cloudflare’s Free Tier
thatch
thatch

Posted on

How I Built a 150KB Blog Framework on Cloudflare’s Free Tier

I've always liked the idea of owning my content — but whispers of wordpress under my bed keeps me up at night, conversely the limitations of static sites are what they are. So I built Deadlight, a minimalist blog/site framework that runs entirely on Cloudflare Workers + D1 (SQLite) — all on the free tier, with built-in auth, Markdown, and themes.


Why I Built It

I wanted something that lived in the sweet spot between:

  • Static site generators (like Hugo or Eleventy)
  • Full CMS platforms (like WordPress or Ghost)

Most "simple" blog solutions I tried still relied on multiple services (hosting + DB + backend). I wanted something all-in-one, deployable in minutes, and ideally free to run — even at scale.


What It Is

Deadlight is a fully functional site/blog framework that includes:

  • Markdown content support
  • Built-in authentication (no 3rd-party auth required)
  • Dark/light themes
  • SQLite-backed database via Cloudflare D1
  • No build step — dynamic but lightweight
  • <150KB total size (HTML, CSS, routing, auth, and database logic)
  • Deployed to the edge, with no server/VPS to manage

  • Live demo

  • GitHub source code


Architecture Overview

Everything runs on Cloudflare’s edge network:

  • Cloudflare Workers handle routing, rendering, auth, and API logic
  • D1 stores your posts, user credentials, and metadata
  • No JS frameworks or client-side routing
  • Pure CSS (with dark/light toggle), basic Markdown rendering

This is not a static site generator. The content is dynamic — created, stored, and served live — but lightweight enough to load instantly.


Setup

If you have a Cloudflare account and Wrangler installed:

git clone https://github.com/gnarzilla/deadlight-bootstrap
cd deadlight-bootstrap
wrangler d1 create deadlight
wrangler publish
Enter fullscreen mode Exit fullscreen mode

That's it. Your blog is now live.

Design Philosophy

Intentionally kept this small and opinionated:

  • No JavaScript framework
  • No bloated admin interface (yet)
  • No dependencies outside what Cloudflare offers (workers)

But it's built to be built upon. Add an /admin dashboard, plug in image hosting, or integrate with KV/Queues - the world is your oyster.

Feedback

I'd love to hear your thoughts, or a good roast if that's more your speed.

Top comments (0)