Roadmap
Versions are cuts of cohesive work, not strict semver until v1.0. Every entry that's shipped has a passing CI gate; planned entries are intentions, not promises.
- v0.1Reactivity coreshipped
- state / derived / watch / batch / untrack / resource / history
- two-color graph propagation, synchronous core
- fast-check property tests for the synchronous core
- v0.2Component systemshipped
- JSX via the TS automatic runtime, keyed lists, Fragment
- mount / el / onCleanup / errorBoundary / withCapability
- cls() + recipe() variant helper
- v0.3SSR + server primitivesshipped
- page() / serve() / boot(), renderToString + hydrate
- typed meta + styles, first-class Tailwind v4
- security: 'standard' — per-request CSP nonce, CSRF, body limits
- v0.4Production SSRshipped
- per-request capability scopes (AsyncLocalStorage)
- action() typed RPC — JSON + FormData, ISR via revalidate
- streaming SSR + suspense()
- v0.5Deployment + DXshipped
- Node adapter, buildStatic SSG, font helper, image optimizer
- dev error overlay with source-mapped frames
- startup banner, content-hashed production bundles
- v0.6The "smaller app" arcshipped
- page(path, def) / app([pages]) / routes(prefix)
- co-located on: actions with auto-CSRF, search: URL state
- virtualList(); commonplace rebuilt as the flagship app
- v0.7Motion + design libraryshipped
- @place-ts/reactivity/motion — animate / tween / sequence / curve / motion / flip / colorMix
- @place-ts/design — 14 native-first primitives (Dialog, Sheet, Combobox, Menu, …)
- recipe() variants + themeTokens()
- v0.8Islands architectureshipped
- islands as the only hydration model — content pages ship 0 KB JS
- per-route bundle splitting, SRI-pinned island bundles
- per-island HMR, the effect-typed view classifier
- v0.9Design-system rewrite + foundationshipped
- CSS Anchor Positioning popovers, light-dark() theming
- typed class + classNames customization contract
- viewport primitive, typography tokens, charter conformance tests
- v0.10Docs siteshipped
- this docs site — concepts + full API reference + recipes
- Cmd+K search, interactive reactivity demo
- every page dogfoods the framework
- v0.11Static export + first public deployshipped
- app().build() — islands-aware static export (ADR 0051)
- live on Cloudflare Pages with auto-emitted _headers (strict CSP)
- hover-prefetch SPA navigation — instant, auth-safe
- framework-owned theme persistence (no flash), strict static CSP
- first public git repository with a layered commit history
- v0.12DX overhaulshipped
- scaffolder: 3 templates (minimal · content · app) + 5 composable feature packs (theme · tests · ci · design · persistence), interactive picker, --with / --without flags
- create-app architecture: base + overlay layers, unified-diff patches between layers, JSON-merged package.json across stacks
- server logs: PLACE_LOG_LEVEL · log.scope(...) · terminal error frames (source-mapped) · compact 3-section startup banner · build banner for static export
- theme DX: useTheme() headless hook · setTheme(name) no-tokens overload · <ThemeToggle/> in @place-ts/design (segmented + cycle variants) · SSR-blip eliminated by null-class on absent/system cookie
- production deploy adapters: createFetchHandler · Cloudflare Workers · Vercel Build Output · Deno Deploy
- data: trash/restore + cursor pagination · search: rank-based ordering · image optimization via sharpBackend()
- EADDRINUSE port-walk · bunx create-app . into current dir · template-version-pin CI guard across every layer
- v0.13Migrations + benchmarksnext
- migration guides from Next, Remix, TanStack Start
- published benchmark suite vs Next / Remix / TanStack — honest numbers, no marketing math
- examples gallery with live previews
- v1.0Stability + freezeplanned
- API freeze + semver commitment
- L1 thaw runtime + effect-inference (ADR 0027 — research project)
- Phase 4-6 reactivity (deep work, separate ADR each)