Journeys, not HTTP probes
Open, sign in, search, buy: your journeys are Maestro flows executed on real devices, not requests against an API. It is the only way to know a button still answers.
A server answering 200 does not prove the "Pay" button still works. Sentinelle replays your journeys on real Android devices, on a schedule, and alerts you with the screenshot of the step that failed.
No credit card to start. Secure payment through Stripe when you change plan.
The incident opens at 09:12, the alert goes out at 09:14 with the screenshot of the failing step, and recovery lands at 09:31.
A sample status page. The real 24-hour run on a demo app is still to be validated.
One isolated failure is not an outage: it is immediately re-checked on another device. The alert only fires when both fail, and it arrives with the evidence of the failing step — not a notification you have to go and explain.
“Pay” no longer answers on the Redmi 12. The failing step is captured; the YAML and the logcat are kept.
The same journey runs again on a Galaxy A14. No false alarm: one isolated failure wakes nobody.
The second failure confirms it. The alert carries the screenshot of the failing step, `steps.json`, `logcat.txt` and `maestro.log`, over signed URLs.
The journey is green again — your customers saw nothing.
The “recovered” alert fires on the first successful run. The incident keeps its evidence, even closed.
Nineteen minutes between the first alert and recovery, on a sample run.
Open, sign in, search, buy: your journeys are Maestro flows executed on real devices, not requests against an API. It is the only way to know a button still answers.
An isolated failure is immediately re-checked on another device. The alert only fires when both fail, and a "recovered" alert fires on the first successful run. A flaky journey never wakes you up twice.
If the device is busy the run is skipped: we do not catch up on the night by trampling the queue. The rule comes from the scheduling kit, and skipped runs are excluded from the availability figure.
24 h, 7 d and 30 d computed from the real runs, with the duration of every step. A journey that succeeds but is slower than its threshold raises a `warning`: it shows on the status page, it does not wake anyone.
Screenshot of the failing step, `steps.json`, `logcat.txt` and `maestro.log`, served over signed URLs. Every incident keeps its evidence, including after it is resolved.
Optional: standalone HTML, no JavaScript and no CDN, protected by a 32-byte secret link and carrying no artifact URL. It opens offline.
Availability is computed from the real runs, over 24 h, 7 d and 30 d. A journey that succeeds but is slower than its threshold raises a warning: it shows here, it wakes nobody.
With a 90-second journey: Pro = 2 devices, Business = 14.
A skipped run — device busy, the “skipped, not stacked” rule — is counted separately and excluded from the figure: that is our hardware failing, not your app.
Optional: standalone HTML, no JavaScript and no CDN, behind a 32-byte secret link, carrying no artifact URL. It opens offline.
| Sign-in | 99.9% | ok |
| Search | 99.8% | ok |
| Cart → payment | 98.1% | warning |
Incident opened on 04/10 at 09:12 — tracked, resolved at 09:31. 1 duration warning over 24 h.
Not today: on the platform side a `flow` job accepts `record_video` but records nothing — only a `capture` job records the screen. The evidence delivered is the per-step screenshot, `steps.json`, `logcat.txt` and `maestro.log`. Video depends on a platform capability that is still missing.
No: `install` only installs an APK. An app without an `apk_url` must already be present on the device, and `keep_packages` protects it from the reset.
No, the option is not sold: no device exposes the `sim` capability to the platform. Serving Wi-Fi while advertising 4G would be a lie, and a customer would notice on the first run.
Capacity is computed, not promised. With a 90-second journey every 5 minutes, the Pro plan holds on 2 devices and the Business plan on 14 — no more. Frequency is the hard constraint, and `sentinelle capacity` gives the number before you sign up.
No. Exceeding `max_step_ms` raises a `warning`, visible on the status page and in the history. A `warning` is not an incident.
A product that hides its limits wastes everybody's time. Here are ours, today.
Create an account, take a key, run your first test. It is free to start.