Most analytics tools ask visitors to trust a privacy policy. Offen asks visitors to opt in — and then shows them the same numbers you see.
Offen Fair Web Analytics is a small, opinionated project (~1k GitHub stars, Apache-2.0) from the Offen authors in Germany. It is web stats for people who mean it when they say consent: no tracking until the user actively agrees, end-to-end encryption in the browser, and a user-facing view where people can inspect or delete their own trail. Self-host a single binary or Docker image on your Canadian VPS and you are not renting another US analytics tenant.
What it actually does
Offen is operator analytics plus user transparency, not a growth-hacking suite. After you embed the snippet on pages you own, visitors see a consent banner (customizable colours and fonts). Only opt-ins generate events.
Operators use the Auditorium to review aggregated traffic: URLs, referrers, locations (without storing raw IPs), UTM parameters, landing and exit pages. Multiple sites can live in one install; teams share accounts.
Visitors get their own Auditorium view of the same metrics, explained in plain language, with delete and full opt-out anytime. Data retention defaults to six months, then deletion — not "until the warehouse bill arrives."
Technical shape: lightweight Go server, SQLite or Postgres, optional automatic ACME TLS. First-party cookies only; no ad network in the middle. Encryption means the server stores ciphertext it cannot read without client keys — a different threat model than "trust our SaaS admin panel."
Why self-host?
Consent you can demonstrate. Regulators and privacy officers ask how analytics works. Offen's opt-in flow and user data access are built in, not bolted on. Running it on stats.yourdomain.ca in Canada keeps processing and storage in a jurisdiction you document.
No third-party processor by default. First-party hosting avoids sending page views through someone else's multi-tenant cloud. That matters for clinics, legal sites, and anyone tired of subprocessors lists.
Fairness as product design. If your brand promise is respectful analytics, Offen aligns marketing with mechanics. You will accept lower sample rates than silent GA — that is the trade.
Simple ops. Compared to Matomo's PHP archive cron or a five-container stack, Offen targets one binary and a database file. Good fit for Swift Host clients who want ethics without a platform team.
What running it takes
Follow docs.offen.dev: pull the release binary or Docker image, configure domain and TLS (Let Offen handle ACME or terminate TLS at nginx), create operator accounts, embed the script, and link to the user-facing explanation from your privacy page.
- SQLite — fine for modest traffic and single-server installs.
- Postgres — when you outgrow one file or want familiar backups.
- Locales — banner and UI in English, French, German, Portuguese, Spanish, Vietnamese (more via community).
Try before you commit: curl https://demo.offen.dev | bash spins a local demo on port 9876 with sample data.
Expect fewer total data points than silent analytics. Plan messaging so stakeholders know opt-in rates, not just page views.
Who it's for (and who should skip it)
Good fit: nonprofits, EU-aware Canadian orgs, indie publishers, municipal and cultural sites, agencies pitching ethical analytics to clients, teams replacing cookie banners that lie.
Maybe skip it: if you need silent 100% coverage, ad conversion pixels, or ecommerce funnel depth, Offen will feel empty — use Matomo or a product analytics tool and accept the privacy cost. If you refuse any client-side JavaScript entirely, pair server logs (GoAccess) with something else.
Hosting it in Canada
Offen sits comfortably on a small VPS or Docker host next to your site: private stats subdomain, nightly DB backup, TLS in front.
Tell us traffic level and how you explain opt-in to visitors if you want help wiring the snippet and privacy copy on a WordPress or static site.
Want analytics that treat visitors like adults? Talk with Swift Host — we are in St. Albert and actually answer the phone.