NotionX/react-notion-x

Notion ページを React で高速レンダリングする TypeScript ライブラリです。

開発の材料自由に使える · MITWeb・Next.js・フルスタックTypeScript難易度
5,4320 保存
648フォーク147Issue
デモ・公式サイトをひらくreact-notion-x-demo.transitivebullsh.it

中辛 の解説

TypeScript + React スタック。Notion の非公式 API(notion-client)でデータを取得し、NotionRenderer コンポーネントで HTML に変換します。コード・方程式・PDF・データベースビューなどの重い機能は動的インポート(next/dynamic)で遅延ロード可能。Next.js、Vite、Remix など複数フレームワークに対応。ミニマル例と本格例の両デモが Vercel で動作中。バンドルサイズは gzip で約 31kb。

こんなリポジトリです

こんなときに便利です

  • Notion のページをスタイル済み Web サイトとして公開したい場合
  • ブログや企業サイトを Notion で管理・運営したい場合
  • Notion データベースをデータソースとしたアプリケーションを構築したい場合

主な機能

Notion 非公式 API(notion-client)との統合10~100 倍高速な React レンダリングCode・Equation・PDF・Collection など拡張可能なコンポーネント

ほかとの違い

公式 Notion API ではなく非公式の私有 API を使用するため、データベースビューや細粒度のアクセス制御も含めて Notion の機能をフルサポートでき、オフィシャル API よりも広い範囲の Notion コンテンツをレンダリングできます。

このリポジトリの作り方

はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。

準備するもの

  • Node.js 環境
  • React プロジェクト
  • Notion ページの公開 ID または認証情報(私有ページの場合)

すぐに始める

  1. notion-client と react-notion-x をインストールします。
npm install notion-client react-notion-x
  1. Notion ページ ID を取得し、API クライアントでデータを取得します。
import { NotionAPI } from 'notion-client'
const notion = new NotionAPI()
const recordMap = await notion.getPage('067dd719a912471ea9a3ac10710e7fdf')
  1. React コンポーネントで NotionRenderer を使用してレンダリングします。
import { NotionRenderer } from 'react-notion-x'
export default ({ recordMap }) => (
  <NotionRenderer recordMap={recordMap} fullPage={true} darkMode={false} />
)
  1. CSS スタイルをインポートします(Next.js の場合は _app.js の最上部)。
import 'react-notion-x/styles.css'
import 'prismjs/themes/prism-tomorrow.css'
import 'katex/dist/katex.min.css'
  1. オプション機能(Code・Equation・Pdf など)を使う場合、next/dynamic で遅延ロードします。
import dynamic from 'next/dynamic'
const Code = dynamic(() =>
  import('react-notion-x/third-party/code').then((m) => m.Code)
)
  1. NotionRenderer の components プロップに渡します。
<NotionRenderer recordMap={recordMap} components={{ Code }} />

ギット飯トライで味見

入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。

ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。

npx gitbap-try NotionX/react-notion-x

Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →

スター推移 · 7日

5,4327日間の増加数を計算するための比較データが不足しています

確認日時

使いやすさ · まねしやすいか

まねしやすいサンプル評点 50/100
  • ゆるいライセンス
  • テストあり
  • サンプル集
  • 最近の更新
  • AGENTS.md
  • llms.txt
  • テンプレート

最近の更新あり · 2020 年に作成

「Web・Next.js・フルスタック」 こういうリポジトリを毎週受け取りませんか?

毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。

自分のリポジトリですか? README にギット飯バッジを貼る
[![깃밥](https://www.gitbap.com/badge/NotionX/react-notion-x.svg)](https://www.gitbap.com/r/NotionX/react-notion-x)
Claude からそのまま使う — ギット飯のつなぎ方

ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。

方法 ① コネクタ URL

Claude の設定 → コネクタにこのアドレスを貼り付け。

https://www.gitbap.com/api/mcp
方法 ② プラグイン(試用まで)

プラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
つなぎ方をくわしく →

AI が README をもとに要約しました · 原文を見る