---
title: "Look ma, no IDE!"
date: 2026-08-13
url: https://harrisjose.com/2026/08/building-cms-website
description: "Building a small Cloudflare-powered CMS for writing and publishing without the IDE"
---
# Look ma, no IDE!

I've been seeing a lot of tweets recently about using Cloudflare Access to create a simple auth layer for admin portals. And I've always wanted a simple Markdown-style editor for writing blog posts, cause I always get distracted and start tweaking things if I do this in an IDE.

The site currently lives on Cloudflare, with Workers powering most of it. Content from GitHub - everything you see on `/blog` is an MDX file - is compiled into a sqlite database (on D1) after every push to the `content/blog` folder.

The admin portal is another Worker sitting behind Cloudflare Access. When I publish something, it commits the MDX file back to GitHub, which kicks off the same workflow that pushes it into D1.

I got Opus to build a quick prototype with two types of post editors: one for a quick link-style post (I love [Daring Fireball](https://daringfireball.net/) style posts that just link to a different site) and one with a full Markdown editor for my own posts (I must admit these have been much rarer in the last three years).

For link posts, I can paste in a URL and have it fetch the page metadata. It then uses \`gemini-2.5-flash-lite\` via OpenRouter to generate the title, slug and description for me. I have similar mechanics for the post editor too.

And to continue the built-on-Cloudflare vibe, the whole thing uses [Kumo](https://kumo-ui.com/) for UI components instead of the shadcn + Base UI combo I usually reach for.

Hopefully I can get a few more blog posts out with this 👀
