{"slug": "i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper", "title": "I Built a Chrome Extension to Replace Notion's Broken Web Clipper", "summary": "A developer built ClipMark, a Chrome extension that replaces Notion's broken Web Clipper by saving clips locally first, generating AI tags and summaries via gpt-4o-mini, and supporting Markdown export and Notion integration with OAuth. The extension addresses top user complaints like login loops and silent data loss, with a free tier and $4.99/month pro plan.", "body_md": "Notion's official Web Clipper has a 3.4★ rating on the Chrome Web Store. The reviews tell the same story for years: \"go online to save\" errors while online, login loops every few hours, clips vanishing silently, and zero organization on save.\n\nPocket shut down. MarkDownload was removed from the Chrome Web Store. The gap was obvious, so I built ClipMark to fill it.\n\nI mapped the most common complaints from real Chrome Web Store reviews and built features that directly address each one:\n\n| Complaint | How ClipMark fixes it |\n|---|---|\n| \"Asks me to log in every time\" | OAuth via Notion's official API — persistent token, no session cookie dependency |\n| \"Go online to save\" while online | Every clip is saved locally first. If the API fails, it queues with automatic retry. Nothing is silently lost. |\n| \"Half the content is missing\" | Content extraction with Readability.js + manual selection fallback + full page mode |\n| \"No tags, no organization\" | AI generates 3–5 tags + a one-line summary at clip time, editable before saving |\n| \"Have to re-select the database every time\" | Database choice is remembered across sessions |\n\nClipMark is a Manifest V3 Chrome extension with three core actions:\n\n**1. Copy Markdown** — Extracts the main content (no menus, footers, or cookie banners) and copies clean Markdown to clipboard. No account needed. This is the entry point for anyone who feeds web content into ChatGPT, Claude, or Obsidian.\n\n**2. Download .md** — Saves a Markdown file with YAML frontmatter (title, URL, date, tags). Drop it into Obsidian or any note-taking system.\n\n**3. Save to Notion** — Creates a page in your chosen database with native Notion blocks (not a bookmark, not a screenshot). Properties are mapped automatically: Title, URL, Date, Tags, Summary.\n\nThe first two work without any account or sign-up. Notion integration requires a one-time OAuth connection.\n\nWhen saving to Notion, ClipMark sends the extracted text to a lightweight backend (gpt-4o-mini on a VPS). The AI returns:\n\nBoth are shown in a review panel before saving — fully editable. The user stays in control.\n\nCost per clip: approximately $0.0005–0.002. At 20 free clips per month per user, the AI cost is negligible.\n\nThis is the feature I'm most proud of. Every clip follows this flow:\n\n**Nothing is ever silently lost.** This directly addresses the #1 frustration with the official clipper.\n\n```\n┌─────────────┐     ┌──────────────┐     ┌──────────────┐\n│  Popup UI   │────▶│ Service      │────▶│ Notion API   │\n│             │     │ Worker       │     │ (OAuth)      │\n└─────────────┘     │              │     └──────────────┘\n                    │ background.js│\n┌─────────────┐     │              │     ┌──────────────┐\n│ Content     │────▶│ • Queue mgr  │────▶│ VPS Backend  │\n│ Script      │     │ • AI client  │     │ /enrich      │\n│ (extract)   │     │ • Storage    │     │ (gpt-4o-mini)│\n└─────────────┘     └──────────────┘     └──────────────┘\n```\n\n`/notion/token`\n\n(OAuth code exchange) and `/enrich`\n\n(AI tags + summary + quota enforcement)**Content extraction is harder than it looks.** Readability.js handles 80% of pages well, but complex layouts (multi-column articles, heavy SPAs, paywalled content) still break. The manual selection fallback is essential — don't skip it.\n\n**The Notion API block limit matters.** Notion's API accepts max 100 blocks per request. Long articles need to be batched. This is the kind of thing you only discover when testing with real content.\n\n**Onboarding is the first impression.** An inline `<script>`\n\ntag in the onboarding page was silently blocked by Manifest V3's CSP. The buttons did nothing. Users would have seen a broken first experience. Always test every HTML page in the actual extension context, not just in a browser tab.\n\n| Free | Pro — $4.99/mo | |\n|---|---|---|\n| Clips (Markdown + Notion) | Unlimited | Unlimited |\n| AI (tags + summary) | 20/month | Unlimited |\n| Future features | — | Included |\n\nThe anchor: Web2MD charges $9/month. Copy to Notion is paid. ClipMark enters below both.\n\nThe math: gpt-4o-mini costs ~$0.001 per clip. 20 free clips = ~$0.02/user/month. Even at 1% conversion, the unit economics work.\n\n**Live now:** Published on the Chrome Web Store with 5.0★ rating. Core features complete (Markdown, Notion, AI, queue, payments).\n\n**Roadmap (v2):**\n\nIf you use Notion, Obsidian, or regularly feed web content into AI tools:\n\n🔗 [ClipMark on the Chrome Web Store](https://chromewebstore.google.com/detail/clipmark/ajenligloocafblbblpbloiknfnfahij)\n\nFree for unlimited clips. AI is limited to 20/month on free, unlimited on Pro.\n\nFeedback and feature requests welcome.", "url": "https://wpnews.pro/news/i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper", "canonical_source": "https://dev.to/celsomakabe/i-built-a-chrome-extension-to-replace-notions-broken-web-clipper-5467", "published_at": "2026-07-25 21:49:52+00:00", "updated_at": "2026-07-25 22:31:04.667564+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "ai-products", "ai-tools"], "entities": ["Notion", "ClipMark", "Chrome", "Readability.js", "gpt-4o-mini", "Web2MD", "Obsidian", "ChatGPT"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper", "markdown": "https://wpnews.pro/news/i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper.md", "text": "https://wpnews.pro/news/i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper.txt", "jsonld": "https://wpnews.pro/news/i-built-a-chrome-extension-to-replace-notion-s-broken-web-clipper.jsonld"}}