Two ways in. Both take minutes.
▶ The playground
Run the whole quickstart in your browser — nothing to download, nothing to sign up for. The best first taste if you're skeptical.
self-hosted⬇ Local install
Your machine, your data — the way you'll actually run it. Pulse is free and self-hosted.
read first📖 Understand the model
Prefer to know what you're typing? Read the pulse.yaml anatomy first.
Install locally
Grab Pulse from the download page — a single self-hosted binary (Linux, macOS, Windows) or the desktop app. Everything below is identical whichever route you chose.
The quickstart, step by step
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.
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), README.md. The scaffold is already valid — you can deploy before editing anything.
3 · Deploy it
cd hello
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. The tail stays live — every future event shows up 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, anything can subscribe to the last. Every app you build from here is this same shape, with more interesting middles.
Next
- Anatomy of pulse.yaml — the three blocks, line by line
- Sources & sinks tour — feed the same app three different ways
- The First App path — the full guided route