Repolode
d8a-tech

d8a-tech/d8a

Open-source web analytics pipeline that accepts GA4 and Matomo tracking and writes sessionized flat tables to BigQuery, ClickHouse, or CSV/Parquet files.

Open-source alternative to:Google AnalyticsMatomo Cloud

Stars
62
Forks
4
Open issues
16
Last commit
yesterday

What is it?

d8a is a warehouse-native web analytics pipeline. It accepts requests in the GA4 and Matomo tracking protocols, or from its own web tracker, which is a drop-in replacement for gtag.js. Sessions are built on the backend with a configurable inactivity timeout, and each closed session with its events is written to the warehouse in one batch.

The output is a flat, documented schema with dedicated columns for common click IDs and UTM-based source and medium attribution. Expression-based traffic filters can exclude internal traffic or bots, and IP addresses can be stored in full or masked at several levels. Storage targets include Google BigQuery, ClickHouse, and CSV or Parquet files on S3, MinIO, GCS, or local disk.

The project can run on-premises or in air-gapped environments, with an `--airgapped` flag that disables built-in outbound integrations. It does not include a reporting UI; users bring their own BI tool. A hosted version, d8a.tech Cloud, runs the same pipeline.

Key features

  • 01Accepts GA4 and Matomo tracking protocols, plus a web tracker that replaces gtag.js.
  • 02Builds sessions on the backend with configurable timeout and split rules.
  • 03Writes flat tables with dedicated columns for click IDs and UTM attribution.
  • 04Supports BigQuery, ClickHouse, and CSV/Parquet on S3, MinIO, GCS, or local disk.
  • 05Provides expression-based traffic filtering with a test mode.
  • 06Can run air-gapped with outbound integrations disabled.

Use cases

  • Keeping GA4 or Matomo tracking while storing raw, sessionized data in your own warehouse.
  • Running web analytics in healthcare or public-sector environments that require data to stay on your infrastructure.
  • Giving data teams flat session tables for SQL and BI instead of parsing GA4's nested exports.
  • Analyzing web traffic in ClickHouse or BigQuery alongside other company data.

Quick start

  1. 1

    Clone the repository and open it locally

  2. 2

    Start the server from source with the dev config

    go run main.go server --config config.dev.yaml
  3. 3

    Send a test page_view request to the local endpoint

    curl "http://localhost:8080/g/collect?v=2&tid=14&dl=https%3A%2F%2Ffoo.bar&en=page_view&cid=ag9" -X POST
  4. 4

    Wait about 10 seconds and check the console output for processed events

Things to know

  • Ships without a reporting UI; you need your own BI tool or the Data Studio dashboard.
  • Session processing runs on a single worker that scales vertically only.
  • The README's quick start is for local development; production setup points to external docs.

In collections

Topics

FAQ

What is d8a?
Open-source web analytics pipeline that accepts GA4 and Matomo tracking and writes sessionized flat tables to BigQuery, ClickHouse, or CSV/Parquet files. d8a is a warehouse-native web analytics pipeline. It accepts requests in the GA4 and Matomo tracking protocols, or from its own web tracker, which is a drop-in replacement for gtag.js. Sessions are built on the backend with a configurable inactivity timeout, and each closed session with its events is written to the warehouse in one batch.
Is d8a free to use? What license does it have?
d8a is open source under the MIT license. Check the license terms before using it in commercial products.
Is d8a still maintained?
Actively maintained. The last commit to d8a was on Nov 6, 2026.
What can I use d8a for?
Keeping GA4 or Matomo tracking while storing raw, sessionized data in your own warehouse. Running web analytics in healthcare or public-sector environments that require data to stay on your infrastructure. Giving data teams flat session tables for SQL and BI instead of parsing GA4's nested exports. Analyzing web traffic in ClickHouse or BigQuery alongside other company data.
How do I install d8a?
Clone the repository and open it locally Start the server from source with the dev config: go run main.go server --config config.dev.yaml Send a test page_view request to the local endpoint: curl "http://localhost:8080/g/collect?v=2&tid=14&dl=https%3A%2F%2Ffoo.bar&en=page_view&cid=ag9" -X POST Wait about 10 seconds and check the console output for processed events
Where can I get d8a?
The source code and installation instructions are on GitHub: https://github.com/d8a-tech/d8a

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects