Skip to main content

Your first pipeline in 3 minutes

Beginner ⏱ 3 min quickstart · cli · rule-based

You will build: a running app that receives events over a topic, filters them with a rule, and shows you the result live.

webhook → rule-based:triage → (topic out)

Prerequisites

  • Pulse installed locally — or skip installs entirely and run this in the playground.
  • A terminal. That's it — no account, no cloud.

1 · Boot a local Pulse in dev mode

pulse server start --dev

Pulse boots locally (HTTP on :9090) and the CLI logs itself in. Leave it running; open a second terminal for the next steps.

2 · Scaffold the app

pulse new hello --source webhook --stage rule-based:triage

Creates ./hello with three files: pulse.yaml (the whole app), sample.json (a test event to send), README.md.

tip

The scaffold is already valid — you can deploy it before editing anything.

3 · Deploy it

cd hello
pulse secret set PULSE_WEBHOOK_SECRET dev-secret # the scaffolded webhook source requires it
pulse deploy .

Stands up: the webhook source, the triage stage, the topic chain hello.in → hello.triage.out, and a typed HTTP API.

4 · Send an event

pulse events publish --topic hello.in --value @sample.json

5 · Watch it come out the other side

pulse events tail --topic hello.triage.out

Your event appears, having passed the triage rule. This tail stays live — every future event shows up here in real time.

What just happened

You deployed a real event pipeline, not a script: the source, the stage and the output are independent pieces chained by topics. hello.in and hello.triage.out are durable topics — anything can publish to the first and anything can subscribe to the last. Every app you build from here is this same shape, with more interesting middles.

Troubleshooting

pulse: command not found

Pulse isn't on your PATH. Re-run the installer or use the playground — the tutorial works identically there.

Deploy says the server is unreachable

The dev server from step 1 isn't running (or you closed that terminal). Restart it with pulse server start --dev and keep it open.

Next