Engineering blog

How MindSage is built, measured.

Notes from building a private journal for Windows with Electron, SQLite and AI models that run on your own PC. What I measured, what I changed, and what I got wrong.

  1. 01

    WAL, one index and a query rewrite

    Making a local journal app's SQLite stay flat at 50,000 entries. The index alone made it 10× slower until the query changed too.

    9 min read · SQLite, Electron

  2. 02

    Vector search was 0.03% of my chat pipeline

    Timing each stage of a local RAG pipeline showed two language model calls were the whole 14-second bill.

    7 min read · RAG, local LLMs

  3. 03

    Testing embedding models on a hand-labelled journal

    My default model ranked the wrong entry first more than half the time. The fix from the docs made it worse.

    7 min read · Search quality, embeddings

  4. 04

    37,500 reads per search

    What memory-mapping fixed in sqlite-vec, the 80 ms loop it couldn't touch, and why I changed the target.

    8 min read · Vector search, SQLite internals

  5. 05

    A benchmark harness that's hard to fool

    Eleven stages, generated numbers, regressions first, and three times it proved me wrong.

    8 min read · Testing, performance