You outgrew "how many page views yesterday" but you are not signing up for another GA4 certification course. Product teams want custom events. Marketing wants a dashboard that does not need a data engineer every Monday. Privacy folks want cookies out of the picture.
Litlyx sits in that middle ground: modern web analytics with a small embed script, optional custom events with metadata, real-time visitor counts, and an AI-assisted dashboard when you opt in. ~1.7k GitHub stars, Apache-2.0, with a hosted cloud at litlyx.com and a full Docker stack for self-hosting. Cookie-free positioning puts it in the same conversation as Plausible or Umami, but Litlyx pushes harder on product analytics (events, funnels-adjacent workflows) and framework integrations (React, Vue, Nuxt, Next, npm package litlyx-js).
What it actually does
Drop a deferred script tag with your workspace/project id, or Lit.init() from npm. Litlyx tracks page visits, live users, uniques, referrers, and the usual web stats — then lets you fire named events:
Lit.event('click_on_buy_item', {
metadata: { 'product-name': 'Coca-Cola', price: 1.50, currency: 'EUR' }
});
Server-side tests can hit the event broker with a JSON POST if you are wiring backends or CI smoke checks.
Self-hosted architecture (from upstream docker-compose.yml) is a small pipeline, not a single binary:
- MongoDB — primary store for analytics data.
- Redis — stream buffer between ingest and persistence.
- Producer — accepts events (port 3001 in the default compose file).
- Consumer — drains the stream into Mongo.
- Dashboard — Nuxt app on port 3000 with
NUXT_PUBLIC_SELFHOSTED=true; AI features stay off until you add OpenAI org/project/key env vars.
Point your script at your own host with data-host, data-port, and data-secure so hits never leave your infrastructure. Prep is npm run docker-prepare (or pnpm/bun) then docker-compose up — change default Mongo/Redis passwords in the compose file before you expose anything to the internet.
Why self-host?
Event payloads stay local. Custom metadata can include product names, prices, and internal campaign codes. Keeping producer, consumer, and DB on a Canadian VPS avoids shipping that context to a US analytics region by default.
Cookie-free still needs trust. "No cookies" helps with consent banners, but the vendor still sees traffic unless you self-host. Running Litlyx on analytics.yourdomain.ca puts collection and storage under your keys and backups.
Product analytics without Mixpanel bills. If you are already paying for compute, a Docker stack can beat per-seat SaaS — trade money for Mongo/Redis ops and compose upgrades.
AI is optional. Self-hosters can leave NUXT_PUBLIC_AI_ENABLED=false and use the standard charts; turn on AI only when you accept sending summarized data to an external LLM provider.
What running it takes
Budget more than a GoatCounter binary: plan for RAM for Mongo, Redis persistence volumes, and three Node services plus the dashboard. Put TLS in front (nginx/Caddy → dashboard and producer), do not publish Mongo or Redis ports publicly, and rotate the default admin email/password in compose before go-live.
Upstream documents script integration for WordPress (via header injection plugins), SPA frameworks, and cloud CDN defaults — self-host means you own uptime on the producer when traffic spikes.
Read the license block in compose (NUXT_LICENSE_KEY): cloud has paid seat tiers; self-host docs describe running the platform locally — confirm current terms in their docs if you are reselling dashboards to clients.
Who it's for (and who should skip it)
Good fit: startups replacing GA4 + lightweight product events, agencies standardizing on one cookie-free stack for client sites, teams comfortable with Docker who want npm-first SDK ergonomics.
Maybe skip it: personal blogs that only need path counts (GoAccess or GoatCounter is lighter). If Mongo/Redis feels heavy for one brochure site, use hosted Litlyx or a simpler tool. Enterprise SSO, warehouse export, and legal hold workflows are not Litlyx's pitch — check the roadmap before you bet the company on it.
Hosting it in Canada
We size Docker hosts and VPS plans when clients want analytics colocated with the site: private networking to Mongo, nightly volume backups, and a stats subdomain terminated in-country.
Share expected event volume, number of sites, and whether you need custom events in production if you want a compose checklist before you point live traffic at your producer.
Want product-style analytics without renting the surveillance stack? Talk with Swift Host — we are in St. Albert and actually answer the phone.