Marlin is a stream-based note-taking tool designed for those who value speed and data ownership.
Unlike traditional cloud-based apps (Notion, Evernote), Marlin does not store your notes in a proprietary database. Instead, it treats your GitHub private repository as the backend.
It leverages IndexedDB for instant, offline-capable interactions, and syncs to GitHub in the background.
👉 Try it now at marlinnotes.com
- ⚡ Zero Latency: Built on a Local-First architecture. Writing, searching, and navigating happens instantly in the browser.
- 🔒 No Vendor Lock-in: Your notes are stored as standard Markdown files in your GitHub repo.
- 📝 Chat-like Flow: A frictionless "Stream" interface. Just write, tag, and send.
- 💎 Apple HIG Polish: A meticulously crafted UI with dark mode, fluid animations, and blur effects.
- 🔌 Offline Ready: Read and write without an internet connection. Sync happens when you're back online.
Marlin is built on the modern edge stack:
- Framework: Next.js 15 (App Router)
- Runtime: Cloudflare Works (Edge Runtime)
- Database (Local): Dexie.js (IndexedDB Wrapper)
- Editor: Tiptap (Headless & Prosemirror based)
- Styling: Tailwind CSS v4 + shadcn/ui
How Marlin handles your data securely:
graph LR
User[User / Browser] -- Writes --> IDB[(IndexedDB)]
IDB -- Sync Engine --> Proxy[Edge Proxy]
Proxy -- Encrypted Token --> GH[GitHub API]
GH -- Markdown --> Repo[(User's Repo)]
- Local Write: Data is written to IndexedDB immediately.
- Background Sync: The Sync Engine polls for changes or pushes updates.
- Edge Proxy: To protect client secrets and handle CORS, requests go through a stateless Edge Worker.
- GitHub Storage: Final data rests in your private repository in a clean structure:
my-marlin-notes/
├── notes/
│ ├── 1734249600000.md <-- Timestamp ID
│ └── 1734249605000.md
└── README.md
Marlin is distributed under the Business Source License (BSL) 1.1.
- ✅ Free for Personal Use: You can copy, modify, and run Marlin for your own personal notes.
- ✅ Source Available: The code is open for auditing and learning.
- ❌ Commercial Restriction: You may not use this code to offer a commercial SaaS product that competes with Marlin (i.e., a hosted note-taking service).
The license will automatically convert to MIT License (Open Source) on 2029-12-14.
- Token Safety: Marlin never stores your GitHub Access Token in a backend database. It is stored in an encrypted HTTP-only session cookie.
- Data Access: We cannot read your notes. Only your browser and GitHub have access to the raw data.
