Litlyx
Cookie-free, AI-powered web analytics you can self-host in 30 seconds with Docker.
Litlyx is an open-source, self-hostable web analytics platform built for developers and privacy-conscious businesses who want a clean alternative to Google Analytics, Mixpanel, and Matomo. It tracks visitors, page views, bounce rates, and custom events without cookies or consent banners, making GDPR compliance effortless by design. A single script tag or npm install is all it takes to start collecting data.
The platform is built around a producer-consumer architecture: an Express-based event ingestion service receives tracking calls and queues them into Redis Streams, while a separate consumer service reads from the queue and persists processed data into MongoDB. This separation keeps the hot-path ingestion lightweight and resilient even under load. A Nuxt 3 dashboard with Vue 3 components provides real-time analytics views, team member management, and an integrated AI assistant powered by OpenAI for natural-language data insights.
Self-hosting via Docker Compose takes minutes — pull the images, configure environment variables for MongoDB and Redis, set an admin email and password, and the dashboard is live on port 3000. A license key unlocks full feature parity with the cloud offering, while the open-source base provides unlimited self-hosted usage for teams that prefer to manage their own infrastructure. For teams who do not want to manage servers, Litlyx also offers a hosted cloud version at dashboard.litlyx.com.
What You Get
- Cookie-Free Visitor Tracking - Collects page views, unique visitors, bounce rate, and session duration using a flow-hash fingerprinting approach that requires no cookies and no consent banners.
- Redis-Backed Event Ingestion - Events and visits are queued through Redis Streams with consumer group semantics, providing backpressure and replay capability without a dedicated message broker.
- AI-Powered Dashboard Insights - An integrated OpenAI-powered chat assistant lets you ask natural-language questions about your traffic data and receive context-aware answers directly in the dashboard.
- Custom Event Tracking with Metadata - Fire named events with structured JSON metadata using a single API call, enabling funnel analysis, conversion tracking, and behavioral segmentation.
- UTM Campaign Attribution - Automatically extracts and stores utm_campaign, utm_source, utm_medium, utm_content, and utm_term from referrer URLs for marketing attribution.
- Team Member Permissions - Invite team members or clients to projects with role-based access control, including support for inviting users who do not yet have a Litlyx account.
- Docker Compose Self-Hosting - The entire stack — dashboard, producer, consumer, MongoDB, and Redis — is orchestrated through a single docker-compose.yml file for straightforward on-premises deployment.
- Universal SDK Integration - A single CDN script tag or npm package works with React, Next.js, Vue, Nuxt, Angular, WordPress, and any other JavaScript environment.
Common Use Cases
- Running a GDPR-compliant SaaS product - A founder embeds the Litlyx script in their web app to track feature usage and conversion events without triggering cookie consent requirements in the EU.
- Replacing Google Analytics for an agency - A web agency self-hosts Litlyx and gives each client a separate project workspace with read-only member access for clean, branded reporting.
- Tracking marketing funnel performance - A growth team fires custom events like ‘pricing_page_view’ and ‘trial_started’ with metadata to measure drop-off at each funnel step using the AI insights feature.
- Data-residency-sensitive deployments - A healthcare or financial services company self-hosts Litlyx on their own servers to guarantee that visitor data never leaves their infrastructure or jurisdiction.
- Monitoring open-source project websites - A developer self-hosts Litlyx on a $5 VPS to track documentation site traffic without paying for a SaaS analytics tool or sharing data with Google.
Under The Hood
Architecture Litlyx uses a producer-consumer microservices pattern with three distinct Node.js services communicating through Redis Streams. The producer is a thin Express service whose only job is to validate incoming event and visit payloads, generate session and flow hashes for cookieless identification, and write records to a named Redis Stream. The consumer reads from that stream via consumer group semantics, enriches data with IP geolocation and user-agent parsing, checks rate limits and subscription status, and persists to MongoDB. The Nuxt 3 dashboard serves double duty as both the Vue 3 SPA and a Nitro-powered API backend, handling authentication, data queries, AI chat, and team management within a single process. Within each service the pattern is procedural: business logic lives directly in route handlers and stream processors rather than in domain services, and there is no repository abstraction over Mongoose models, which constrains testability.
Tech Stack The producer and consumer are Node.js services written in TypeScript using Express for HTTP and Mongoose for MongoDB persistence. Redis Streams handle the event queue, and mmdb-lib with a bundled MaxMind GeoLite2 database provides IP-to-location resolution without external API calls. The dashboard is a Nuxt 3 application with Vue 3 and Pinia state management, using Shadcn-Nuxt (Reka UI) for components and Tailwind CSS v4 for styling. VueUse composables handle reactive utilities throughout the dashboard. OpenAI’s API powers the AI assistant layer via a custom AiService wrapper. The entire stack runs under Docker Compose with MongoDB and Redis as backing services, and pnpm manages the monorepo with shared TypeScript types across services.
Code Quality No test files exist anywhere in the repository — no unit, integration, or end-to-end framework is configured or referenced. Error handling in the backend services defaults to generic try-catch blocks with console.error logging and raw exception messages passed to clients. The dashboard’s useCatch composable is a notable exception: it provides structured client-side error recovery with typed error maps, toast notifications, and async recovery callbacks. TypeScript is used consistently across all services with basic type safety, but no ESLint or Prettier configuration exists at the workspace level. The overall quality discipline is low for a tool intended for production self-hosting, though the TypeScript coverage and the useCatch pattern show awareness of quality concerns.
What Makes It Unique Litlyx’s most distinctive engineering decision is using Redis Streams as its event transport, which provides consumer group semantics, natural backpressure, and event replay without requiring Kafka or another dedicated broker — an unusually lightweight choice for a multi-service analytics pipeline. The license-key validation model for self-hosting — where a startup plugin checks a remote license server at boot and adjusts feature limits accordingly — is an uncommon hybrid between fully open self-hosting and a gated commercial product. The AI assistant integrated directly into the dashboard, with per-project context and conversational memory stored in MongoDB, goes beyond what most self-hosted analytics tools offer. The cookieless session tracking via a hashed combination of project ID, IP, and user-agent provides privacy-preserving visitor identification without browser storage, a technically sound alternative to fingerprinting.
Self-Hosting
Litlyx is licensed under the Apache License 2.0, which is a permissive open-source license. You are free to use, modify, and distribute the software commercially, deploy it internally, and integrate it into proprietary systems without triggering copyleft obligations on your own code. The license requires attribution and preservation of the original license notice, but imposes no restrictions on how you use the analytics data you collect.
Running Litlyx yourself means operating and maintaining three Node.js services (producer, consumer, dashboard), a MongoDB instance, and a Redis instance. The Docker Compose setup handles the initial orchestration, but you are responsible for persistence volumes, backups, MongoDB replica sets if you need high availability, Redis persistence configuration, SSL termination, and rotating credentials. The AI assistant feature additionally requires you to supply your own OpenAI API key and configure it via environment variables — it is disabled by default in self-hosted mode. A self-hosted installation requires a license key obtained from litlyx.com to unlock full feature parity; without it, the dashboard boots into a degraded mode.
Compared to the managed cloud offering at dashboard.litlyx.com, self-hosting means you handle upgrades manually by pulling new Docker images and re-running compose, monitor your own uptime, and have no SLA or support tier. The cloud version removes all infrastructure burden and includes managed AI features, but means your visitor data is processed on Litlyx’s servers rather than your own. For teams with strict data residency requirements or existing MongoDB and Redis infrastructure, self-hosting is the clear path; for teams that want analytics without operational overhead, the cloud tier is a practical alternative.
Related Apps
Grafana
Monitoring · Analytics
The open-source observability platform that unifies metrics, logs, and traces from any data source into dynamic, queryable dashboards.
Grafana
AGPL 3.0OpenBB
Databases · Analytics · Invoicing Finance
The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics
OpenBB
OtherClickHouse
Databases · Analytics · Data Engineering
Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.