Write. Preview. Export. Done — entirely on your machine.
Nota is a distraction-free markdown editor that runs fully in your browser — no account, no sign-up, no telemetry, no server. Open it, write, and your words stay on your machine.
It's a single static web app. Clone it, run it, and everything works offline: live preview, 40+ templates, a visual table editor, focus mode, DOCX import, PDF/Markdown export, and optional AI that fills in templates using your own API key.
There is no backend and nothing to host. The editor for people who love markdown and hate friction.
| ⚡ Instant | Loads in a blink. Static app, no onboarding, cursor's already blinking. |
| 👁️ Live preview | Rendered markdown side-by-side as you type, with word/character counts. |
| 🔒 Yours by default | Files live in your browser storage and on your disk via the File System Access API. Nothing leaves your machine. |
| 📐 40+ templates | Meeting notes, READMEs, blog posts, specs, and more. |
| ▦ Visual table editor | Build GFM tables without counting pipes. |
| 🎯 Focus mode | Word-goal tracking to hit your daily target. |
| 📥 DOCX → Markdown | Drop in a Word doc, get clean markdown out (mammoth.js, client-side). |
| 📦 Export | One click to .md or PDF (via the browser print dialog). |
| 🧠 AI, on your terms (BYOK) | Bring your own key (OpenAI, Anthropic, OpenRouter, or any compatible endpoint). Your key stays in your browser. |
| 🌙 Dark mode | Of course. |
| 📱 Installable PWA | Add to home screen. Works offline. Feels native. |
You need Node.js 18+ and npm.
git clone <your-fork-url>
cd nota
npm install
npm run dev # http://localhost:5173That's it — open the URL and start writing.
To produce a static bundle you can host anywhere (or just open from disk):
npm run build # outputs to ./build
npm run preview # serve the production build locallyThe build in ./build is plain static files — drop them on any static host
(Netlify, GitHub Pages, an S3 bucket, your own box) or serve them locally.
AI is entirely opt-in and runs directly from your browser to your provider — no key ever touches a server.
- Open Settings (gear icon).
- Choose a provider: OpenAI, Anthropic, OpenRouter, or a custom OpenAI-compatible endpoint.
- Paste your API key.
The key is stored in your browser's localStorage. You pay your provider
directly; Nota takes no cut and sees nothing.
npm test # run the vitest suite
npm run check # svelte-check (types + a11y)SvelteKit 2 · Svelte 5 runes · CodeMirror 6 · marked · mammoth.js ·
vite-plugin-pwa · @sveltejs/adapter-static
Lean, static, offline-first.
MIT — use it, fork it, ship it.