AGPL-3.0 · self-hosted · PHP 8.0+

Web analytics for sites that only have PHP and MySQL.

PlotBird is cookie-free, self-hosted analytics written in plain PHP. Upload the folder, finish the installer in your browser, paste one script tag. No Docker, no Node on the server, no SSH, no Composer.

Tracker 1.6 KB · dashboard CSS 43 KB, pre-compiled · MySQL 5.7+ or MariaDB 10.2+

plotbird — dashboard
PlotBird dashboard: traffic chart, top pages, countries, devices and goal conversions

Why this project exists

Most self-hosted analytics assume a VPS: Plausible needs Elixir and ClickHouse, Umami needs Node, GoatCounter ships a binary. PlotBird is for the millions of sites that live on €3 shared hosting, where the only things you have are PHP, MySQL, FTP and a control panel.

Installs itself in a browser

A seven-step wizard checks the environment, creates the tables, writes the configuration, creates the administrator and adds your first website. No terminal, no console command, no SSH anywhere.

No cookies at all

A visitor is a salted hash of address, user agent and date. Nothing is stored in the browser, nothing follows anybody between sites, and storing a raw address is an explicit opt-in.

Featherweight by design

1.6 KB of JavaScript, pre-compiled CSS and every library vendored locally, so the dashboard also works on a server without internet access. Schema changes arrive as SQL you apply from the settings page.

1.6 KBtracker
43 KBdashboard CSS
710 834IP ranges inside
256end-to-end checks
6languages

Running in three steps

No build step, no dependencies to install, no package manager to trust.

  1. Upload the archive Copy the release over FTP and open your domain in a browser.
  2. Finish the installer Requirements, database, schema, administrator, first website. It imports the bundled IP database on the way and locks itself afterwards.
  3. Paste the tracker One tag in the head of your pages, already filled with your website id. Delete the install/ folder and you are done.
<script async defer
        src="https://your-domain.example/assets/tracker.js"
        data-website-id="00000000-0000-0000-0000-000000000000"></script>

The installer prints this snippet with your own id already in it.

On WordPress, without the tag

The plugin adds the tracker to public pages only, checks that the connection works, and shows the statistics inside the admin.

PlotBird — statistics in the WordPress admin
The PlotBird statistics screen inside WordPress: pageviews, visitors, sessions, average time and bounce rate, a traffic chart, and blocks for pages, sources, countries, devices, browsers and goals
  1. Install the plugin Download the archive from github.com/plotbird/wordpress-plugin and upload it under Plugins, Add New, Upload Plugin.
  2. Four steps, no code The address of your installation, the website id, and a read-only share link. Each step checks itself: it fetches the tracker and looks for the tag on your front page.
  3. Read the numbers in the admin Pageviews, visitors, sessions, average time and bounce rate, a traffic chart, top pages, sources, countries, devices, browsers and goals. English and Russian, following the site language.

Administrators are not counted by default, so your own visits stay out of the reports. The plugin stores no password: statistics are read through a share link, which is read-only and can be revoked at any time.

How it differs from the others

Every tool here is good at what it was built for. The difference is where it runs.

Full comparison: what each tool needs to run →

Against Plausible

The same idea on a different host: Plausible needs Elixir and ClickHouse, which means a VPS with Docker. PlotBird needs PHP and MySQL, which means the hosting you already pay for.

Against Umami

Umami runs on Node. Plenty of shared hostings do not run Node at all, and the ones that do will not keep it running for you.

Against Matomo

Matomo is a platform: plugins, funnels, e-commerce, campaign tracking. PlotBird deliberately stays small enough to install in five minutes and stay fast on a cheap machine.

What it is not

  • No funnels, no A/B tests, no e-commerce reports and no session recordings.
  • The bundled .htaccess was checked against one shared host running nginx in front of Apache: config/, logs/, templates/, locales/ and migrations/ answer 403, and directory listing is off. The nginx snippet itself is still untested.
  • No independent security review has been done: the code was reviewed by the maintainer against the checklist in SECURITY.md.
  • One MySQL server by design: no ClickHouse cluster, no horizontal scaling.

If you need funnels or e-commerce tracking today, Matomo is the safer choice.