Skip to content
rmnr
DocsTourSlicesBest PracticeAgentsInstall

Command Palette

Search for a command to run...

New

Slice · AI prompt

Notion UI — page editor · database · sidebar primitives

Pure Notion-clone primitives in 3 variants — page editor · 11-view database · tree sidebar — with React/Next default plus native SvelteKit.

Resource detail View source
Copy this prompt into Claude / Codex / Cursor
notion-ui.prompt.mdmarkdown
# Install `notion-ui` — Notion UI — page editor · database · sidebar primitives

> Pure Notion-clone primitives in 3 variants — page editor · 11-view database · tree sidebar — with React/Next default plus native SvelteKit.

📚 Knowledge base : https://resource.rahmanef.com/llms.txt
📦 Slice detail   : https://resource.rahmanef.com/slices/notion-ui
🧠 JSON catalog   : https://resource.rahmanef.com/api/knowledge?slice=notion-ui
🔗 Source         : https://github.com/rahmanef63/resource-site/tree/main/frontend/slices/notion-ui

## 1. Install

```bash
npx rahman-resources add notion-ui
# alias: npx rr add notion-ui
```

The CLI copies `frontend/slices/notion-ui/` into your project + augments `.env.example` + installs npm deps automatically. Run it from your project root.

## 2. What it ships

- npm: `@dnd-kit/core`, `@dnd-kit/sortable`, `@dnd-kit/utilities`, `katex`, `highlight.js`, `recharts`, `lucide-react`
- shadcn primitives: `button`, `checkbox`, `dialog`, `dropdown-menu`, `input`, `popover`, `select`, `separator`, `sheet`, `switch`, `toggle-group`, `tooltip`

## 3. Wire it up

React/default: `npx rr add notion-ui <page|database|sidebar>`; append `--framework sveltekit` for native Svelte 5. Omit the variant to install all three. Both frameworks share the same Block/Page/Property/Database domain model and pure database/tree engines; data stays host-owned through callbacks. Svelte database renders table, board, list, gallery, calendar, feed, chart, dashboard, form, map and timeline without React/dnd-kit/Recharts/Lucide/shadcn runtime.

## Rules of engagement

- shadcn-only UI primitives. No raw `<button>` / `<dialog>` / native date or file inputs.
- 200-line hard cap per source file (extract neighbours when over).
- All Convex queries hit an index (`.withIndex(...)`); never bare `.collect()`.
- Public mutations/queries declare `args:` validators + authz.
- Full ruleset: https://resource.rahmanef.com/best-practice

The agent will fetch /llms.txt for the full ruleset and use /api/knowledge for the JSON catalog.