BulkMD
§

Blog · Field notes

Notes on Markdown, LLM context, and browser tooling.

Practical, measured posts on cleaning web content for AI pipelines — from one-shot prompts to bulk RAG ingest. No pop-ups, no newsletters; just things we learned while shipping BulkMD.

20 postsUpdated monthly
Workflow

Building an Obsidian Knowledge Base from Web Pages

A reproducible workflow for turning your read-it-later list into a structured Obsidian vault — frontmatter, folder shape, and linking patterns.

11 min readObsidianNotionRead
Engineering

chrome.storage Patterns for Manifest V3 Extensions

When to use chrome.storage.session, .local, .sync, or IndexedDB in a Manifest V3 extension — quotas, throughput, and a practical layout for queue-heavy work.

11 min readManifest V3Service workerRead
Workflow

Building a Claude Code Knowledge Base from Web Docs

A reproducible workflow for turning any documentation site into a local Markdown knowledge base that Claude Code, Cursor, and other coding agents can index.

11 min readClaudeChatGPTRead
Cost & Performance

Claude Model Routing: Haiku vs Sonnet vs Opus for RAG

When to call Haiku, Sonnet, or Opus in a RAG pipeline — a measured comparison of cost, latency, and answer quality across the Claude 4.x lineup in 2026.

11 min readClaudeCost optimizationRead
LLM Context

How Google AI Overviews Pick Citations in 2026

What gets surfaced in AI Overviews — the signals Google uses to choose citations, why semantic HTML beats keywords, and what to fix this week.

11 min readSEOLLM contextRead
LLM Context

How to Write an llms.txt File for AI Search in 2026

A practical guide to authoring llms.txt — the emerging standard that tells ChatGPT, Claude, Perplexity, and Google AI Overviews what your site is about.

13 min readLLM contextSEORead
Engineering

Manifest V3 Service Workers for Bulk URL Processing

Engineering patterns for a Chrome extension that survives service-worker restarts mid-job — queue persistence, tab pools, alarms, and what holds up at scale.

12 min readManifest V3Service workerRead
LLM Context

How AI Agents Read Markdown Context in 2026

How Claude, ChatGPT, Cursor, and Perplexity actually parse Markdown — what they cite, what they drop, and how to structure pages for higher answer quality.

13 min readLLM contextMarkdownRead
Comparisons

OpenAI vs Voyage vs Cohere Embeddings: 2026 RAG Benchmark

Three embedding-model families compared on a Markdown-corpus RAG task — retrieval quality, cost per million tokens, dimensions, and which fits which workload.

11 min readRAGTokensRead
Cost & Performance

Anthropic Prompt Caching + Markdown: 90% Cost Reduction

How pairing Anthropic prompt caching with clean Markdown context drops repeat-query costs to ~10% of baseline — with reproducible numbers from a real workflow.

12 min readCost optimizationTokensRead
Comparisons

Readability vs Trafilatura vs jsdom: 2026 Benchmark

A measured comparison of three HTML content extractors across 50 real pages — extraction fidelity, runtime, edge cases, and which fits a browser extension.

12 min readReadabilityTurndownRead
Comparisons

Server Scrapers vs Browser Extensions: 2026 Tradeoffs

When server-side scraping APIs win, when a browser extension wins, and the four metrics — latency, auth coverage, cost, rate-limit risk — that decide it.

11 min readWeb scrapingChrome extensionRead
Engineering

Handling SPA Pages in a Manifest V3 Content Script

Why naive document_idle injection fails on Next.js, React, and Vue apps — and the MutationObserver-and-quiescence pattern that reliably waits for hydration.

11 min readManifest V3Content scriptRead
Cost & Performance

Token Math by Content Type: Code, Tables, Lists in 2026

How prose, code, tables, lists, and JSON tokenize differently in 2026 — the per-byte token cost of each content type, and where Markdown compresses best.

11 min readTokensCost optimizationRead
Comparisons

Turndown vs Pandoc vs marked: Serializer Benchmark

Three HTML-to-Markdown serializers compared on the same 50 pages — output fidelity, GFM coverage, runtime, and which one fits a browser-side pipeline.

12 min readTurndownPandocRead
Engineering

Vite + Manifest V3: Bundling a Chrome Extension Right

How to bundle a Manifest V3 extension with Vite without tripping the no-remote-code policy — single-file service workers, asset paths, and IIFE outputs.

11 min readManifest V3Chrome extensionRead
Workflow

How to Convert Any Web Page to Markdown for ChatGPT & Claude (2026 Guide)

A practical guide to turning live web pages into clean Markdown for LLMs — why it cuts tokens 60–80%, how Readability strips boilerplate, and the fastest browser-side workflow.

8 min readLLM contextMarkdownRead
Engineering

Bulk Export Web Pages to Markdown: a Repeatable Chrome Workflow

How to convert dozens of URLs to clean Markdown at once using a local Chrome extension — concurrency, retries, queue persistence, and the patterns that make it survive a service-worker restart.

7 min readBulk exportChrome extensionRead
Cost & Performance

Cut LLM Token Costs by 60–80% with Clean Markdown Context

A measured breakdown of how converting source pages to Markdown reduces prompt tokens, the math behind the savings, and where the gains plateau — with real numbers from twenty benchmark pages.

8 min readTokensCost optimizationRead