Skip to content

nilalytics

Serverless, self‑hosted realtime analytics for web and mobile — on your own object storage.

nilalytics collects product events, errors, and performance data over OpenTelemetry (OTLP), stores them in a DuckLake lakehouse on any major cloud's object storage, and serves sub‑second reads over DuckDB's Quack protocol.

No data warehouse. No per‑event fees. No data leaving your infrastructure.

Why nilalytics

  • One SDK per platform. Grafana Faro on the web, OpenTelemetry SDKs on mobile and backend services — all speak OTLP, so you capture user actions and whether the backend calls behind them succeeded. See Backend activity.
  • Runs on any cloud. S3, MinIO, Google Cloud Storage, Cloudflare R2, or Azure / ADLS Gen2 — switch with one env var.
  • No small‑files problem. DuckLake data inlining keeps recent events in the catalog (hot) and flushes older data to Parquet (cold), so streaming stays fast and cheap.
  • Product analytics built in. Funnels, retention, user paths, errors, traces, metrics.
  • Recommendation‑ready. A curated, per‑user user_events table — typed columns, clustered by person — makes "one user's history" a fast read for ML/recommendations.
  • Cross‑device identity. Stitch a person across phone + web, pseudonymously.
  • Secure by default. Token‑authenticated ingest, read‑only query authorization, and a hardened public gateway with short‑lived tokens, CORS, and optional TLS.

How it fits together

flowchart LR
  W["Web · Grafana Faro"] -->|OTLP + token| GW
  M["Mobile · OpenTelemetry"] -->|OTLP + token| GW
  GW["Ingest Gateway<br/>CORS · tokens · TLS"] --> SRV["OTLP server<br/>(duckdb-otlp)"]
  B["Backend services · OpenTelemetry"] -->|OTLP| SRV
  SRV --> LAKE[("DuckLake<br/>DuckDB + Quack catalog<br/>+ Parquet on object storage")]
  LAKE --> READ["Reads: DuckDB / DuckDB-WASM<br/>over Quack"]

Where to go next

Status

nilalytics builds on some young components (DuckLake, and DuckDB's Quack protocol, which is beta until DuckDB 2.0). It is production‑capable for single‑tenant / moderate scale today; see Deployment for the honest limits.