This content has not been translated yet.

Web clipper — iOS Share Extension + Akita ingest

Capture paywalled web articles from iOS Safari/Brave via a Share Extension that runs Readability.js in the page context, extracts clean HTML + metadata, and POSTs to an Akita ingest endpoint. Stored in a new MongoDB `clippings` collection and indexed into Qdrant corpus.

Overview

Replace Readwise Reader’s web clipping with a self-hosted pipeline fully integrated into Akita.

Architecture

iOS Share Extension (client)

  • Minimal SwiftUI app shell hosting a Share Extension
  • JS preprocessing file runs Readability.js in the authenticated page context (access to paywalled DOM)
  • Extracts: title, content (clean HTML), textContent, byline, siteName, excerpt, OG metadata
  • POSTs JSON payload to Akita ingest endpoint via Cloudflare Tunnel
  • Distributed via TestFlight (personal use, no App Store)

Akita ingest endpoint (server)

  • REST endpoint behind Cloudflare Tunnel (e.g. /api/clippings)
  • Auth via bearer token or shared secret
  • Stores structured clipping in MongoDB clippings collection
  • Feeds plain text into corpus indexing pipeline (chunking + Qdrant embedding via Ollama)

MCP tools

  • clippings__list — list clippings with optional filters (site, date, tags)
  • clippings__get — retrieve a clipping by ID (full content + metadata)
  • clippings__search — semantic search across clippings via Qdrant
  • clippings__delete — remove a clipping

Akita-web

  • /clippings page listing saved articles
  • Individual clipping view rendering clean HTML

Key decisions

  • Readability.js runs client-side (required for paywalled content)
  • Server never needs site credentials
  • Clippings flow into corpus → available in dossiers, briefings, signal reports

References