Roadmap
Work is a tree of milestones. M0 through M15 are the MVP and ship as v1.0. Every leaf is one issue and one pull request.
This table is read from PROGRESS.md when the site is built:
321 of 521 roadmap leaves done (62%) in the 2026-11-05 PROGRESS.md snapshot, with 0 marked in progress.
That file is regenerated from checkboxes in
ROADMAP.md and is the live status.
The ready-next list lives there too.
A milestone is done when every leaf is done, in progress when some are done, ready when its dependencies are done and its own leaves have not started, and blocked while a dependency is unfinished.
| Milestone | Delivers | Depends on | Snapshot |
|---|---|---|---|
| M0 Project bootstrap | Workspace, CI, tooling, docs scaffolding | — | In progress, 35/36 |
| M1 Format primitives | Encodings, codecs, header, frames | M0 | Done, 53/53 |
| M2 Storage abstraction & local backends | Storage, memory, local file, container | M1 | Done, 46/46 |
| M3 Schema, documents, collections | Collections, documents, manifests | M1 | Done, 15/15 |
| M4 Text analysis | Tokenizers, stemmers, analyzers | M0 | Done, 29/29 |
| M5 Segment writer & reader | Segment writer and reader | M1, M3, M4 | Done, 48/48 |
| M6 Write path, durability, merging | WAL, commit, merge, recovery | M2, M5 | In progress, 49/58 |
| M7 Query engine & ranking | Parser, BM25F, top-k, facets | M5 | In progress, 46/51 |
| M8 Zero-results avoidance | The zero-results cascade | M7 | Blocked, 0/29 |
| M9 Blob store | Pack file, remote blobs, GC | M1, M2 | Ready, 0/20 |
| M10 Embedded API | Db and Collection, CLI, v0.1 | M6, M7, M8, M9 | Blocked, 0/19 |
| M11 Server | gRPC, HTTP, image | M10 | Blocked, 0/23 |
| M12 Cloud storage backends | S3, GCS, Azure, cache, replicate | M2, M6, M9, M11 | Blocked, 0/29 |
| M13 Distribution & Kubernetes | Lease, shards, router, Helm | M11, M12 | Blocked, 0/24 |
| M14 SDKs | Rust and Go network clients | M11, M13 | Blocked, 0/19 |
| M15 Benchmarks, hardening, v1.0 | Benchmarks, hardening, format freeze | M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13, M14 | Blocked, 0/22 |
What each milestone contains, in prose, is the milestones page.
After v1.0
Section titled “After v1.0”The snapshot above is M0–M15 only. PROGRESS.md keeps that percentage on those leaves and reports M16–M31 separately. None of the later milestones have been started.
| Target | Milestones | Delivers |
|---|---|---|
| v1.1 | M16–M19, M31 | Embedded Go and TypeScript SDKs, highlighting, autocomplete, import from Elasticsearch, Meilisearch, and SQLite FTS5, Persia Studio (read-only, in the browser) |
| v1.2 | M20–M21 | Encryption at rest, Python SDK |
| v2.0 | M22–M25 | One file per tenant, Persia Cloud, CDC from Postgres, MySQL, and Supabase, web dashboard |
| v2.1 | M26 | React, Vue, and Svelte search components |
| v2.2 | M27 | Hybrid text and vector search, in-repo embeddings, MCP, single-file retrieval |
| v2.3 | M28 | WASM, iOS, and Android |
| v3.0 | M29–M30 | Geo filters and sort, document access control, audit log, SSO, on-premises packaging |
Multi-tenant (M22) comes before Persia Cloud (M23) because the service is one file per tenant, and Cloud also waits on encryption (M20). The longer notes are the milestones page.