Compare

Plausible-class analytics on a small VPS

Short orientation for self-hosters evaluating privacy analytics tools. The goal is to decide whether Stomatopod fits your box, not to rank products.

Appliance ops, familiar product class

Stomatopod sits in the Plausible/Umami-class category with an appliance ops shape: one process, mount a volume, co-host on a small box. One org, many sites, you own the box. MIT licensed.

Cookieless browser tracker and server-side ingest. Dashboard, REST API, OpenAPI, and the stoma CLI in a single binary. Storage is embedded (SQLite metadata, WAL, Parquet partitions) so you do not stand up Postgres or Redis for analytics.

Sample idle RSS is about 40 MiB on the checked-in run. See BENCHMARKS.md for the host, methodology, and load ladder. Re-run mise run bench:memory on your machine.

Side by side

Numbers and feature sets move. Verify current docs for peers. Stomatopod figures come from BENCHMARKS.md and the project README.

Comparison of Stomatopod, Plausible CE, Umami, and GoatCounter
CriterionStomatopodPlausible CEUmamiGoatCounter
Cookieless trackingYesYesYesYes
External DB requiredNo (embedded)Yes (Postgres/ClickHouse)Yes (SQL)SQLite/Postgres
Process modelSingle binaryApp + DBApp + DBSingle binary
Footprint class~40 MiB idle (sample)Heavier stackApp + DBVery light
Multi-siteYes (one owner)YesYesYes
LicenseMITAGPLMITEUPL / fair use
API + CLIREST, OpenAPI, stomaAPIAPIAPI

A good fit when

  • You want cookieless analytics you run yourself, on a small VPS or the same machine as the product.
  • You would rather not operate Postgres, ClickHouse, or Redis just to count pageviews.
  • One organization and one admin is enough, with many sites under that owner.
  • You want a dashboard plus a JSON API, OpenAPI, and a CLI for humans and agents.

Another option may fit better when

  • You already run Plausible CE or Umami and are happy with an app-plus-database stack.
  • You want the lightest possible process and a smaller feature surface (GoatCounter is in that class).
  • You need a multi-tenant or hosted SaaS rather than a single-owner appliance.
  • A specific license (AGPL, EUPL) or an existing ecosystem matters more than the ops shape.

First boot

Published image: ghcr.io/kkir/stomatopod:latest. Mount a volume at /app/data (or set STOMATOPOD_STORAGE__DATA_DIR). Then:

export STOMATOPOD_AUTH__SECRET_KEY="$(openssl rand -hex 32)"
export STOMATOPOD_ADMIN_PASSWORD="$(openssl rand -base64 24)"
export STOMATOPOD_ADMIN_EMAIL=you@example.com

docker compose up -d

Open http://localhost:8080, sign in with the admin password you set, create a site, and paste the tracker snippet. Platform notes (volumes, health probes, Fly, Railway, Kubernetes) are in DEPLOY.md.