Analytics that lives inside your app.
Runlight is privacy friendly web analytics that you run yourself. It counts visitors without cookies and without storing anyone's IP address, so there's no consent banner to show. The numbers stay in your own database, and the dashboard is served from your own domain. It covers pages, sources, goals and revenue, funnels, AI agents reading your pages, and short links on your own domains, and the tracking script is under 2 KB. MIT licensed.
runlight.sh · Docs · Changelog
| Language | Install |
|---|---|
| TypeScript and JavaScript | npm install @runlight/sdk better-sqlite3 |
| Standalone server | npx @runlight/server, or docker run -p 3000:3000 -v runlight:/data ghcr.io/runlightsh/runlight |
| PHP | composer require runlight/runlight |
| Python | pip install runlight |
| Ruby and Rails | bundle add runlight |
| Go | go get runlight.sh/go |
| Java | sh.runlight:runlight |
| .NET | dotnet add package Runlight.AspNetCore |
| Elixir | add :runlight to mix.exs |
| Rust | cargo add runlight |
Every language serves the same dashboard from the same tables, so you can switch between them without losing your data. There are also plugins for WordPress, Drupal, and Craft CMS, and an MCP server so AI apps can answer questions about your numbers.
- runlight: every package, the plugins, and the docs. Issues and pull requests go here.
- runlight-php and runlight-craft: read-only copies of the PHP package and the Craft plugin, for Packagist and the Craft Plugin Store.