Velite + MDX로 블로그 만들기

Velite를 활용한 MDX 기반 정적 블로그 구축 경험을 공유합니다.

🌲상록수

Velite + MDX 블로그 구축기

블로그를 시작하며에서 소개한 것처럼, 이 블로그는 Velite와 MDX를 핵심 콘텐츠 엔진으로 사용합니다.

왜 Velite인가?

Velite는 콘텐츠를 타입 안전하게 다룰 수 있는 빌드 도구입니다. Contentlayer의 대안으로, Zod 기반 스키마 정의가 특징입니다.

const posts = defineCollection({
  name: "Post",
  pattern: "posts/**/*.mdx",
  schema: s.object({
    title: s.string().max(120),
    slug: s.slug("posts"),
    body: s.mdx(),
  }),
});

MDX의 장점

마크다운 안에서 React 컴포넌트를 사용할 수 있어, 일반 마크다운보다 표현력이 뛰어납니다.

빌드 파이프라인

  1. Velite가 MDX 파일을 파싱하여 .velite/ 디렉토리에 JSON으로 변환
  2. Next.js가 빌드 시 이 JSON을 임포트하여 정적 페이지 생성
  3. RSC를 활용해 서버에서 렌더링

코드 하이라이팅

rehype-pretty-code와 Shiki를 사용합니다. typescript-tips에서 볼 수 있듯이, 코드 블록이 깔끔하게 렌더링됩니다.

앞으로의 개선

  • Zettelkasten 기반 글 연결 시스템
  • 지식 그래프 시각화
  • 검색 기능 강화
  • mise를 활용한 개발 환경 통일

이 글을 참조하는 글

관련 글

로컬 그래프