The fastest way
for developers to
build internal tools

Simplify development with a lightweight SDK that generates full web apps from your backend code.

Compose app example

Just write your business logic. Compose handles the rest.

Call Compose's UI methods alongside your business logic, and Compose will automatically generate UIs in your browser and wire them up to your backend logic.

import { Compose } from "@composehq/sdk";
import { db } from "../db";

const usersDashboard = new Compose.App({
  name: "Users Dashboard",
  handler: async ({ page, ui }) => {
    const users = await db.users.selectAll();
    page.add(() => ui.table("users", users))
  }
})

Interactive apps in minutes, shared securely with your whole team.

Call simple input methods that return validated outputs. Compose automatically handles the network requests, UI rendering, data validation, and more.

import { Compose } from "@composehq/sdk";
import { db } from "../db";

const usersDashboard = new Compose.App({
  name: "Users Dashboard",
  handler: async ({ page, ui }) => {
    page.modal(() => ui.form("new-user-form",
      [
        ui.textInput("name"),
        ui.emailInput("email"),
      ], {
        onSubmit: (form) => {
          db.users.insert(form.name, form.email);
          page.toast("User created!", { appearance: "success" });
        },
        clearOnSubmit: true,
      }
    ))
  }
})

Leverage your existing code. Compose apps are just async functions.

Use AI copilots, shared functions, call other APIs, use loops and conditionals, and commit everything to your own version control.

import { Compose } from "@composehq/sdk";
import { s3 } from "@aws-sdk"
import OpenAI from "openai";
import { db, isValidJSON } from "../utils";

const dataLabelingApp = new Compose.App({
  name: "Data Labeling Tool",
  handler: async ({ page, ui }) => {
    const docs = await db.documents.selectAll();

    const needsReview = docs.filter((d) => !d.reviewedAt);
    const current = needsReview[0];

    const file = await s3.getObject("my-bucket", current.fileId);
    annotations = await OpenAI.chat.completions.create({ ... });

    page.add(() => ui.row([
      ui.pdf(file, { annotations }),
      ui.stack([
        ui.textArea("annotations-editor", {
          initialValue: JSON.stringify(annotations, null, 2),
          validate: (text) => {
            if (!isValidJSON(text)) {
              return "Please enter valid JSON";
            }
          },
          onEnter: (text) => {
            annotations = JSON.parse(text);
            page.update();
          }
        }),
        ui.button("save-to-database", {
          onClick: async () => {
            await db.documents.update(current.id, { 
              annotations, 
              reviewedAt: new Date() 
            });

            page.toast("Annotations saved!", { appearance: "success" });
          }
        }
      ])
    ]))
  }
})

Produce enterprise grade apps out-of-the-box.

Large companies dedicate entire teams to building these features. Compose gives them to you out-of-the-box.

Performant at scale

Sub 90ms latency. Tables with millions of rows. Large file uploads. And more...

Multipage apps

Scale easily from simple tools to complex multi-page applications.

Permissions and Authentication

Enforce roles to easily restrict apps to certain team members.

Beautiful by default

Mix-and-match over 40 modern UI components that are designed to look great together.

Audit logs and analytics

Monitor everything with built-in audit logs and in-depth usage analytics.

External sharing

Securely share apps by email with external users.

Pricing

Hobby

For indie hackers, solo developers, and founders just starting out.

Free forever

Up to 1 user
Unlimited apps
Unlimited environments
Unlimited app executions

Pro

For teams of all sizes. Every feature, unlimited users, dedicated support.

$12 per user/month

Unlimited users
Dedicated engineering support
1 year audit logs and analytics history
Role-based permissions
Secure external sharing*
Unlimited apps
Unlimited environments
Unlimited app executions
*External users are billed by app at $7 per user/month.

What will you build?

2025 Compose. All rights reserved.