Tech stack

The tools behind Synapse

Each layer, what I chose for it, and why.

Planned stack for Synapse
LayerChoiceWhy
App and API Next.js (TypeScript), route handlers as the API One TypeScript codebase for the screens and the API.
Styling Tailwind Utility classes keep the styling next to the markup.
Database SQLite via better-sqlite3, plain SQL, no ORM A local file database, and plain SQL shows exactly what each query does.
Schema changes Numbered SQL migrations Every schema change is a small file that can be read in order.
Notes Markdown files in a vault folder as source of truth Notes stay readable plain text in a folder I control.
Search SQLite FTS5 keyword search (semantic search later) Built into SQLite, so no extra service to run.
Local AI Ollama behind a provider interface Models run on my machine, and the interface keeps the provider swappable.
Validation zod Checks data at the API boundary against typed schemas.
Tests Vitest and Playwright Vitest for small tests of the code, Playwright for testing the app in a browser.

Rules carried over