← Blog

A typo-tolerant family document hub with FastAPI and Meilisearch

DEENESRUUK

Every household accumulates the same scattered pile: the boiler manual, the recipe someone screenshotted, the link to the school portal, the warranty PDF. start.khanoff.com is my attempt to put all of it behind one forgiving search box for the whole family.

The stack

  • FastAPI + Jinja2/HTMX — server-rendered pages with just enough interactivity, no SPA. Fast to load on a phone, simple to reason about.
  • PostgreSQL for the data.
  • Meilisearch for search — and this is the point: it’s typo-tolerant. Family members don’t remember exact filenames; they type roughly what they mean and the right document surfaces anyway.
  • Immich handles the media (photos and videos) instead of reinventing a media store.
  • Magic-link login via the household mail server (poste.io) — no passwords to forget; you click a link in your email.
  • It’s a PWA, so it installs to the home screen on phones and desktop.

Designed for people, not admins

The whole thing is owner-bootstrapped and runs in a few Docker containers behind nginx. But the design goal was never “clean architecture” for its own sake — it was that a non-technical family member can open it, type a half-remembered word, and find the thing. Typo-tolerant search plus a warm, simple UI does more for adoption than any amount of backend polish.

Same philosophy, different domain

Like my other self-hosted tools, the moving parts are arranged so the everyday path is dead simple and resilient: search and browse always work, media lives in a system built for it, and login is one click. The cleverness stays out of the way of the person just trying to find the WiFi password.

Transparency: most posts here are drafted with AI assistance, and the non-English versions are machine-translated by a local LLM and then reviewed. Spotted an error? Please let me know.