Roadmap
What has to be built, in order, for the redefined scope
Roadmap
Project status: v0, in development
Milestone 1 is in progress and nothing below has shipped yet. These are milestones in dependency order rather than dates, and the ordering matters more than the timing.
1. @seekjs/cli wrapping Pagefind
The foundation everything else depends on.
- Resolve and invoke the Pagefind binary across platforms.
seek build ./dist: index a directory of built HTML, emit Pagefind's sharded index plus the context files the endpoint needs.- Confirm the multilingual path works end to end from
<html lang>alone. - Verify against output from Hugo, Jekyll, MkDocs, Astro, and Next.js, since "reads build output" is only credible if it is actually tested that way.
2. @seekjs/element — the <seek-search> component
Search-only first, no AI. Two lines of HTML, no build step, no framework.
- Query the Pagefind index, render results with correct URLs and anchors.
- Keyboard navigation and accessible combobox semantics.
- Ship
@seekjs/coreunderneath it as the headless state machine.
At the end of this milestone Seek is useful on its own: a well-behaved search component with no API key and nothing to host.
3. The answer endpoint
The capability the rest of the project exists to support.
- Function templates for Cloudflare, Vercel, and Netlify — one file each, plain
fetch, no LLM SDK. - A
searchtool over the Pagefind index that the model can call repeatedly, with different terms, when the first pass is thin. - Grounded citations: numbered sources
[1]..[n], the model forbidden from writing URLs, the client mapping numbers back to real URLs. - Streaming, and answer caching by normalized question.
- Enforce the rule that the browser sends only the question — no client-supplied context, ever, so the endpoint can never be an open LLM relay.
4. @seekjs/react
useSeek() on top of @seekjs/core directly — real React state, no
custom-element interop.
5. MCP server
Expose the same Pagefind index over MCP so coding agents can read a project's documentation the same way its users do. Same index, same citation discipline, no second pipeline to maintain, which is what keeps the addition small.
Possible later
Genuinely optional, and only if the earlier milestones prove out.
- Standalone CLI binary with a pip wrapper. Sphinx and MkDocs teams should not need Node to index their docs. Pagefind already ships as a single binary and has a pip-installable wrapper, so this is a packaging problem rather than a new system.
- Opt-in build-time query expansion. Add synonyms and alternate phrasings to the index at build time to improve lexical recall. Opt-in because it is the one feature that would put a model in the build path, and the build being free and instant is a property worth protecting.
Removed from the old roadmap
- Vector sharding — no vectors, so nothing to shard.
- Citation-drift measurement — no longer applicable. Drift is prevented by construction: the model never sees a URL and cites by number only, so the client cannot render a link that does not exist.
- WASM parser stress testing — there is no Seek parser. Pagefind's Rust binary does the indexing and its limits are already known.
- A managed tier — dropped. There will be no hosted service and no paid plan. Orama Cloud's free tier already offers unlimited queries and answers, and Algolia DocSearch is free for documentation sites, so a paid Seek tier would add nothing for users.
See Comparison for how the alternatives compare today.