Drafto
Create, read, search, and organize your Drafto notes and notebooks.
What can you do with Drafto?
- Notebooks — flat list of notebooks to organize notes
- Notes — rich text with auto-save (BlockNote on web, TenTap on mobile/desktop)
- Offline support — mobile and desktop use WatermelonDB locally and sync to Supabase when online
- Authentication — email/password with email confirmation, plus Google and Apple OAuth; admin approval gates new accounts
- Dark mode — system-aware theme toggle, persisted in localStorage
- Evernote import — import notes from
.enexfiles with full content and attachment support - MCP server — expose your notes to Claude Desktop, Claude Cowork, and other MCP clients via
eu.drafto/mcpon the MCP Registry - Real-time support pipeline — mail to
support@drafto.euis polled every 5 minutes by a Mac-mini-resident agent, classified by Claude Code, and synced bidirectionally with GitHub issues; see [docs/features/support-agent.md](./docs/features/support-age...
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http drafto 'https://drafto.eu/api/mcp' --header 'Authorization: <Bearer token — generate an API key at drafto.eu/settings>'
{
"mcpServers": {
"drafto": {
"type": "http",
"url": "https://drafto.eu/api/mcp",
"headers": {
"Authorization": "<Bearer token — generate an API key at drafto.eu/settings>"
}
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Drafto
A note-taking app with notebooks, rich text editing, and auto-save. Available as a web app, iOS + Android apps, and a macOS desktop app — all with offline support.
Live: drafto.eu
Features
- Notebooks — flat list of notebooks to organize notes
- Notes — rich text with auto-save (BlockNote on web, TenTap on mobile/desktop)
- Offline support — mobile and desktop use WatermelonDB locally and sync to Supabase when online
- Authentication — email/password with email confirmation, plus Google and Apple OAuth; admin approval gates new accounts
- Dark mode — system-aware theme toggle, persisted in localStorage
- Evernote import — import notes from
.enexfiles with full content and attachment support - MCP server — expose your notes to Claude Desktop, Claude Cowork, and other MCP clients via
eu.drafto/mcpon the MCP Registry - Real-time support pipeline — mail to
support@drafto.euis polled every 5 minutes by a Mac-mini-resident agent, classified by Claude Code, and synced bidirectionally with GitHub issues; seedocs/features/support-agent.md
See docs/features/ for one brief per functional area (code paths, ADRs, testing).
Tech Stack
| Area | Stack |
|---|---|
| Web | Next.js 16 (App Router, Turbopack), React 19, TypeScript, Tailwind CSS v4, BlockNote |
| Mobile | Expo 55, React Native 0.84, expo-router, TenTap editor, WatermelonDB |
| Desktop | React Native macOS 0.81.5, TenTap editor, WatermelonDB (shared with mobile) |
| Backend | Supabase (Postgres + Auth + Storage + RLS) |
| Hosting | Vercel (web), Fastlane → App Store / Play Store / Mac App Store |
| Monitoring | Sentry (errors), PostHog (analytics) |
| Testing | Vitest, Testing Library, Playwright, Jest, Maestro |
| Monorepo | pnpm workspaces + Turborepo |
Architecture deep-dive: docs/architecture/overview.md.
Getting Started
Prerequisites
- Node.js 22+
- pnpm
- A Supabase project + Supabase CLI
- Playwright browsers —
pnpm exec playwright install(for E2E)
For mobile dev: Expo CLI, Android SDK, Xcode.
For desktop dev: Xcode, CocoaPods (gem install cocoapods), Ruby 3.3.7 via rbenv.
Full first-time setup guide: docs/operations/local-dev-setup.md.
Setup
git clone https://github.com/JakubAnderwald/drafto.git
cd drafto
pnpm install
# Configure web env
cp apps/web/.env.local.example apps/web/.env.local
# Fill in NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY
# Push schema to your Supabase project
supabase link --project-ref <your-project-ref>
supabase db push
# Run the dev server
pnpm dev
Open http://localhost:3000.
Scripts
Dev commands live here. Build / release / deployment commands live in docs/operations/builds-and-releases.md.
| Command | Description |
|---|---|
pnpm dev | Start dev server (all apps) |
pnpm build | Production build |
pnpm lint | ESLint (all packages) |
pnpm format:check | Prettier check |
pnpm test | Unit + integration tests |
pnpm typecheck | TypeScript check |
pnpm migration:check | Check migrations for destructive SQL and missing Data API grants |
Per-app test commands: docs/architecture/testing.md.
Project Layout
apps/
web/ Next.js web app (App Router)
mobile/ Expo + React Native iOS/Android
desktop/ React Native macOS
packages/
shared/ TypeScript types + constants (@drafto/shared)
supabase/
migrations/
docs/
features/ Per-area briefs (auth, notes, editor, sync, search, MCP, …)
architecture/ System shape (overview, environments, testing)
operations/ Runbooks (local-dev-setup, builds-and-releases, migrations)
adr/ Architecture Decision Records
archive/ Historical plans (not source of truth)
Full index: docs/README.md.
Contributing
All work goes through branches + PRs — see CLAUDE.md for the project conventions (worktree workflow, SOLID, testing requirements, production safety rails). Decisions are recorded in docs/adr/.
License
Private project.
Frequently asked questions
What is Drafto?
Create, read, search, and organize your Drafto notes and notebooks.
How do I install Drafto?
It runs as a remote server. In Claude Code: claude mcp add --transport http drafto 'https://drafto.eu/api/mcp' --header 'Authorization: <Bearer token — generate an API key at drafto.eu/settings>'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Drafto need an API key?
Yes. It expects Authorization, which you set in its configuration.
Is Drafto open source?
Yes. Its code is on GitHub under the GPL-3.0 license.
Who maintains Drafto?
It is published by JakubAnderwald. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.