Website for recito
https://recito.org
- Svelte 52.1%
- TypeScript 41.1%
- Shell 2.5%
- Python 2.2%
- CSS 1%
- Other 1.1%
| cgi | ||
| docs | ||
| src | ||
| static | ||
| tests | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.txt | ||
| deploy.sh | ||
| LICENSE-AGPL.txt | ||
| package-lock.json | ||
| package.json | ||
| prune-audio.sh | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Recito Website
Static site for the recito audiobook catalog. Built with SvelteKit 2 +
Svelte 5 (runes) and @sveltejs/adapter-static; all pages are prerendered.
Develop
npm install
npm run dev # local dev server
npm run check # svelte-check types
npm run build # prerender to build/
npm run preview # serve the built site
Requires Node 20.19+ (Vite 7). See docs/INSTALL.md for setup/deploy details and docs/USAGE.md for catalog maintenance.
Data
The catalog is produced by the
recito-catalog pipeline
from recito renders of
Standard Ebooks titles, and synced into
static/ (see docs/USAGE.md):
catalog/browse.json— slim record per audiobook for the grid (fetched at runtime by the browse page; never bundled).catalog/books/<slug>.json— full record per audiobook, read at build time by the prerendered detail pages.audio/<slug>.m4b— the rendered audiobook (gitignored; 100s of MB).covers/<slug>.jpg— SE's cover art, verbatim from the source epub, with the cover credit beside it as<slug>.license.txt(gitignored).
Field shapes are defined in src/lib/types.ts. Cover.svelte shows the
synced cover, falling back to a generated typographic cover (coverHue)
when the image is absent.
LICENSE
AGPL-3.0-or-later license, or any later version.
Copyright © 2026, Jeff Moe.
Loveland, Colorado, USA