We moved our analytics onto our own template
velixir.net's analytics used to run on a paid service. Now they run on the Umami template anyone can deploy on velixir in one click: no cookies, every page view in our own Postgres, on EU servers, for a flat €8.44 a month. Here is why, what it took, and what you give up.
Until this week, velixir.net's analytics ran on Plausible. It is a good product, and if you want hosted, privacy-friendly analytics with nothing to look after, I would still point you at it.
But we had just added Umami to our template gallery, and it does the same job on our own platform. Paying someone else to host our page views, while telling our customers they can host theirs in one click, started to feel silly. So I clicked Deploy on our own template.
It worked first time. velixir.net's analytics have run on it ever since.
What changed on our site
One script tag. We swapped Plausible's for our Umami's, and the two events we care about most, a signup and someone clicking to deploy, carried on under the same names. Nothing else moved. We never needed a cookie banner for analytics, and we still don't: Umami sets no cookies either.
Why run your own
The data is yours, in a database you can open. Every page view sits in a managed Postgres that belongs to you, with backups kept for seven days. When a dashboard doesn't answer your question, SQL will.
It stays in the EU. Page views are collected, processed and stored on servers in EU data centres. No US cloud provider sits between our visitors and our numbers.
The price doesn't move with your traffic. Hosted analytics is usually priced in tiers of monthly page views. Umami on velixir is €8.44 a month, the app and its database, billed by the hour. A post that takes off doesn't change the bill, and you can add as many sites as you like.
Your numbers include everyone. With no cookies there is no consent pop-up standing between a visitor and your analytics, so you count the people who would have ignored the banner too.
What you give up
I would rather you knew before you deploy.
You run it. Upgrades are yours to choose: the template pins Umami's version in one line of package.json, so an upgrade is a version bump and a deploy. Read Umami's release notes first for a new major version.
No email. Umami doesn't send any, so there are no emailed reports and no emailed password reset. Lose the admin password and you set a new one with an environment variable and a redeploy. The template's README walks through it.
It needs 512 MB, so it isn't on the Free plan. That is deliberate. The Free plan sleeps when nobody is visiting, and an analytics app that has to wake for the first visitor after a quiet spell would miss that visit. In our tests it handled a sustained 85 requests a second in 512 MB, which is plenty for most sites.
Ad blockers can block analytics scripts by name. Serving the script from your own domain, or renaming it with TRACKER_SCRIPT_NAME, gets most of those visits back.
Doing it yourself
- Open velixir.net/templates/umami and click Deploy. velixir creates the app and a managed Postgres, connects them, and waits for the database before the first start. The build takes about three minutes.
- Open the app's logs. The first start printed a one-time admin password, so the default login never works on your public URL. Sign in and change it.
- Add your site in Umami and paste its script tag into your pages. Visits show up within seconds.
From a terminal it is one command: velixir deploy --template umami --with-services.
That's it. Your analytics, in your database, on EU servers, by this afternoon.
Liked this post? velixir is hiring its first .NET customers.
Start free - your first month's on us