ligaturejs
v0.1.0-rc.2
Published
Ligature — agent-oriented server-first components for Express
Readme
Ligature
An agent-oriented, server-first component system for Express applications. Its goal is to help AI agents make correct, reviewable changes with less human steering while keeping the resulting applications efficient at runtime. That advantage is a hypothesis to validate, not a claim based on framework features alone; see AI-assisted development and performance.
CLI
node src/cli.js create app my-portal ./my-portal
node src/cli.js create component profile-card ./my-portal
node src/cli.js test
node src/cli.js manifest
node src/cli.js checkStatus
This source tree prepares release candidate 0.1.0-rc.2; publication runs
separately through the release workflow. The project is separate from the
SearchMonster portal; the portal is not modified by this project.
Design goals
- Server-rendered HTML with optional client behavior
- Explicit component contracts
- No accidental globals
- Deterministic component metadata and client assets
- Lifecycle hooks suitable for AJAX navigation
- Machine-readable discovery for agents
- Small runtime with ordinary HTML and JavaScript output
- Measurable agent task efficiency without sacrificing runtime performance
The supported target is documented in docs/SUPPORTED-TARGET.md: server-first, progressively enhanced, HTML-oriented applications. That document also explains the boundary with React and the application shapes Ligature does not target. The public API compatibility and deprecation rules are documented in docs/COMPATIBILITY.md. Semantic-versioning and release support windows are documented in docs/RELEASE.md. Feature maturity and explicit non-target statuses are documented in docs/FEATURE-STATUS.md. Supported Node.js, browser, and operating-system baselines are documented in docs/SUPPORT.md.
Quick start
For a five-minute first result, follow docs/QUICKSTART.md.
The shortest local smoke test is:
npm test
npm run test:browser
npm run test:a11y
npm run release:check
npm startCreate a distributable package:
npm packSee docs/DISTRIBUTION.md for installation and package contents.
The example server exposes a manifest at /manifest.json.
The complete example portal is documented in
docs/EXAMPLE-PORTAL.md. Application recipes for
authentication, uploads, pagination, authorization, and forms are in
docs/EXAMPLES.md.
Component shape
defineComponent({
name: 'profile-card',
props: { member: { required: true } },
events: { select: 'profile:select' },
render(props, state) { return '<article>...</article>' },
mount(element, state) {},
update(element, props, state) {},
unmount(element, state) {}
})See docs/AGENT-GUIDE.md for the agent contract.
For a complete beginner-to-production walkthrough, see
docs/HOW-TO-LIGATURE.md.
For publication status and the release checklist, see the exhaustive
docs/PUBLIC-PUBLISH-PLAN.md.
Applications should also follow the four-layer contract in docs/APP-CONTRACT.md.
Additional references:
docs/REDESIGN.mddescribes the redesigned component API and runtime.index.d.tsandschemas/provide editor/agent contract validation.docs/API.mdis the generated-framework API reference.
