<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://docs.textstack.app/</loc></url><url><loc>https://docs.textstack.app/architecture/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/0001-audience-based-multisite/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/001-storage-bind-mounts/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/002-google-auth-only/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/003-work-edition-model/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/004-postgres-fts/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/005-multisite-resolution/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/006-modular-monolith/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/007-single-domain-consolidation-deploy/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/007-single-domain-consolidation/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-007-reader-autosave/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-010-seo-backfill-automation/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-011-mobile-reader-progress-architecture/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-012-pdf-original-first-lazy-parse/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-013-reader-position-model/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-014-guest-sessions/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-015-reader-position-is-logical/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-016-chapter-review-lives-in-book-insight/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-017-mcp-oauth-authorization-server/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-018-reingest-updates-chapters-in-place/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-019-reader-position-rules/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-020-build-once-deploy-by-digest/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-021-migrations-owned-by-the-migrator/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-022-one-consumer-per-queue/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-023-single-instance-no-fire-and-forget/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-024-auth-fails-closed-by-path/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-025-reader-engine-package/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-026-sql-first-migrations/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-027-retire-public-catalog/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-028-dapper-and-repositories/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-029-foliate-for-v2-epub/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-030-two-databases-one-cutover/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-031-v2-schema/</loc></url><url><loc>https://docs.textstack.app/architecture/adr/ADR-032-one-engine-foliate-fork/</loc></url><url><loc>https://docs.textstack.app/architecture/data-access/</loc></url><url><loc>https://docs.textstack.app/architecture/data-model/</loc></url><url><loc>https://docs.textstack.app/architecture/delivery/</loc></url><url><loc>https://docs.textstack.app/architecture/flows/</loc></url><url><loc>https://docs.textstack.app/architecture/frontend/</loc></url><url><loc>https://docs.textstack.app/architecture/story/</loc></url><url><loc>https://docs.textstack.app/architecture/v2/</loc></url><url><loc>https://docs.textstack.app/glossary/</loc></url><url><loc>https://docs.textstack.app/guides/e2e-tests/</loc></url><url><loc>https://docs.textstack.app/reference/environment-variables/</loc></url><url><loc>https://docs.textstack.app/reference/mcp/</loc></url><url><loc>https://docs.textstack.app/self-host/</loc></url><url><loc>https://docs.textstack.app/start/first-pr/</loc></url><url><loc>https://docs.textstack.app/start/pr-1-pick-the-work/</loc></url><url><loc>https://docs.textstack.app/start/pr-2-change-and-check/</loc></url><url><loc>https://docs.textstack.app/start/pr-3-open-the-pull-request/</loc></url><url><loc>https://docs.textstack.app/start/run-1-get-the-code/</loc></url><url><loc>https://docs.textstack.app/start/run-2-start-it/</loc></url><url><loc>https://docs.textstack.app/start/run-3-open-a-book/</loc></url><url><loc>https://docs.textstack.app/start/run-locally/</loc></url><url><loc>https://docs.textstack.app/stories/</loc></url></urlset>