Skip to content
Go to file


Failed to load latest commit information.
Latest commit message
Commit time

Offen logo

Fair web analytics

CircleCI License Awesome Humane Tech REUSE status Total alerts Language grade: JavaScript

Offen is an open alternative to common web analytics tools. Gain insights while your users have full access to their data. Lightweight, self hosted and free.


Core features

Open & free
Our lightweight and open source code can be fully audited by the community. Offen will always be available for free.

Self hosted
Comply with GDPR guidelines. Don't share data with third parties. Your users have full access to their data.

Fair & secure
Opt in only. Users must actively give their consent to data collection. All data is encrypted end-to-end.

How it works

Your job

  • Self host Offen and thereby comply with GDPR guidelines.
  • Integrate the code snippet into pages you want to track.
  • Make your users aware of the access to their data.
  • Improve your services with fair and transparent insights.

Benefits for your users

  • Opt in to data collection or decide to not participate at all.
  • Review own data with detailed explanations of metrics and terms.
  • Only delete usage data or opt out completly at any time.

What you see
Data of all pages where your Offen installation is active. For example:

Example A

What your users see
Data of all pages a user has visited where your Offen installation is active. For example:

Example B

More features

  • Easily analyze multiple websites within one installation.
  • All website accounts can be shared within teams.
  • User data is only stored for 6 months and then deleted.
  • A detailed documentation on how to run Offen is available.

Essential metrics

All important statistics that help you to improve your service.
Collected without violating the privacy of your users.
Essential metrics


Privacy friendly
Collection of usage data is opt in, users that do not actively opt in will never leave a trace. After opt in, Offen collects the minimal amount of data needed to generate meaningful statistics for operators. No IPs, User-Agent strings or similar are being collected or even looked at.

Data in Offen is encrypted End-To-End. Clients encrypt usage data before it leaves the browser and there is no way for the server storing this data to decrypt it. Attackers have no means to compromise an instance, accidental data leaks cannot expose user data.

Self hosted and lightweight
You can run Offen on-premises, or in any other deployment scenario that fits your need. All you need to do is download a single binary file or pull a Docker image, and run it on your server. Offen will automatically install and renew SSL certficates for you if you want it to. If you do not want to deploy a database, you can use SQLite to store data directly on the server.

Transparent and fair
Offen treats the user as a party of equal importance in the collection of usage data. Users have access to the same set of tools for analyzing their own data and they can delete their data at any time.

Test drive

If you're curious, give it a test drive right now:

docker run --rm -it -p 9876:9876 offen/offen:latest demo -port 9876

This creates an ephemeral one-off installation that is populated with random data and is running on http://localhost:9876. There, you can log in using the account and password demo.

Project status

Offen is in active development. Check our blog and Twitter for detailed updates on what we are working on right now and what's up next.

Contributions welcome

This repository contains all source code needed to build and run Offen, both on the server as well as on the client. Also see each of the READMEs in the subdirectories for information on how to work on that particular area of the application.

The development setup requires docker and docker-compose to be installed.

After cloning the repository, you can build the containers and install dependencies using:

$ make setup

Next seed the database for the server application:

$ make bootstrap

You can test your setup by starting the application:

$ make up

which should enable you to access http://localhost:8080/auditorium/ and use the Auditorium

Run the tests for all subapplicatons using

$ make test

The documentation site at is also part of this repository. To run this site locally, you can:

make setup-docs
make docs

This will serve the documentation on https://localhost:4000.

Kind support

NLnet Foundation

We are happy to work with NLnet Foundation, which actively supports our efforts as part of its Next Generation Internet initiative.

Cross-Browser testing provided by BrowserStack.

Give feedback

Found an issue or want to add something? Please do not hesitate to file an issue or open a pull request. For details head to our contributing guideline.


Work in this repository is licensed under multiple licences.

See the NOTICE file for license information on works that get bundled by Offen.



You can’t perform that action at this time.