Everything Erdi puts on the timeline

When a number moves, you see what you shipped, what broke, what you spent and what your users wrote — in the same fortnight, on the same chart.

3
3

Aug 25

  • deployv1.4.0 — paywall rewrite09:12
  • ticket3 reports: sign-in fails on iOS 1814:40
  • externalPrice raised to EUR 916:05

Know where your product stands

A percentage move means little without your own baseline. Typical range shows how much this metric usually swings week to week.

Drag the slider to change this week's number.

−9% · inside your typical range (±14%)

Based on how much this metric varied over the last 90 days. Your own history, not someone else's.

See what happened around a change

Markers

A day where you shipped three things reads as one marker with a three on it. You open it and see all three, in order.

3

Releases

You find the release on the day it went live, not buried in a trail of commits. A published GitHub release is one marker; tag pushes that belong to it point at the same place.

deploy · v1.4.0

Support spikes

When users flood the inbox, you see it next to the deploys from that day. Point your existing support address at the project — critical tickets become markers, the rest only count.

ticket

The good weeks too

A jump is as hard to explain as a drop, and worth more. When paying customers spike, the same fortnight is right there — the release, the post, the price you changed. You find out what to do again.

The board

The price change, the copy fix, the thing you did in a dashboard — they do not touch GitHub, and in three months you are unlikely to remember when they happened. Tick them off here and they are on the chart.

Quick Add

Press E from anywhere in the app and the price change, the tweet, or the thing that did not come through a webhook is on the timeline the same day. You capture it while you still remember why it mattered.

Sentry

A new error sits next to the deploy from that day, so you see whether it appeared after the release. Fatal and error issues appear once; repeats of the same issue do not pile up.

What a customer costs you

Revenue, ad spend and operating cost meet on one timeline. The funnel shows where a change started — stage by stage, not one blended conversion rate.

Drag the Activation slider to see downstream stages move.

Attention

12,400

7% · was 7%

Arrival

840

11% · was 11%

Signup

96

74% · was 74%

Activation

71

20% · was 20%

Paying

14

Stage ratios compare daily totals, not the same people over time. Good for spotting change, not for exact conversion rates.

Read the numbers without leaving

Second series

You can watch revenue next to users on the same chart. The second metric plots dashed, so both stay readable. Turn it on from the project when two numbers belong together.

Compare projects

You see which product moved first when two share a role. The all-projects view indexes them to 100; absolute scale stays on each project's own chart.

Delayed sources

A Tuesday that looks like zero is less alarming when you know the report is still pending. App Store Connect and Play Console report one to two days late, and those days are drawn as pending, not as a drop.

Timeline

You read the number and the fortnight around it without leaving the chart. The metric curve sits on the same line as the days.

Breakdown

You open the split when you need the sources, countries, or a group you named — still under the primary line, not as a second dashboard.

Export

You take the visible chart as CSV from the project, or a full copy of the account from Settings → Your data.

Get your history in without doing work

Cursor, Claude Code, Codex

Cursor, Claude Code, Codex can post deploy markers with a title better than a commit hash. On Vercel Hobby, this is the main route — webhooks need Pro.

The agent posts when it runs the deploy. If you push yourself, run the script by hand — or push a tag, which the GitHub hook picks up.

Generic endpoint

Operating cost from your ledger, sign-up counts from a script, or anything else you measure daily — one POST per day per metric through the same HTTP endpoint as events. The request shape is documented at /docs/api.

Email forwarding

Critical mail becomes a marker on the day it arrived; the rest only counts. Each project has a forwarding address every mail provider and support tool can point at.

Webhooks

Deploys, errors and purchases land on the timeline as they happen — no polling. Receivers cover GitHub, Netlify, Sentry, RevenueCat and Paddle; Vercel webhooks need the Pro plan, so on Hobby you post from the agent or your build instead.

Pull connectors

Installs, spend and traffic show up on a schedule without you copying numbers by hand. Pull connectors cover Stripe, App Store Connect, Apple Ads, Play Console, Plausible, Umami and Your own endpoint. Erdi fetches; you connect once.

Get told instead of checking

Drag the sliders to see when a mail would have been sent.

This setting would have written to you 3 times in 30 days.

Days a source hasn't reported yet are skipped — a pending App Store day is not a drop.

Five conditions

You set the thresholds that matter — below, above, drops by %, rises by %, and no data — and Erdi checks them once a day on the same cron as the daily mail. New paying users up 40% — with the fortnight before it in the mail.

Context in the alert

You read the mail on your phone and already know whether it was something you did. The fortnight before the change is in the mail — including the case where nothing shipped.

Hysteresis

You decide how many days in a row before Erdi writes, so a one-day dip stays quiet. It stays quiet until the condition clears.

Lag days

A pending App Store day should not trigger a "no data" alert. Alerts skip the days a source has not reported yet.

Daily and weekly recap

You get what shipped and how the numbers moved when the day is over, and a weekly mail that puts the week's events next to the change.

It stays yours

No SDK

Erdi reads what your own tools already know. No code runs inside your apps, and your end customers are not observed — no session recording, no usage profiles. Security and hosting.

EU hosting

Your data stays in the EU. The database and authentication run in Frankfurt, on Supabase.

Encrypted keys

Webhook secrets and connector keys stay encrypted at rest with AES-256-GCM — not in config and not in the browser.

DPA

A data processing agreement under Art. 28 GDPR is published at /dpa.

No cookie banner

The public marketing site sets no cookies. After sign-in, only what is needed for your session — session cookies from our auth provider and a device cookie for security notices. No analytics cookies, no optional tracking.

No AI training

Erdi does not use your events, metrics or mail to train models. Nothing you send is used to improve a third-party system.

Export

You leave with a copy — CSV from the project, a full archive from Settings → Your data.

Public ship log

You publish a public page with the metric curve and event markers when you want one. Off by default — you choose every metric and every event. The URL is random, not guessable from the project name. Index is the default so absolute numbers stay private. When the reader is the client paying for the build — not the developer — that case is described on for clients.

Share the story, not just the number

From the project you download a recap image for a week or a release — a picture of what shipped, ready for a post.

Built for watching products, not managing teams. No assignments, no time tracking.

Erdi records what happened around your products.

Questions before signing up are on the FAQ. How to send data is in the docs.

Connect a project and put your events next to the numbers.

Get started

14-day trial. No card required.