This quickstart is optimized for first success in the web UI. For service-to-service flows, use Integration Quickstart.
!!! info "Prerequisites" Complete Installation first.
By the end of this page, you should have:
- one saved rule
- one allowed outcome used by that rule
- one successful rule test in UI
- chart activity in Dashboard or Analytics, and configure spike notifications in Alerts
=== "Docker (demo or production)"
If you started with `docker-compose.demo.yml` or `docker-compose.prod.yml`, all services are already running — skip to [Step 2](#step-2-log-in).
Checkpoint:
- `http://localhost:8888/ping` responds
- `http://localhost:4200` loads login page
- `http://localhost:8025` opens Mailpit inbox (for invite/reset email validation)
=== "Development (local processes)"
Start infrastructure:
```bash
docker compose up -d
```
Start API:
--8<-- "snippets/start-api.md"
Start frontend:
```bash
cd ezrules/frontend
npm install
npm start
```
Checkpoint:
- `http://localhost:8888/ping` responds
- `http://localhost:4200` loads login page
- `http://localhost:8025` opens Mailpit inbox
- Open http://localhost:4200
- Sign in with your created user
- Confirm sidebar shows: Dashboard, Rules, Shadow Rules, Rule Rollouts, Labels, Outcomes, Analytics, Rule Quality, Alerts
- Open Rules
- Click New Rule
- Create:
if $amount > 10000:
return !HOLD- Leave Rule Lane set to Main rules
- Save
Checkpoint:
- Rule appears in rules list
- Rule detail page opens with Test Rule panel
- Open Outcomes
- Add
HOLDif it does not exist yet - Save any changes
- Return to the rule detail page
- In Test Rule, paste:
{
"transaction_id": "txn_001",
"effective_at": "2026-04-23T12:00:00Z",
"event_data": {
"amount": 15000,
"user_id": "user_42"
}
}- Run test
Checkpoint:
- Test indicates outcome
HOLD
- Open Labels
- Create the labels you want to use operationally (for example
FRAUD,NORMAL,CHARGEBACK) - Mark events or upload a small CSV from the Labels page
- Open Analytics
- Set the time range to Last 30 Days and check total labeled count and trend charts
- Open Settings → General, add curated outcome→label pairs to track
- Open Rule Quality and confirm pair metrics load for curated pairs
You can also upload a small transaction_id,label_name CSV in Labels and recheck the charts.


