Skip to content
Go back
✍️ 에세이

Migrating from Obsidian Publish to an Astro Blog

by Tony Cho
4 min read 한국어 원문 보기

TL;DR

After about a year and a half on Obsidian Publish, I moved my blog to Astro. Obsidian itself is great, but Publish still falls short as a blogging tool. Plus, Astro is free. Obsidian is genuinely excellent for personal wikis and writing, but...

Obsidian is a genuinely strong tool for personal wikis and writing, and if you care about Zettelkasten or documentation, it’s the editor most people recommend these days. I never warmed up to Notion, and Roam Research always felt a bit unwieldy to me. As Obsidian started turning into the de facto standard in this space, I made the jump and committed hard. I even paid for Obsidian Publish and migrated my whole blog over from gatsbyjs, which had been working fine.

Deployment was fast, the site design was decent, and writing was comfortable. I switched over around 2023 and managed to ship a few retrospectives along the way, so it earned its keep. But using Obsidian Publish as a blogging platform turned out to be rough in a lot of small ways. The biggest issue was SEO. My old gatsbyjs blog had a steady stream of organic traffic, and after I moved to Obsidian Publish that traffic basically evaporated. If I wanted someone to read a post, the best option was to send them the link directly. Even for a blog I write mostly to scratch my own itch, having readers and not having readers are very different things.

It’s file-based and doesn’t enforce frontmatter. Once you add Obsidian sync and Publish, the price climbs. Custom things like Google AdSense and event tracking aren’t supported; you’re stuck with whatever Obsidian itself ships (like GA). And the biggest pain point is the lack of a comment feature. Not that anyone was lining up to comment, but I do have at least a small soft spot for a bit of back-and-forth, and the silence wore on me.

Even so, I wasn’t writing that often, and Obsidian was comfortable enough that I kept using it. But now that I’m a free agent, what’s left is the record I leave behind, and the record is the writing itself. I wanted to take it more seriously, so I moved again — this time to an Astro-based blog platform.

That makes Restarting Blogging date back to November 2019, and Blog Migration (Gatsbyjs to Obsidian Publish) to late December 2023. Looking at that first post, my real blogging history goes back to Octopress, then Jekyll, Gatsbyjs, Obsidian Publish, and now Astro. Five platforms in.

(I’m the kind of person who buys a notebook and pen before studying, or researches gear before working out, so my way of expressing intent is always pretty noisy.)

Astro bills itself as a web framework for content-driven sites, and it seems to power not just blogs but e-commerce and other kinds of sites too. Rendering is fast, SEO is configurable, SSR works, and a lot of upsides surfaced when I evaluated it. I’m using a theme right now, but I figured I could customize it myself down the line, so I picked it. The other candidate I looked at was Hugo, built on Golang. I judged Astro to be more extensible, so Astro it was.

The thing that gave me the most trouble during the move was converting Obsidian’s folder-tree markdown files into a flat structure. I wrote a few automation scripts with Codex and ran the migration that way. And surprisingly, since Obsidian doesn’t carry frontmatter (the post metadata), I had to look up the creation date of each old file and rewrite the format one by one. That was probably the hardest part. Thankfully — if you can call it that — there weren’t that many posts, so it went quickly enough…

Since leaving the company, I’ve been on a “leave AWS behind” kick for a while and started using CloudFlare. CloudFlare Pages even supports Astro-specific deploys, so the deploy itself took maybe five minutes, and I added a few more conveniences with scripts.

Stack

I’ve been posting to Threads here and there too. I want to keep jotting down the non-retrospective stuff, the thoughts that drift through my head.

Let’s go (or so I tell myself).

FAQ

What's wrong with Obsidian Publish?
SEO is weak, so organic traffic dropped sharply. It doesn't enforce frontmatter, which makes metadata management painful. There's no room for custom integrations like Google AdSense or event tracking, and most importantly, there's no comment feature.
Why pick Astro?
It's a framework optimized for content-driven sites. Rendering is fast, SEO is configurable, SSR is supported, themes are easy to customize, and you can deploy it for free on CloudFlare Pages.
What was the hardest part of migrating?
Obsidian doesn't carry frontmatter, so I had to look up each old file's creation date and rewrite the metadata one by one. I also wrote a Codex-assisted script to flatten the folder-tree markdown structure.
Tony Cho profile image

About the author

Tony Cho

Indie Hacker, Product Engineer, and Writer

제품을 만들고 회고를 남기는 개발자. AI 코딩, 에이전트 워크플로우, 스타트업 제품 개발, 팀 빌딩과 리더십에 대해 쓴다.


Share this post on:

반응

If you've read this far, leave a note. Reactions, pushback, questions — all welcome.

댓글

댓글을 불러오는 중...


댓글 남기기

이메일은 공개되지 않습니다

Legacy comments (Giscus)


Previous Post
Scrumble Team: First-Release Interview
Next Post
Scrumble Tech Retro - 1. Backend (Golang, DDD, Entgo, Event, Centrifugo)