TextStack is a free reading app: upload a book, read it on the web or on Android, save words, talk about a chapter with your AI assistant. These pages are for people who run the code or change it. Readers find help inside the app at textstack.app.
TextStack is moving to V2: a second database, a new reader, one cutover. Part of it is live and part is behind a flag.
- STATUS.md: what is in flight, what is known broken, what we decided not to do.
- V2 architecture: the map of V2 and its boundaries.
- Changelog: merged pull requests by week.
| Page | What it answers |
|---|---|
| Overview | Which services exist and what each one does |
| Flows | How a request moves between them, one diagram per scenario |
| Data model | Every table: purpose, status, personal data |
| Data access | The rules for repositories and SQL |
| Frontend | The apps and the shared packages |
| Delivery | How a commit reaches production |
| Decisions (ADRs) | Why each load-bearing choice was made; read the status line first |
- Environment variables
- MCP server: connect TextStack to an AI assistant
- API reference: generated from the code. Run the app, then open
http://localhost:8080/scalar/v1.
- A change to a command, an environment variable, a route, a flag or a setup step edits the page that states it, in the same pull request.
- One home per fact. The API reference and the changelog are generated, never written by hand.
- A new decision that is hard to reverse, or that touches several modules, gets an ADR.
- Links are checked in CI:
node scripts/check-doc-links.mjs.
internal/ holds the maintainer's working material: operations of the production
server, incident postmortems, V2 design drafts, feature specs, QA reports, the frozen changelog
archive and legacy/ (what the V2 cutover removes). It is public, but not written for a first read.