What ships next

Roadmap

LYNX — An independent, privacy-focused web search engine — no query logs, explainable ranking, and crawler ethics as a structural constraint.

Phase 0 — Architecture

active
  • Accept ADRs 0001–0021
  • Give every open question an owner and a first experiment
  • A reviewer outside the core team can follow the design without asking what anything means

Phase 1 — Search prototype

planned
  • Query processor: lexer, parser, AST, operators, normalisation
  • SearchIndexReader trait behind an in-memory fake and a real Tantivy reader
  • BM25F ranker with field weights, phrase queries, freshness and quality
  • End-to-end /api/v1/search with the full middleware stack
  • Evaluation harness: judged query set, NDCG@10, Recall@50, MRR@10, golden rankings

Phase 2 — Crawler

planned
  • Frontier with per-host budgets and politeness tokens
  • robots.txt as a policy input, never a trust input
  • SSRF safety gate, streaming downloader caps, parser bounds
  • Extracted-text-only indexing with canonicalisation and tracking-param stripping

Phase 3 — Real search engine

planned
  • Scale the crawl with better frontier prioritisation, sitemaps and feeds
  • Link graph and domain-capped PageRank authority
  • Near-duplicate clusters via SimHash and MinHash
  • Full operator set including filetype:, intitle:, inurl: and before:/after:
  • Suggestions from corpus statistics, never from query logs
  • Multi-language detection, stopwords, stemmers and index fields

Phase 4 — Privacy hardening

planned
  • Privacy invariants enforced as tests, not as review comments
  • Ship lynx-verify-privacy as a release artefact so anyone can check the claims
  • Zero-downtime index generations with 24h rollback

Phase 5 — Astra (AI answers)

planned
  • Optional grounded answers with deterministic citation validation
  • Prompt-injection defences as an architectural property, not a prompt
  • Self-hosted Llama-3-8B path via vLLM or Ollama

Phase 6 — Scale & distribution

planned
  • Multi-shard index with documented capacity targets
  • Horizontal crawl worker scaling with a measured claim-latency trigger
  • Federated and third-party embedding path