All features

Technical foundations

Architecture, databases, custom domains, custom events, goals, funnels, and API access.

Architecture

Separated by design

Eurolytics separates event ingestion from the dashboard. The ingestion service is a stateless Go binary that accepts events, classifies traffic, and writes to ClickHouse. The dashboard is a Next.js 14 application that reads from ClickHouse and manages accounts via PostgreSQL. The two share no runtime dependencies.

architecture

INTERNET

┌──────────────┴──────────────┐

▼ ▼

events.eurolytics.app eurolytics.app

Go + SQLite WAL Next.js + Postgres

└──────────┬──────────────────┘

ClickHouse

Data Layer

ClickHouse for speed, Postgres for structure

ClickHouse

Columnar OLAP database optimized for time-series analytics

  • All pageview and event data
  • AI crawler activity logs
  • Aggregations and trend queries
  • Partitioned by site_id for fast queries

PostgreSQL

Relational database for structured metadata

  • User accounts and authentication
  • Site configurations and team membership
  • Goals, funnels, and conversion definitions
  • Bot pattern definitions for classifier sync

Tracking

Custom events, goals, and funnels

Beyond pageviews, Eurolytics tracks custom events you define — sign-ups, purchases, button clicks, or anything else. Create Goals in your site settings to track conversion rates, and build Funnels (2-8 steps) to see where visitors drop off in multi-page flows.

custom event

eurolytics('signup_complete', {

plan: 'pro',

source: 'landing_page'

})

Domains

Custom tracking domains via CNAME

Point a subdomain like analytics.yoursite.com to our ingestion endpoint via CNAME. This improves AI crawler detection because bots are more likely to fetch resources from the same domain as your content.

Configure it in Settings → Tracking Domain. DNS verification is built in — add the CNAME record and Eurolytics confirms it automatically.

API

Programmatic access

Eurolytics provides API access for querying analytics data, managing sites, and creating goals programmatically. You can export data via the dashboard in JSON format at any time.

Common questions

What's the tracker script size?

Just 1.2KB gzipped. That's tiny by modern standards, smaller than a thumbnail image. The script loads asynchronously and has zero impact on your page speed or Core Web Vitals. Perfect for high-performance sites.

Do you offer an API?

Yes, we're building a full REST API for querying analytics data, creating goals, and managing sites programmatically. It's in our roadmap for Q1 2026. For now, you can export data via JSON and integrate via the dashboard.

Do you support custom domains (CNAME)?

Yes, we support custom tracking domains via CNAME. This improves bot detection accuracy because crawlers are more likely to fetch same-domain resources. Configure it in Settings -> Tracking Domain. Full setup is coming soon.

Can I track custom events?

Yes. You can define custom events (sign-ups, purchases, etc.) in the dashboard, and our JavaScript tracker sends them automatically. Create Goals in Settings -> Goals, and Eurolytics will start tracking and displaying conversions.

What databases do you use?

ClickHouse for analytics (fast OLAP queries, time-series optimized) and PostgreSQL for metadata (user accounts, site configs, team membership). We deliberately kept these separate so ingestion can run independently.

Ready to get started?

Free during beta. No credit card required.