← Back to all sparks
O

Open Web Analytics

MARKETING
Velocity7.5

Self-hosted web analytics for tracking site visitors

A decade-old analytics project is rebuilding its foundations release by release.

web-analyticsself-hostedmodernizationdatabase-schemaphpopen-source
Current state
Open Web Analytics is in the middle of a sustained modernization run. Since 1.9.0 raised the PHP floor to 8.2 and replaced the JavaScript build, each release has repaired something structural: the update mechanism, PSR-4 autoloading, REST response shapes, and a deny-all web-access posture that briefly broke fresh installs. Release notes are unusually candid about upgrade steps and about what past versions got wrong.
Where it's heading
The work has moved from making the codebase current to making it hold data at scale. Date partitioning and the job scheduler in 1.11.0 were the turning point; 1.12.0 continues it with 63-bit dimension ids and a rederive command for existing installs. Deprecations flagged for a 2.0 suggest the modernization has a destination rather than being open-ended.
Prediction
Expect the deprecated conventions listed in the upgrade docs to be removed in a 2.0, with the remaining point releases clearing migration paths like the dimension-id rederive ahead of it.

Recent moves

  1. 25d ago

    63-bit dimension ids arrive with an optional rederive step

    A maintenance release that moves dimension ids to 63-bit, with a schema bump applied automatically and an optional CLI rederive for existing installs. The notes are explicit that nothing breaks if the rederive never runs, which fits this project's pattern of making upgrades survivable for long-running deployments.

    View source ↗
  2. 28d ago

    Date partitioning and a job scheduler land in OWA 1.11.0

    ⚡ SPARK

    Date partitioning and a job scheduler land together, moving OWA from a schema that grows unbounded to one that can be maintained on a schedule. It is the structural turn the earlier modernization releases were clearing the way for.

    View source ↗
  3. 1mo ago

    REST responses narrowed to documented properties

    REST responses now return only documented entity properties, and route-form URLs that previously answered with an empty body now resolve. Breaking clients that read internals is a deliberate tightening of the API contract ahead of the deprecations aimed at 2.0.

    View source ↗
  4. 1mo ago

    PSR-4 migration completed and the updater repaired

    Sixteen pull requests completing the PSR-4 move with compatibility shims, plus a repair to an updater that reported success without applying anything. Fixing the mechanism that applies upgrades was a precondition for every schema change that followed.

    View source ↗
  5. 1mo ago

    Emergency fix for the 403 blocking every fresh install

    An emergency patch for a 403 that blocked the install wizard on every fresh 1.9.0 deployment, caused by the new deny-all access rules refusing the bare directory URL before index.php was considered. A direct cost of the security hardening shipped one release earlier.

    View source ↗
  6. 1mo ago

    PHP 8.2 floor, rebuilt JS toolchain, and a test suite

    ⚡ SPARK

    The release that restarted the project: a PHP 8.2 floor, a rebuilt JavaScript toolchain, a relocated tracker, deny-all access rules, and a real automated test suite. Everything since has been consolidating what this release moved.

    View source ↗