open-silong
- Next.js 16 (App Router, Cache Components / PPR)
- React 19
- TypeScript
- Tailwind CSS v4
- shadcn/ui
- Radix UI
- Convex 1.36 (self-hostable or Cloud)
- @convex-dev/auth
- @dnd-kit
- recharts
- katex
- highlight.js
- jszip
- cmdk
- sonner
- zod
- geoip-lite
- @phosphor-icons/react
- Vitest
- convex-test
- Playwright
- pnpm
- Docker Compose + Traefik
- Postgres (self-host lane)
Brief
"A block-based workspace for notes, docs, and lightweight databases, with an Obsidian-style knowledge graph on top. Built for teams that want to **own their data**: self-host the full stack with Docker Compose, or run on Convex Cloud free tier. MIT licensed. No vendor lock-in."
Constraints
- Independent clean-room implementation — "not affiliated with, endorsed by, or connected to Notion Labs, Inc. or Dynalist Inc. It borrows *ideas* (the block editor, the knowledge graph), never code or brand assets." No proprietary Notion or Obsidian code, design files, brand assets or trade secrets are used; import/export adapters target documented public formats purely for interoperability.
- The public demo instance is SHARED — "Lands you straight in a guest workspace (no sign-up needed), or create an email + password account to keep your data. Instance is shared."
- Roadmap items explicitly NOT done: more OAuth providers (GitHub, Apple), real-time multiplayer cursors, and PWA + offline mode.
- `proxy.ts` is described as an "optimistic auth gate" and explicitly "not the security boundary" — authz is in-handler on Convex.
- Cross-slice imports go through the barrel only.
- Google OAuth is opt-in: the sign-in button only activates once AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET are set on the Convex backend.