Projects / Platforms & apps
Learning analytics pipeline.
A self-hosted PostHog deployment for learning-record analytics. Events flow through Kafka into ClickHouse and out to dashboards client organizations read directly, and OAuth 2.0 single sign-on lets their staff log straight in.
- Stack
- PostHog (self-hosted), Kafka, ClickHouse, Docker, OAuth 2.0
- Scale
- Per-learner event streams, every client organization
- Role
- Set it up and ran it

Flow.
- Learning events
- PostHog SDK
- Kafka
- ClickHouse
- Insights & dashboards
- Client reporting
How it works.
Every learner interaction is captured as an event through the PostHog SDK. Self-hosting PostHog gave us its full pipeline, Kafka ingestion into ClickHouse, without sending learner data to a third party or paying per event.
Progress, time on task, and completion are modelled as insights and dashboards that client organizations can read directly, replacing reports that used to be assembled by hand.
OAuth 2.0 single sign-on lets each client organization’s staff authenticate into the platform with their own identity provider.
Hard parts.
- Running PostHog’s full stack on our own infrastructure and keeping it healthy through term-start traffic spikes.
- Backfilling years of historical records into the new event model without stalling live ingestion.
- Mapping learning records onto an analytics model built for product events.
Outcome.
Client-facing reporting that used to be manual became live dashboards, with learner data kept inside the platform’s own boundary.
Screens.
