Contexum - uw tweede brein
RustTauriReactTypeScriptTipTapSQLitePostgreSQLaxumClaude APIOllamaPWAWeb PushDockerCoolify

Contexum - uw tweede brein

Een local-first productiviteitsapp waarin je notities in gewone Markdown-bestanden blijven. Je eigen AI leest mee, beantwoordt vragen met bronvermelding en stelt wijzigingen voor die jij eerst bevestigt.


Contexum

Je operationele geheugen, eindelijk aan jouw kant.

Contexum is een persoonlijke productiviteitsapp die rond één principe is gebouwd: jouw notities zijn gewone Markdown-bestanden, en die blijven van jou. De app zet er een snelle index bovenop en gebruikt AI als verteller. Claude wordt nooit de eigenaar van je data.

Kernideeën

  • Markdown is de waarheid. Notities staan als .md-bestanden in een map die je zelf kiest. Ze werken in elke andere Markdown-tool en zijn zonder de app volledig leesbaar.
  • Drie-zonemodel. Je notities (Zone 1) zijn heilig. De lokale SQLite-index (Zone 2) is altijd opnieuw op te bouwen. Postgres (Zone 3) bewaart taken, projecten en chats.
  • Tools stellen voor, mensen bevestigen. De AI kan niets zomaar wijzigen. Elke aanpassing aan een notitie of taak verschijnt eerst als bevestigingskaart, met een knop om ongedaan te maken.

Functies

  • Chat met bronvermelding. AI zoekt zelf in je notities en verwijst naar de notities die het gelezen heeft. Een antwoord kan alleen bronnen citeren die je AI ook echt gelezen heeft.
  • Hybride zoeken. BM25 (SQLite FTS5) en vectorzoeken (BGE-small via fastembed) worden gecombineerd met Reciprocal Rank Fusion. Een eval-gate bewaakt de kwaliteit: recall@10 = 1.00.
  • Today-overzicht. Een vaste engine bepaalt wat vandaag telt. Je AI zet dat elke ochtend om in een overzicht, ook op je telefoon met een pushmelding om 8 uur.
  • Taken uit notities. - [ ]-regels in je notities worden automatisch taken, met metadata, prioriteit en deadlines.
  • TipTap-editor met wikilinks, backlinks, tags, automatische opmaak via een diff die je zelf bevestigt, en autosave met optimistic concurrency.
  • Synchronisatie tussen apparaten. Je kiest zelf een synctool (bijv. Syncthing), of je gebruikt de ingebouwde sync: versies van hele bestanden, versleuteld opgeslagen (AES-256-GCM), met conflictkopieën in plaats van samenvoegen.
  • Lokaal model. Je kunt ook chatten met een lokaal model via Ollama. Die gesprekken verlaten je computer nooit.
  • Telefoon-app (PWA). Je kunt er notities lezen en bewerken, zoeken, taken bekijken en met je AI chatten.

Architectuur

  • Desktop: Tauri 2 (Rust) + React + TipTap
  • Core: Rust-crate met indexering, chunking, zoeken en de Today-engine, gedeeld door desktop en server
  • Backend: axum-service op een VPS (Coolify) met Postgres, voor sync, chats, Web Push (VAPID) en de serverindex
  • AI: Claude Messages API met streaming, tool use en prompt caching, aangeroepen via reqwest, zonder SDK of abstractielaag

Wat ik geleerd heb

Het lastigste was niet de AI. Het lastigste was ervoor zorgen dat de app de bestanden van de gebruiker nooit ongevraagd aanpast. Elke schrijfactie gaat via een klein aantal gecontroleerde paden. Ook AI-voorstellen hebben geen eigen schrijfpad: ze roepen dezelfde commando's aan als een gewone klik.

Interesse in een gelijkaardig project?

IT Service Pieters helpt KMOs en zelfstandigen in het Waasland met websites, IT ondersteuning en AI integratie.