← All playbooks
PLAYBOOKApplications & Infrastructure2 min read

Build a ServiceNow Replacement

For IT and platform teams who want ITSM without the ITSM invoice — or the ITSM rollout.

Who this is for: IT and platform teams staring at a ServiceNow renewal, and the engineers who'd rather own the engine than rent it.

ServiceNow is a durable workflow engine with a record store and a portal bolted on. The lifecycle is the product — incident, change, approval, SLA — not the UI. On kilter you compose the same shape from primitives you own, and the app stays thin enough to reason about.

The recipe

  1. Scaffold. kilter init itsm.
  2. Declare the substrate in kilter.yaml: postgres (one canonical work_item table), ory (identity + roles), temporal (incident, change, approval, SLA timers), typesense (search tickets + knowledge base).
  3. One universal record, one mutation door. All writes flow through a transaction that also writes audit + outbox — atomic, so the trail can't drift from the truth.
  4. Encode every lifecycle as a durable Temporal workflow. An approval can't be skipped by a well-meaning admin endpoint; the SLA timer can't be forgotten. The workflow enforces it.
  5. Run locally, then ship. kilter up for the whole stack, then kilter deploy — live in production, Org Only, your staff signing in through OIDC.
  6. Open the doors deliberately. Company-wide self-service portal, or access for external vendors and their prod data? Hit Promote to run the workflow that grants external and production data access under approval.
~/itsm — zsh
$ kilter init itsm
$ kilter up
$ kilter deploy # live in prod, Org Only

This is an agentic ITSM platform where the engine — not the app — is the product. The full architecture (universal work_item, event-driven projections, an AI-generated but allowlisted UI) is written up in the showcase.