This Astro branch uses Content Collections for every post. Here is a short overview of why that fits a Git + Markdown workflow.
Why Content Collections
Tistory remains the Korean SEO main site. This branch is for Markdown-first publishing:
- Frontmatter is validated with a Zod schema
- Invalid metadata fails at build time
getCollection('blog')is fully typed in TypeScript
One Markdown file per language
Do not share one HTML blob between Tistory and Astro. Write separate Markdown files for Korean and English. Link pairs with the same translationKey in frontmatter.
lang: ko
translationKey: my-post-key
# separate file:
lang: en
translationKey: my-post-key
Korean posts live at /blog/[slug]/. English posts live at /en/blog/[slug]/.
Draft filtering
Keep drafts out of indexes, RSS, and static routes:
const posts = await getCollection('blog', ({ data }) => !data.draft);
Branch vs main site
- Tistory (main): Korean search traffic and existing readers
- Astro (branch): MDX experiments, RSS, sitemap, English depth posts
No bulk migration from Tistory. New and complementary content only.
Next steps
Connect Cloudflare Pages so every push to main builds and deploys automatically.