What the original SilverBlog was

A self-contained Python application. You ran one command, it set up uwsgi + Nginx, you SSH'd in to publish posts, and it served Markdown files turned into HTML. The deployment was the product, in a sense — the whole framework existed because hosting a blog in 2017 was genuinely annoying and we wanted it to not be.

It had a small but real audience, mostly in the Chinese developer community. The repo has roughly 80 stars and 50 forks. It went dormant in 2019.

Why the standalone framework approach stopped making sense

Static site generators caught up. Hugo, Astro, 11ty — all of them now do what SilverBlog did, faster, with bigger communities and better DX. Building yet another Python or Node framework in 2026 would mean shipping less than what already exists, while competing for attention on the wrong axis.

More importantly, the original SilverBlog never solved its hardest problem: the admin. The Python version had a control server, a custom REST API, and three half-finished clients (Android, iOS, web). Each was its own maintenance burden. The reason the project went dormant in 2019 wasn't the core framework — it was the surrounding ecosystem none of us had time to keep alive.

What EmDash brings to the table

EmDash is Cloudflare's open-source CMS built on Astro 6. It ships with the things SilverBlog never finished: a real admin panel, structured content, authentication, a media library, native search, and a plugin system with capability-based V8 sandboxing.

Most importantly, it has institutional backing — Cloudflare is going to keep maintaining it. We don't have to. By becoming an EmDash theme, SilverBlog gets to focus on what it was always good at: the aesthetic, the writing experience, the URL design. The boring infrastructure work is someone else's problem now, and the someone else builds it better than we would have.

What we kept

  • The dark-first visual language.
  • The silver-gradient title.
  • The install-command-in-the-hero pattern (now an actual command that works).
  • The /post/{slug}, /index/{n}, /rss/ URL structure — old links still resolve.
  • The Markdown-first writing experience.
  • The "small, fast, doesn't ask too much of you" feeling.

What we let go

  • The Python codebase.
  • The custom REST API.
  • The three mobile clients.
  • The mirror-switching install scripts pointing at dead URLs.
  • The strict no-database promise (EmDash uses SQLite locally and D1 in production — small, file-like, but technically a database).
  • The independence — we're now downstream of EmDash's roadmap. We think that's an acceptable trade.

Who should still use the old Python version

Honestly, no one. The code is archived for historical interest. If you had a SilverBlog Python install running and it still works for you, that's great — keep it running until it doesn't. But there's no upgrade path from v1 Python to this EmDash template, and we wouldn't recommend starting fresh with the old codebase in 2026.

If you want the original feel on a modern stack, this template is the way.

A note on naming. EmDash is named after the em dash punctuation mark — the long horizontal bar (—) that signals a pause, an aside, or a shift in thought. Fitting for a CMS whose pitch is "stop fighting your tools and just write."