Solace
A private journal that remembers, and answers questions with citations to your own entries.
What it is
Solace is a journal you write in like a notebook. In the background it tracks people, places and patterns in your entries. Later you can ask your past a question and get an answer drawn only from what you wrote, with links back to the entries it used. It says so plainly when the journal does not cover something.
How it works
- Saving an entry is a plain database write, drafts live on the device first so nothing is lost offline.
- A durable job queue in Postgres analyses mood and tags, splits the entry into passages, embeds them and updates memories, with retry and backoff.
- Search combines vector similarity (pgvector) and full-text search, fused by reciprocal rank fusion.
- Answers stream to the browser over server-sent events and cite their source entries.
- Every table has row-level security; journal text is delimited to resist prompt injection.
Engineering and proof
- About 330 test cases in 33 test files, plus Playwright end-to-end tests with accessibility checks.
- Strict content security policy and a Render blueprint; web on Vercel, API on Render.
- Memories are listed and can be edited, archived or deleted; full export as Markdown or JSON.
My role
Built by Sai Charan.
Built with
- React 19
- Vite
- TanStack Query
- Tailwind v4
- Node 24
- Express 5
- Drizzle
- PostgreSQL
- pgvector
- Supabase Auth
- Gemini
- Playwright