Knowtis
Collaborative notes with an AI that reads, edits, and studies alongside you.
Knowtis is a local-first, real-time notes workspace where AI is a collaborator rather than a chat window. It edits with you inside the document, proposes changes you approve, and turns what you write into material you can study.
Features
Write. A Tiptap editor with slash commands, ghost-text suggestions, and inline AI actions to rewrite, summarize, translate, or adjust the tone of a selection. Voice notes are recorded and transcribed in place.
Collaborate. Yjs CRDT sync with live presence and remote cursors. Notes persist to IndexedDB, so editing works offline and reconciles when you reconnect.
Study. Flashcards, quizzes, summaries, and mind maps generated from your notes, with SM-2 spaced repetition to schedule reviews.
Extend. A conversational copilot that reads and edits notes with human-in-the-loop approval, per-turn reasoning effort, and bring-your-own-key billing across Anthropic, OpenAI, and Google. An MCP server exposes your notes to Claude Desktop, Cursor, and VS Code.
Quick start
Requires Node.js 22, pnpm 10, and Docker.
git clone git@github.com:jovandyaz/knowtis-app.git
cd knowtis-app
pnpm run setup
pnpm dev:all
run is required: bare pnpm setup is a pnpm built-in. AI features need OPENROUTER_API_KEY in apps/api/.env (Anthropic, OpenAI and Google keys are optional per-provider) and the ai_enabled feature flag. The full walkthrough, including how email verification works locally and how to connect an MCP client, is in docs/LOCAL_SETUP.md.
Stack
| Layer | Technology |
|---|
| Frontend | React 19, Vite, TanStack Router and Query, Tailwind CSS |
| Backend | NestJS 11, Drizzle ORM, Socket.io |
| Data | PostgreSQL 16, Redis 7 |
| Real-time | Yjs (CRDT), Hocuspocus, IndexedDB |
| AI | Vercel AI SDK, OpenRouter, Anthropic, OpenAI, Google, MCP |
| Tooling | Nx 22, TypeScript 5.9, Vitest, pnpm |
Repository layout
apps/
api/ NestJS backend: auth, notes, collaboration, AI, copilot agent, MCP keys
notes/ React frontend: editor, collaboration, study tools
backoffice/ Admin surface: users, audit log, AI config and metrics
mcp/ Standalone MCP server (Hono)
libs/
api-client/ Typed HTTP and WebSocket client
data-access/ React Query hooks and Zod schemas, per domain
authorization/ CASL permission definitions shared by frontend and backend
packages/
ai-gateway/ Framework-free AI core: provider fallback, injection guard, token costing
crdt/ Yjs helpers
editor/ Tiptap editor and schema
design-system/ UI components and design tokens
auth/ permissions/ Core packages with React and NestJS adapters
email/ React Email templates and NestJS adapter
shared/ Hooks, i18n, types, utilities
Dependency direction is enforced with Nx module boundaries: app → ui / data-access → util. See docs/ARCHITECTURE.md.
Documentation
Contributing
Issues and pull requests are welcome. Read CONTRIBUTING.md before you start, and see SECURITY.md to report a vulnerability privately. This project follows the Contributor Covenant.
License
MIT