Ship visibility

Catch breaks.
Track traffic.

Analytics + error tracking in one dashboard. One script tag — pageviews, custom events, uncaught exceptions. No observability bloatware.

Live preview demo stream

Pageviews

1,284

Errors

3

Event stream

PV /about
2s ago
PV /docs
8s ago
ERR TypeError: x is null
14s ago

Web analytics

Pageviews, top paths, 7-day trends. Lightweight, no fingerprint circus.

See which pages pull traffic, where visitors come from, and how volume shifts day to day — without loading a 200 KB analytics SDK or building a consent banner for twelve ad networks.

Error tracking

window.onerror + unhandledrejection. Grouped issues with stack samples.

Uncaught exceptions and failed promises land in one inbox. Issues group by message + stack frame so you fix the root cause, not the same TypeError forty times.

One snippet

Copy a script tag or call PostCow.track(). Works on any static site.

Drop a single deferred script before </body>. Custom events via PostCow.track(). SPAs can call pageview() on route change. No framework lock-in.

How it works

Three steps to production visibility

No SDK maze, no twelve-step onboarding wizard. Add a domain, paste a tag, refresh your site — data appears in the dashboard before your coffee cools.

01

Create a domain

Sign in, add your hostname, grab the API key. Takes about thirty seconds.

02

Paste the snippet

One script tag on every page. sendBeacon + fetch keepalive — survives tab closes.

03

Watch the dashboard

Pageviews roll in immediately. Errors group automatically. No cron jobs to configure.

Built loud on purpose.

Violet shadows. Fuchsia accents. A dashboard you open because it helps — not because your boss made you.

We picked neo-brutalism because observability tools all look the same: gray sidebar, tiny charts, cluttered upsells. PostCow is the opposite — readable metrics, thick borders, personality.

See features

Why PostCow

  • 01 Self-hostable on Supabase
  • 02 CORS ingest API
  • 03 Error grouping
  • 04 sendBeacon + fetch fallback
  • 05 Custom event API
  • 06 Domain-scoped keys
Use cases

Who it's for

Side projects

Ship a landing page and know if anyone actually visits — without a heavy analytics stack.

Small teams

One dashboard for traffic and crashes. Devs see stack traces; PMs see top paths.

Self-hosters

Supabase-backed, self-hostable, runs on Vercel or your VPS. Your data stays yours.

Static & SPAs

Works on plain HTML, SvelteKit, Next.js, Astro — anything that can load a script tag.

Compare

Less bloat, more signal

Bloated observability stacks are built for huge compliance teams. PostCow is built for developers who want to know if the deploy broke — tonight, not next quarter.

PostCowTypical SaaS stack
Setup time< 2 minHours of config
Script size~2 KB50–200 KB+
Error trackingBuilt inSeparate product
Self-hostFirst-classOften locked
Cookie bannerUsually unnecessaryOften required

"Finally something I can self-host without a Kubernetes cluster. Errors and pageviews in one place — exactly what I needed for my indie SaaS."

— indie dev, self-hosted on a $5 VPS

"Pasted the snippet on a static marketing site. First pageview showed up in ten seconds. No GA4 property, no tag manager, no prayer."

— frontend dev, static landing page

FAQ

Common questions

Do I need cookies or a consent banner?

PostCow collects pathname, referrer, URL, and error stacks — no persistent user IDs or cross-site tracking. Check your jurisdiction, but most static sites skip the cookie circus entirely.

Does it work with single-page apps?

Yes. Call PostCow.pageview() on client-side route changes. The snippet fires once on load; SPAs hook their router to fire again.

What about ad blockers?

Some block third-party analytics domains. Self-host on your own subdomain (e.g. t.yoursite.com) and first-party requests usually get through.

Is PostCow free?

Yes. PostCow is open source — self-host for free with no usage limits.

Get started

Ship the snippet.

Open source. Self-host free. First pageview in under a minute.