Searchable Feature gallery

ADR-0001: Pull-based static HTTP transport, no query-time backend

Status

Accepted (implemented since Phase 1, packages/indexer/packages/client).

Context

The core problem statement (getting-started/overview.md) is search-service quality without a search service: no per-query infrastructure, no hosted API, no query-time billing. That requires picking, once, how the runtime gets index data at all — a query-time API server, a database the browser talks to directly, or files fetched over plain HTTP.

Decision

The indexer runs offline and emits an immutable, content-hashed set of static files (manifest + shards, concepts/index-format.md). The browser runtime (@ktjn/searchable-client) only ever issues plain fetch() GET requests against whatever static host serves those files, lazily fetching just the shards a given query touches (guides/offline-search.md). There is no query-time write path, no server-side logic, and no protocol beyond HTTP GET + standard cache headers.

Alternatives Considered

Consequences