Blog
Measured notes on running AI locally
These posts are not product marketing. They record the numbers we measured while running RAG inside a browser tab, the limits we hit, and the approaches that look plausible but do not work.
Document Compliance Without Uploading
What 'data never leaves the device' actually asserts, where that property fits and where it does not, the residual risks nobody mentions, and a question list for internal review.
Limits of Running LLMs in the Browser
Memory ceilings, the missing SharedArrayBuffer on static hosts, uneven WebGPU support, and what 3 to 8 tokens per second really means for a 0.5B model — plus what work belongs
How Chunking Decides Answer Quality
Why a fixed-length cut separates a rule from its exception, how structure-aware splitting works with 15% overlap, and the failure where retrieval finds the right page and the
What Vector Search Actually Computes
Cosine similarity, L2 normalisation and the dot product in plain language — plus why contract numbers defeat vectors, how RRF merges two rankings, and why a relevance gate is
Choosing a Local Embedding Model
Three embedding models, three different trade-offs: 25 MB Chinese-first, 23 MB English-first, 120 MB bilingual — plus what q8 quantisation costs and when an index must be rebuilt.
Why Your Documents Should Never Be Uploaded
What happens to a file after it reaches a cloud service — object storage, logs, backups, retention windows, training opt-ins — and how to verify local processing yourself.