An open API service indexing awesome lists of open source software.

https://github.com/ackkerman/notion-graph


https://github.com/ackkerman/notion-graph

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          


Notion Graph icon


๐Ÿ•ธ๏ธ Notion Graph โ€” turn any Notion database into an interactive knowledge map

Live Demo ใƒป
Quick Start ใƒป
Directory Structure ใƒป
Scripts

*A lightweight OSS app that turns any Notion database into an interactive graph of pages, keywords, and multi-select tags.*

| Release | CI | License |
| --- | --- | -- |
| ![version](https://img.shields.io/github/v/tag/ackkerman/notion-graph?label=version) | ![build](https://img.shields.io/github/actions/workflow/status/ackkerman/notion-graph/ci.yml?label=build) | ![GitHub License](https://img.shields.io/github/license/ackkerman/notion-graph) |

## โœจ Features

| Features | Description |
| --- | --- |
| ๐Ÿ” **OAuth 2.0 (PKCE)** | One-click login with your own Notion integration โ€” no server secrets. |
| ๐Ÿ—‚ **Dynamic property mapping** | Select any *multi-select* / *select* property at runtime and see it as graph nodes. |
| ๐Ÿง  **Lindera WASM keyword extraction** | Japanese tokenisation powered by Rust/Lindera running in the browser. |
| ๐Ÿ•ธ **Cytoscape layouts** | COSE, Dagre, Elk, Cola, โ€ฆ switchable with a single click. |
| ๐ŸŽจ **Notion-like UI** | Tailwind CSS v4 + CSS-first theme tokens for colours, radius, shadows. |
| ๐Ÿ“ฆ **100 % client-side** | No backendโ€”runs on Vercel/Pages/S3 as static files. |
| ๐Ÿ“Š **Graph statistics** | Displays node counts and top central nodes based on degree. |
| ๐Ÿ—‘๏ธ **Node pruning** | Remove nodes from a list sorted by degree. |
| ๐Ÿ” **Node detail panel** | Click a node in the graph to inspect its Notion properties. |

## ๐Ÿ“ธ Demo

[Live demo (on Vercel)](https://notion-graph-gray.vercel.app/)

![](./assets/usage.gif)

## ๐Ÿš€ Getting Started

```bash
git clone https://github.com/ackkerman/notion-graph
cd notion-graph
pnpm i
cp .env.example .env.local # add NOTION_CLIENT_ID / NOTION_CLIENT_SECRET
pnpm dev
```

1. **Create a Notion integration** โ†’ copy the client ID (and secret for *internal* integrations).
2. Add `http://localhost:3000/oauth/callback` to the integrationโ€™s Redirect URI list.
3. Open `http://localhost:3000`, click **Login with Notion**, pick any workspace, choose a database, and enjoy the graph!

## ๐Ÿ›  Tech Stack

| Layer | Library / Tool |
| -------------- | -------------------------------------------------- |
| UI & Routing | **Next.js 14** (app router) |
| Styling | **Tailwind CSS v4** + CSS-first `@theme` |
| Graph | **react-cytoscapejs** + multiple layout extensions |
| NLP | **lindera-wasm** (IPADIC) |
| Auth | **Notion OAuth 2.0 PKCE** |
| Build / Deploy | Vercel / Cloudflare Pages |

## ๐Ÿ—บ๏ธ Roadmap

* [ ] Graph Clustering
* [x] Adding view of connections and cut-out function
* [x] Jump to original page from graph
* [x] Coloring by status or other property as hue

> PRs & discussions are welcome! See [CONTRIBUTING.md](./CONTRIBUTING.md).

## ๐Ÿ“„ License

Apache License V2.0

Copyright 2025 Ackkerman

## ๐Ÿ™ Acknowledgements

* **Notion** for the open API
* **Lindera Project** for blazing-fast WASM tokeniser
* **Cytoscape.js** & extension authors
* All OSS maintainers keeping the ecosystem alive โค๏ธ