Skip to content

About

App Compose helps you build front-end applications from isolated tasks with explicit dependencies and predictable execution order—without containers, decorators, or framework-specific APIs.

Topics

Resources

Stars

27 stars

Watchers

2 watching

Forks

Repository files navigation

App Compose

App Compose helps you build front-end applications from isolated tasks with explicit dependencies and predictable execution order—without containers, decorators, or framework-specific APIs.

npm version bundle size Ask DeepWiki llms.txt

Learn | Guides | Reference

Note

Beta: This project is currently in beta. The API may change before the stable release.

  • @app-compose/core@3.0.0-beta.8
  • @app-compose/eslint-plugin@3.0.0-beta.8
  • @app-compose/coda@3.0.0-beta.8

Features

  • Simplicity — lightweight, no containers/providers/decorators, zero dependencies. Framework-agnostic.
  • Clarity — no magic, no globals; context flows through typed wiring.
  • Reusability — same code, different context per compose.
  • Testability — missing context, duplicates, unused wires fail in CI.
  • Observability — your app as plain JSON; hooks for start, complete, fail.

Adopt it gradually

If you want to use App-Compose for a part of your existing app, you don't have to rewrite the rest. Add it to your stack, and bring in more when you're ready.

See it run

A minimal example built on the three key pieces: Task, Tag, and Wire (how they connect). Two features share data without knowing about each other.

import { compose, createTask, createWire, tag } from "@app-compose/core"

const name = tag<string>("name")
const user = createTask({
  name: "user",
  run: { fn: () => ({ name: "World" }) },
})
const greeting = createTask({
  name: "greeting",
  run: {
    context: name.value,
    fn: (name) => console.log(`Hello, ${name}!`),
  },
})

await compose()
  .step(user)
  .step(createWire({ from: user.result.name, to: name }))
  .step(greeting)
  .run() // Hello, World!

Get started

Try App Compose in the online sandbox without installing anything, or add @app-compose/core with your package manager:

  • npm: npm install --save-exact @app-compose/core
  • pnpm: pnpm add --save-exact @app-compose/core
  • Yarn: yarn add --exact @app-compose/core
  • Bun: bun add --exact @app-compose/core

Continue with the Quick Start.

AI tools

Give your coding assistant the documentation index to find the pages relevant to your task.

DeepWiki

Open deepwiki and ask anything about the codebase.

License

App Compose is available under the MIT License.

About

App Compose helps you build front-end applications from isolated tasks with explicit dependencies and predictable execution order—without containers, decorators, or framework-specific APIs.

Topics

Resources

Stars

27 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages