search for standard sites
pub-search.waow.tech
search
zig
blog
atproto
1# leaflet-search notes
2
3## deployment
4- **backend**: push to `main` touching `backend/**` → auto-deploys via GitHub Actions
5- **frontend**: manual deploy from `site/` directory (`cd site && wrangler pages deploy . --project-name leaflet-search`)
6- **tap**: manual deploy from `tap/` directory (`fly deploy --app leaflet-search-tap`)
7
8## remotes
9- `origin`: tangled.sh:zzstoatzz.io/leaflet-search
10- `github`: github.com/zzstoatzz/leaflet-search (CI runs here)
11- push to both: `git push origin main && git push github main`
12
13## architecture
14- **backend** (Zig): HTTP API, FTS5 search, vector similarity
15- **tap**: firehose sync via bluesky-social/indigo tap
16- **site**: static frontend on Cloudflare Pages
17- **db**: Turso (source of truth) + local SQLite read replica (FTS queries)
18
19## platforms
20- leaflet, pckt, offprint, greengale, whitewind: known platforms
21- leaflet/pckt/offprint/greengale detected via basePath; whitewind via `com.whtwnd.*` collection
22- other: site.standard.* documents not from a known platform
23
24## search ranking
25- hybrid BM25 + recency: `ORDER BY rank + (days_old / 30)`
26- OR between terms for recall, prefix on last word
27- unicode61 tokenizer (non-alphanumeric = separator)
28
29## tap operations
30- from `tap/` directory: `just check` (status), `just turbo` (catch-up), `just normal` (steady state)
31- see `docs/tap.md` for memory tuning and debugging
32
33## zig dependencies
34- update a dependency hash: `zig fetch --save <url>` (fetches and updates build.zig.zon automatically)
35
36## MCP server
37- hosted: `claude mcp add-json pub-search '{"type": "http", "url": "https://pub-search-by-zzstoatzz.fastmcp.app/mcp"}'`
38- local dev: `cd mcp && uv run pytest` for tests
39- deployed on fastmcp.app
40
41## common tasks
42- check indexing: `curl -s https://leaflet-search-backend.fly.dev/api/dashboard | jq`