Skip to content

Composition without coupling

How @jayoncode/* packages work together in your app — without a shared runtime or meta-package.

Principle

Install only what you need. Wire signals in application code (or thin FI plugins). Cores stay independently useful.

Recipe index

StoryPackagesWhere
Draft on tab hideBrowser Lifecycle + Form IntelligencePatterns
Dirty audit / patchObject Diff + Form IntelligencePatterns
Idle soft-saveBrowser Lifecycle + Form IntelligencePatterns
Hide + dirty checkBrowser Lifecycle + Object Diff (+ FI)Patterns

Runnable starter: examples/composition-form-lifecycle.

Start with one package

Most apps should begin with a single library (forms, session signals, or diffs), then compose when a real cross-cutting story appears.

What we will not do

  • Ship @jayoncode/ecosystem that forces all packages
  • Invent a shared store/signals runtime for composition (see Architecture Convergence)
  • Treat playgrounds as multi-package frameworks

An ecosystem of independent, headless TypeScript libraries engineered for modern web development. Every package includes interactive playgrounds and documentation that evolves alongside the code.