cd /news/developer-tools/clipmark-my-notion-web-clipper-repla… Β· home β€Ί topics β€Ί developer-tools β€Ί article
[ARTICLE Β· art-73858] src=promptcube3.com β†— pub= topic=developer-tools verified=true sentiment=Β· neutral

ClipMark: My Notion Web Clipper Replacement

A developer built ClipMark, a Manifest V3 browser extension that replaces the official Notion web clipper, using OAuth for persistent tokens and a local-first save system with chrome.storage to prevent data loss. The extension offers Markdown copy, Markdown download, and Notion sync modes, and integrates gpt-4o-mini to auto-generate summaries and tags for saved content.

read2 min views1 publishedJul 26, 2026
ClipMark: My Notion Web Clipper Replacement
Image: Promptcube3 (auto-discovered)

The Core Fixes #

I focused on the specific pain points that make the official tool frustrating. Instead of relying on session cookies that expire, I used OAuth via Notion's official API for persistent tokens. To stop the "silent loss" of data, I implemented a local-first save system: every clip hits chrome.storage

before the API call even fires. If the network fails, a chrome.alarm

handles retries with exponential backoff.

Functional Breakdown #

ClipMark operates as a Manifest V3 extension with three distinct modes:

  1. Markdown Copy: Uses Readability.js and Turndown to strip menus and banners, copying clean Markdown to the clipboard. This is a huge productivity gain for anyone using an AI workflow with Claude or Obsidian.

  2. Markdown Download: Exports a .md

file with YAML frontmatter (URL, date, tags) for local archiving.

  1. Notion Sync: Pushes content as native Notion blocks. It remembers your target database across sessions so you don't have to re-select it every time.

The AI Enrichment Layer #

To solve the "zero organization" problem, I integrated a lightweight backend running gpt-4o-mini. When saving to Notion, the tool automatically generates a one-line summary and 3–5 relevant tags. These appear in a review panel for the user to edit before the final save, ensuring the AI doesn't hallucinate your organization system.

Technical Stack #

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Popup UI │────▢│ Service │────▢│ Notion API β”‚
β”‚ β”‚ β”‚ β”‚ (OAuth) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ 
 β”‚ background.jsβ”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ └──────────────┐
β”‚ Content │────▢│ β€’ Queue mgr │────▢│ VPS Backend β”‚
β”‚ Script β”‚ β”‚ β€’ AI client β”‚ β”‚ /enrich β”‚
β”‚ (extract) β”‚ β”‚ β€’ Storage β”‚ β”‚ (gpt-4o-mini)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend: Manifest V3, vanilla JS, Readability.js.Backend: Express on a VPS handling OAuth exchange and AI enrichment.Storage:chrome.storage.local

for settings and the anti-loss queue.Monetization: ExtensionPay (Stripe) for unlimited AI tiers.

The biggest lesson learned here was that content extraction is incredibly nuanced. While Readability.js is a great starting point, handling the variety of modern web layouts requires a mix of automated extraction and manual selection fallbacks to ensure no data is missed.

Next Claude Code: Mastering Context Engineering β†’

── more in #developer-tools 4 stories Β· sorted by recency
── more on @clipmark 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/clipmark-my-notion-w…] indexed:0 read:2min 2026-07-26 Β· β€”