Analytics, logs and traces for your app, on one screen.

Send events any way you like and see them on your dashboard within seconds. We make sure none get lost on the way.

  • 20K events a month on Free
  • No card for Free
  • No cookie banner needed
  • Setup takes about two minutes
simpledatalogs.com Live
Dashboard
Today 7d 30d

Events today

48,211

+12%

Sessions

9,340

+8%

Errors

12

−40%

p95 latency

184 ms

−9%

Events per hour

events

00:0006:0012:0018:00now

Live events

  • signup_completed web now
  • checkout_paid ios 2s
  • POST /api/orders server 5s
  • photo_exported macos 9s
  • TimeoutError android 14s
  • page_view /pricing web 21s

What you get

Everything one small team needs to run an app.

Each part works on its own. They share the same events, so a slow route, its logs and the session that hit it sit one click apart.

Logs Search, levels, patterns. Errors Grouped, counted, trended. Traces A waterfall for every request. Web analytics Pageviews, sources, countries. Funnels and journeys See where people drop off. Sessions Every step one visitor took. MCP for AI Ask your data in chat. AI spend Cost per model, per day. Alerts Thresholds to Slack or email. Exports Nightly CSV to your bucket. GA4 import Keep your old history. Webhooks and counters Count Stripe, Gumroad and GitHub.

Logs, traces, errors

See why a request was slow.

Requests, jobs and queries are timed by the SDK. Errors with the same cause are grouped, with a count and a trend.

  • Logs with levels, search and patterns
  • Errors grouped with counts
  • A waterfall for every request
Read how spans are recorded

Logs

level ≥ debug · last 5 min Find patterns · 3 groups
  • 14:02:11 info GET /dashboard 200 in 38 ms
  • 14:02:12 debug cache hit user:4f2a settings
  • 14:02:12 info job SendReceipt finished in 112 ms
  • 14:02:13 warning slow query orders.by_user 412 ms
  • 14:02:14 error TimeoutError: payments api after 10 s
  • 14:02:14 info POST /api/orders 201 in 96 ms
  • 14:02:15 error TimeoutError: payments api after 10 s
  • 14:02:16 notice deploy 2.4.1 finished on 3 servers

Traces

POST /checkout · 412 ms

POST /checkout 412 ms
auth.session 16 ms
select orders 74 ms
payments.charge 214 ms
insert payments 33 ms
SendReceipt 41 ms
mail.receipt 25 ms

Issues

last 24 h

  • TimeoutError

    PaymentsClient.charge

    128
  • TypeError

    SignupForm.submit

    41
  • NotFound

    GET /p/:slug

    17

Web analytics

Visitors, funnels, sessions. No cookies.

A visitor is a daily-salted hash, so the same person counts once a day. Apps that pass a device_id are counted exactly across days.

  • Pageviews, referrers and countries
  • Funnels from any events
  • A timeline for each visit
How visitors are counted

Sessions

sessions · visitor 4f2a · DE 4 min
  1. /

    from news.ycombinator.com

    14:22:05
  2. /pricing

    1m 12s on page

    14:22:37
  3. start_free_clicked

    plan: pro

    14:23:49
  4. signup_completed

    method: passkey

    14:24:30
  5. checkout_paid

    $50.00

    14:26:02
5 pages 2 events via google

Funnels

last 7 days

  1. Visited 8,412 · 100%
  2. −38%

    Viewed pricing 5,215 · 62%
  3. −55%

    Signed up 2,356 · 28%
  4. −68%

    Paid 757 · 9%

Journeys

6,720 entries

/ /blog pricing docs signup

6,720 entries 1,800 reached signup · 26.8%

MCP server

Your AI assistant queries the same data.

Connect Claude, ChatGPT, Codex, Cursor or VS Code over MCP, with the access you grant when you connect.

  • Tools like event_series and search_logs
  • Dashboards built from a sentence
  • AI spend per model and feature
Claude Code Claude Desktop ChatGPT Codex Cursor VS Code
Connect an assistant
simpledatalogs MCP · connected

> Why did signups drop on Tuesday?

⏺ event_series(event: "signup_completed", range: "7d")

⏺ search_logs(level: "error", range: "Tuesday")

Signups fell 31% on Tuesday. Most of the drop is Android: release 2.4.1 logged 214 TypeError lines in SignupForm.submit.
Mon 412
Tue 284
Wed 398

> Make that a dashboard I can share.

⏺ Built "Signups board" from 3 queries. Done

Signups this week

query ▸ event_series signup_completed 7d

Errors by release

query ▸ search_logs level=error by release

AI spend by model

query ▸ spend_summary 30d by model

Delivery

202 only after the queue has it.

Past your monthly quota, events are still stored and appear the moment you upgrade.

  • Queued before we confirm
  • Kept past your quota
  • Refused only past twice the quota
How the write path works
Your app Ingest Queue Stored 202
Monthly quota 104% · 1,040,000 of 1,000,000

The extra 40,000 are kept and shown after an upgrade.

SDKs

Two lines to the first event.

Eight SDKs, a WordPress plugin, a Shopify app and one HTTP endpoint.

  • Requests, jobs and errors captured where the SDK can
  • WordPress plugin and Shopify app
  • Plain HTTP for everything else
Pick your SDK
const sdl = init({ key: "sdl_pub_…", autocapture: true })
sdl.track("signup_completed", { plan: "pro" })

Eight SDKs, open source.

Source on GitHub
WordPress and Shopify
Webhooks
GA4 import
Alerts
Exports
Public counters
simpledatalogs.com/billing

Pro · this month

bill $80 · capped
$0 $50 $80 0 5M quota 10M 15M events +$6 per extra million cap $80
plan $50 extra 5M × $6 total $80

Pricing

Four prices. Extras only if you turn them on.

Annual billing covers 12 months for the price of 10.

  • Free, $10, $50 and $150 a month
  • Extra events on Pro and Scale, opt-in
  • A monthly cap you set yourself
Compare the plans

Privacy

Count visitors without a cookie banner.

What we store, and what we do not.

  • No cookies

    Visitors are a hash salted with the day. Tomorrow it is a different hash.

  • No IP addresses stored

    Used in memory for the country lookup, then dropped.

  • Personal data masked*

    Emails, card numbers and tokens are replaced before storage.

* On by default. The project owner can turn masking off for their own data; see the privacy policy .

Getting started

Paste a key, send one event, see it land.

With an SDK, the first chart usually takes about two minutes after you sign up.

  1. 1 Create a project Takes the name and a time zone.
  2. 2 Paste the key into your SDK Or the Authorization header of a curl.
  3. 3 Send an event It is on the Overview within a few seconds.

20K events a month free, no card 30-day Starter trial 7-day grace if a payment fails Cancel from Billing, no email needed

$ curl https://edge.simpledatalogs.com/v1/ingest -d '{"event": "signup_completed"}'

202 Accepted · queued in 38 ms

simpledatalogs.com

Events today

1

Live events

signup_completed web · now

No events yet