Put the work in front of the people doing it.

The screen your team works on is described in the same file as the records, steps, and permissions behind it. Editors get one place to see the queue, open a draft, and finish a review.

The screen belongs in the same file as the work.

Describe what people see and what each button does, next to the work it controls. Swirls builds and hosts the result, so the screen and the process behind it cannot drift apart.

Every screen points at something real.

A page reads your article records, shows where a draft got stuck, and hands the approval to an editor allowed to give it. Everything it touches is described a few lines away.

Example: The editorial desk shows articles awaiting review, the flags the AI screen raised, and the next approval on one page. The same file defines what happens when an editor acts.

Swirls owns the production work behind it.

Hosting the supported App, wiring it to your records and processes, holding the supported access limits, and running the work behind each screen.

Show what is happening

Put the records and their status in one view.

Let people act

Wire a button to the process it should start.

Send it to the right person

Put approvals and exceptions in front of whoever decides.

editorial_desk
editorial-desk.swirls
app editorial_desk {
  label: "Editorial Desk"
  icon: "newspaper"

  nav {
    section "Desk" {
      page: queue
      page: approvals { label: "Awaiting review" }
    }
    section "Team" {
      page: room { label: "Editorial room" }
    }
  }

  page queue {
    label: "Queue"
    viewport: full
    render: @openui {
      root = Gutter([
        TableEditor("articles", "articles", {
          title: "Review queue",
          fill: true,
          columns: ["title", "status", "summary", "flags"]
        })
      ], "lg")
    }
  }

  page approvals {
    reviews: [publish_article]
  }

  page room {
    channel: editorial_room
  }
}
Review queue

Shipping the review queue

in_review · 1 flags

Open

Voice guidelines v3

published

Open

Partner announcement draft

needs_revision · 2 flags

Open

Covers

  1. Dashboards and record views
  2. Forms and actions
  3. Human review
  4. Role-aware interfaces
  5. Live workflow state
Read the technical docs

You own

What people need to see and do, the business rules behind each action, and the result the app must produce.

Describe the screen and the work behind it together.

Bring the records people need, the actions they take, and the decisions only a person should make.