어느 날 갑자기 블로그를 만들겠다고 마음먹었다. 그리고 첫 질문은 항상 같다: “무슨 플랫폼을 써야 하지?”
처음에는 Ghost의 유혹이 컸다. API 기반의 콘텐츠 관리, 깔끔한 에디터, 내장 멤버십 기능까지 — 헤르메스 크론이 자동으로 글을 발행하는 파이프라인을 구축하려면 Ghost가 이상적인 플랫폼처럼 보였다.
하지만 Ghost는 Docker나 Node.js 서버가 필요하다. VPS를 운영하는 건 확장성과 자동화 측면에서 매력적이지만, 관리 포인트가 늘어난다는 게 부담이었다. 데이터베이스 백업, OS 업데이트, 보안 패치, 리버스 프록시 설정 — 서버 한 대가 주는 자유와 함께 오는 책임이다. 나는 “한 번 설정하면 손을 덜 대는” 시스템을 선호한다.
차선책: GitHub + Netlify + Static Site Generator
정적 사이트 생성기(SSG)는 이 문제를 깔끔하게 해결한다. 데이터베이스가 없으니 해킹 위험이 거의 없고, Netlify에 푸시만 하면 CI/CD가 자동으로 완료된다. 유지보수에 들어갈 시간이 거의 제로에 가깝다.
SSG 중에서는 Astro와 Hugo가 최종 후보로 남았다. Hugo는 빌드 속도가 가장 빠르고, 설정이 단순하다는 장점이 있다. 하지만 Go 템플릿 시스템에 적응하는 데 시간이 필요하고, 테마를 커스터마이징 하려면 Go 템플릿 문법을 익혀야 한다. 반면 Astro는 JavaScript/TypeScript 생태계에 익숙한 개발자에게는 훨씬 직관적이다. React 컴포넌트를 가져와서 쓸 수 있고, Island Architecture 덕분에 성능도 뛰어나다.
AstroPaper를 선택한 이유
Astro 전용 테마 중에서 가장 성숙한 AstroPaper를 선택했다. Tailwind CSS로 스타일링되어 있어서 커스터마이징이 쉽고, SEO가 기본으로 잘 잡혀 있다. Google Search Console, RSS, sitemap.xml까지 기본 지원이다. 무엇보다 Astro 6의 z.coerce.date() 같은 진화하는 API를 따라잡는 커뮤니티가 활발하다는 점이 좋았다.
놓친 것들
Medium은 내장 독자층이 가장 강하다. SEO 없이도 트래픽이 들어온다는 게 큰 장점이지만, API 제약, 소유권 문제, 커스터마이징 한계가 걸린다. Tistory나 Velog는 한국형 서비스로 접근성이 좋지만 해외에서의 확장성이 떨어진다. Notion을 블로그로 쓰는 것도 방법이지만, Notion의 HTML 출력은 상당히 지저분하다.
결국 선택은 AstroPaper + Netlify + Cloudflare 조합이었다. 무료로 운영 가능하고, 유지보수가 거의 필요 없고, 이 모든 글을 마크다운으로 관리할 수 있다는 게 가장 큰 장점이다.