@gendive/react-notion-renderer
Notion 페이지와 데이터베이스를 React 컴포넌트로 바로 렌더링해주는 라이브러리입니다.
빠른 미리보기
tip
위는 Notion 데이터베이스를 카드 형태로 렌더링한 예시입니다. 더 많은 데모 보기
이 라이브러리가 뭔가요?
Notion을 CMS처럼 쓰고 싶을 때가 있죠?
예를 들어:
- 블로그 글을 Notion에서 작성하고, 내 웹사이트에 보여주고 싶다
- 프로젝트 목록을 Notion 데이터베이스로 관리하고, 카드 형태로 보여주고 싶다
- 문서/매뉴얼을 Notion으로 작성하고, 별도 페이지에 임베드하고 싶다
이런 경우에 이 라이브러리를 쓰면 됩니다.
Notion API로 데이터를 가져와서 → React 컴포넌트로 예쁘게 렌더링해줍니다.
주요 기능
1. 페이지 렌더링
Notion 페이지의 모든 블록(heading, paragraph, code, image, callout 등)을 그대로 React로 렌더링합니다.
import { NotionPage } from '@gendive/react-notion-renderer';
// Notion 페이지를 그대로 보여줌
<NotionPage pageId="your-page-id" token="your-notion-token" />
2. 데이터베이스 렌더링 (3가지 레이아웃)
| 레이아웃 | 설명 | 용도 |
|---|---|---|
board-card | 카드 그리드 | 프로젝트 목록, 포트폴리오 |
table | 표 형태 | 데이터 목록 |
list | 리스트 형태 | 블로그 글 목록 |
import { NotionDatabaseById } from '@gendive/react-notion-renderer';
<NotionDatabaseById
databaseId="your-database-id"
token="your-notion-token"
layout="board-card" // 또는 "table", "list"
/>
3. 고급 기능
- 페이지네이션: 카드가 많을 때 페이지 나누기
- 필터/정렬: Notion API 필터를 그대로 사용
- 테마: 라이트/다크 모드 지원
- 커스터마이징: 카드 스타일, 열 개수 등 세부 조정
설치
npm install @gendive/react-notion-renderer
빠른 시작 (5분)
1단계: Notion API 토큰 발급
- Notion Integrations 접속
- "New integration" 클릭
- 이름 입력 후 생성
- Internal Integration Token 복사 (이게 API 토큰)
2단계: 페이지/데이터베이스에 Integration 연결
- Notion에서 공유할 페이지 열기
- 우측 상단
...→ Connections → 만든 Integration 선택 - "Confirm" 클릭
3단계: 코드 작성
// app/notion-demo/page.tsx (Next.js App Router 예시)
import { NotionPage } from '@gendive/react-notion-renderer';
export default function NotionDemoPage() {
return (
<NotionPage
pageId="2baa76221f408089b1a9cfce9c133621"
token={process.env.NOTION_TOKEN!}
/>
);
}
끝! 이제 Notion 페이지가 React 앱에 보입니다.
데모 데이터로 테스트하기
API 토큰 없이 먼저 테스트해보고 싶다면, 저희가 준비한 공개 데이터를 사용하세요:
| 종류 | 링크 |
|---|---|
| 페이지 데모 | page-demo |
| 데이터베이스 데모 | database-demo |
Mock JSON 데이터도 /demo/mock-data/ 폴더에 있습니다.
문서 구조
| 문서 | 내용 |
|---|---|
| 페이지 렌더링 | 페이지 렌더링 + 모달 사용법 |
| 보드 카드 레이아웃 | 카드 그리드 + 페이지네이션 |
| 리스트/테이블 레이아웃 | 테이블, 리스트 뷰 |
| Embed & Media | 이미지, 비디오, embed 블록 |
처음이라면 페이지 렌더링 → 보드 카드 순서로 읽어보세요!