Skip to main content

Resources

3 min read

Roadmap

A living document organized by theme, not timeline. Priorities may shift as we learn from community feedback.


Shipped

The core engine plus a full ecosystem – reactive state, AI orchestration, framework adapters, plugins, and developer tools.

Core Engine

  • Facts (proxy-based reactive state with auto-tracking)
  • Derivations (auto-tracked computed values with composition)
  • Constraints (sync and async, with priority and explicit deps)
  • Resolvers (async resolution with retry, batching, and cancel)
  • Effects (fire-and-forget side effects with auto-tracked deps)
  • Events (dispatch and subscribe)
  • Module composition (multi-module systems with :: namespacing)
  • Error boundaries (configurable recovery strategies)
  • Retry policies (exponential backoff, max attempts, timeouts)
  • Schema validation (dev-mode runtime type checking, tree-shaken in prod)

Framework Adapters

  • React (useDirective, useDirectiveFacts, useDirectiveDerive)
  • Vue (composables with reactive integration)
  • Svelte (stores and runes support)
  • Solid (signals integration)
  • Lit (reactive controllers)
  • Preact (lightweight adapter)
  • Angular (service-based adapter with signals)

AI & Agents

  • AI package (@directive-run/ai) with constraint-driven orchestration
  • Multi-agent system (planning, delegation, tool use, memory)
  • RAG pipelines (retrieval-augmented generation with fact grounding)
  • Guardrails (input/output validation, content filtering, budget limits)
  • Streaming support (token-level streaming with backpressure)
  • Budget and cost tracking (per-request and aggregate limits)
  • OpenAI adapter
  • Anthropic adapter
  • Ollama adapter (local models)

Plugins & Observability

  • Plugin architecture (lifecycle hooks, composable)
  • Logging plugin (structured, filterable)
  • DevTools plugin (state inspection, event log)
  • Persistence plugin (localStorage, sessionStorage, custom backends)
  • MCP plugin (Model Context Protocol with validation)
  • Performance profiler (constraint evaluation timing, resolver metrics)
  • Time-travel debugging (snapshots, replay, export/import)
  • Changeset-based versioning

Security & Safety

  • Prototype pollution guards (all merged objects use Object.create(null))
  • Re-entrance guards (flush coalescing, max iteration limits)
  • Blocked property checks on dispatch and proxy access
  • Error isolation (throwing callbacks cannot bypass recovery)
  • Resolver cancel/finally race condition protection
  • Namespace collision detection (fact/derivation overlap warnings)

Developer Experience

  • Testing utilities (mock resolvers, fake timers, assertion helpers)
  • Interactive examples (Sudoku, Checkers, and more)
  • Documentation site with guides and API reference
  • Migration codemods (Redux, Zustand, XState)
  • TypeScript-first API with full type inference

Building

What we're actively working on right now.

  • Browser DevTools extension with time-travel UI
  • "Why didn't this fire?" debugger for inactive constraints
  • Online interactive playground
  • More codemods (Recoil, Jotai)

Planned

Scoped and ready to build.

  • Actor model support (createActor())
  • TypeScript Language Service plugin
  • Stale-while-revalidate resolver strategy
  • Schema-driven form generation
  • SSR hydration patterns cookbook
  • Video tutorials

Exploring

Ideas we're excited about. No commitments yet, but these are directions we believe in.

  • Visual Constraint Editor
  • AI-powered constraint suggestions
  • Collaborative debugging
  • Codegen CLI
  • Community examples gallery

Not planned

Some things are intentionally out of scope. Directive is a runtime for constraint-driven state – not a general-purpose computation engine.

  • CRDT / distributed state – Directive manages local application state. Distributed sync is a separate problem best solved by purpose-built tools like Yjs or Automerge.
  • Linear / constraint solvers – Our constraints are boolean predicates, not mathematical optimization problems. We won't build a SAT solver.

Have an idea?

We'd love to hear what you'd build with Directive. Share feature requests, use cases, or feedback in GitHub Discussions.

Previous
Brand Guide

We care about your data. We'll never share your email.

Powered by Directive. This signup uses a Directive module with facts, derivations, constraints, and resolvers – zero useState, zero useEffect. Read how it works

Directive - Constraint-Driven State Management for TypeScript