Lightweight
Only import what you use. Tree-shakeable packages with no monolithic SDK.
Lightweight · Type-safe · Framework agnostic · Tree-shakeable

JOC is a collection of modern, modular, headless TypeScript libraries that solve common frontend engineering problems — without locking you into a framework.
Independently installable libraries under @jayoncode/*. Start with a live package, or explore what is coming next.
@jayoncode/browser-lifecycle
Observe browser session lifecycle with a unified typed API.
Documentation@jayoncode/form-intelligent
Headless form workflow engine — validation, submission, and orchestration.
Documentation@jayoncode/object-diff
Fast deep comparison, change records, and JSON Patch generation.
Documentation| Problem | JOC solution |
|---|---|
| Browser lifecycle is inconsistent across APIs and frameworks | Browser Lifecycle |
| Form logic becomes complex as validation, drafts, and wizards grow | Form Intelligent |
| Object comparison and patching is verbose and error-prone | Object Diff |
Every JOC package follows the same architecture, API philosophy, documentation structure, and development standards — so the second package feels familiar.
Shared patterns instead of one-off utilities per app.
Install only the @jayoncode/* packages you need.
Same docs journey and API philosophy across the ecosystem.
Headless cores that adapt to your UI stack.
Packages stay independent at the TypeScript core, then plug into any application layer.
Headless, typed, tree-shakeable modules
| Package | Purpose | Status |
|---|---|---|
| Browser Lifecycle | Browser lifecycle | Released |
| Form Intelligent | Headless forms | In development |
| Object Diff | Object comparison | Released |
Pick any live package — the install path is the same across the ecosystem.
pnpm add @jayoncode/browser-lifecycle
import { createBrowserLifecycle } from "@jayoncode/browser-lifecycle";
const lifecycle = createBrowserLifecycle({ autoStart: true });pnpm add @jayoncode/form-intelligent
import { createForm } from "@jayoncode/form-intelligent";
const form = createForm({
initialValues: { email: "" },
});Explore live demos for Browser Lifecycle, Form Intelligent, Object Diff, and more — without setting up a local project.
Three live packages on npm today. More libraries are on the roadmap.
@jayoncode/browser-lifecycle
Observe browser session lifecycle with a unified typed API.
View docs@jayoncode/form-intelligent
Headless form workflow engine — validation, submission, and orchestration.
View docs@jayoncode/object-diff
Fast deep comparison, change records, and JSON Patch generation.
View docs