Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Statistics Laravel Package

rinvex/laravel-statistics

Rinvex Laravel Statistics adds lightweight, model-based analytics to Laravel apps. Attach a trait to any Eloquent model to record and query daily, monthly, and yearly hits, views, and custom metrics via polymorphic relations, with caching and configurable tracking built in.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for product analytics. This package is a "buy the pattern, own the code" option: first-party visit tracking inside your own Laravel database for $0 in vendor spend, versus a GA4/PostHog/Segment contract or a sprint of custom instrumentation. The decision it enables is not "which analytics tool" but "do we need a tool at all yet."
  • Baseline engagement metrics without a third-party tag. Supports decisions that only need directional numbers — DAU/WAU, returning vs. new visitors, route/page popularity, feature adoption by user segment — where raw visit rows can be joined against your own users table instead of reconciling a SaaS export. This is enough to answer "are trial accounts logging in and hitting the activation path?" and not much more.
  • Privacy and data-residency posture as a sales lever. Because events never leave your infrastructure, it unblocks roadmap items in regulated or EU-sensitive accounts where a client-side tag triggers a DPA, cookie-consent work, or a security review. Useful in enterprise deal cycles where "no third-party scripts" is a procurement checkbox.
  • Instrumentation cost tradeoff. The one-insert-per-request write plus scheduled rollup is the core product argument: a defensible analytics baseline that does not measurably degrade page latency and does not require an event pipeline or a data team. This is the argument you make when engineering pushes back on "yet another tracking call."
  • Roadmap scoping for an internal usage dashboard. If a roadmap item is "give CS and leadership a view of who is actually using the product," this is a credible two-table foundation (raw visits + your own aggregated rollups) rather than a data-warehouse project. It can ship in a sprint, not a quarter.
  • De-prioritizing analytics as a differentiator. Adopting it is an explicit statement that analytics is table stakes, not a product surface worth investing in — which frees roadmap capacity for core features. Make that call consciously and write it down.
  • Framing the fork budget. It forces an honest accounting: the value isn't the dependency, it's a validated schema and query pattern. The PM decision is "2–5 engineer-days to vendor and own this" vs. "a contract" vs. "do nothing and keep guessing."

When to Consider This Package

Consider it (as a fork you own) when:

  • You run a Laravel monolith and need visit/pageview/visitor counts, not behavioral analytics.
  • Your questions are answerable in SQL against tables you already have — "which accounts logged in last week," "which routes do trial users hit before converting," "which pages do churned accounts stop visiting."
  • You want zero JS tag, zero consent-banner surface, and data that never leaves your DB.
  • Traffic is modest enough that a row-per-request insert plus a nightly aggregation job is comfortably within budget and your table-growth math is boring.
  • You have engineering capacity for a small, well-scoped fork. The repository is archived — treat it as a code sample and pattern to internalize, not a dependency to composer require. Budget roughly 2–5 engineer-days to vendor it, pin the schema, strip sensitive columns, add indexes and tests before production.

Look elsewhere when:

  • You need funnels, cohort retention curves, session replay, experiment attribution, or a self-serve exploration UI. This package records visits; it does not model behavior. Use PostHog, Amplitude, or a warehouse.
  • You need real-time dashboards or sub-minute freshness — the cron rollup is inherently batch.
  • You have high write volume, or multi-tenant isolation requirements that a shared visits table won't satisfy cleanly (tenant IDs mean editing the migration before first run).
  • You cannot own a fork. An archived repo with 0 dependents means no upstream security patches, no Laravel major-version guarantees, and nobody to escalate to.
  • You need a vendor SLA, support contract, or named maintainer to clear a compliance review. MIT gives you rights, not accountability.
  • The whole decision hinges on one dashboard. Spatie's analytics package, Plausible, or Matomo may cover it with less ownership burden; a two-table hand-rolled equivalent is also legitimate — and honestly close to what you'd get here anyway.

Assessment: the low opportunity score is the signal that matters — the package is essentially complete and abandoned, so there is no ecosystem momentum to ride and no community to inherit. Its value to you is as a validated design (cheap write path, scheduled rollup, SQL-native reporting) and as a head start on a fork. Adopt the pattern; don't adopt the dependency.

How to Pitch It (Stakeholders)

To executives: We can answer basic product-usage questions — are accounts active, which features actually get used, are trials engaging before they convert — without signing a new analytics vendor, without adding a tracking script to the app, and without customer behavioral data leaving our infrastructure. That removes a recurring SaaS line item, shortens privacy and security review for regulated accounts, and costs a few engineer-days rather than a quarter. The caveat, stated plainly: the open-source project is no longer maintained, so we would adopt it as code we own and support, not as a supported product. It gets us a credible baseline, not a competitive analytics capability — if we later need funnels, experimentation, or self-serve dashboards, we will still buy a platform, and this decision doesn't block that.

To engineering: A minimal footprint — one insert per tracked request, one migration, one middleware, and a scheduled aggregation job. We'd vendor it rather than depend on it: pin the version, publish and edit the migration for our UUID users and any tenant column, drop the request-body/header/cookie fields we don't need on privacy grounds, add indexes on created_at, user_id, is_bot, and request_path, and set an explicit retention window from day one. Scope tracking to public route groups only — no admin, health checks, webhooks, or assets — and register the middleware after session/auth so attribution isn't empty. Keep the raw table as an append-only event log and write our own daily rollups for dashboards so reports never couple to the package schema. Test with the middleware disabled plus a small integration test asserting a row is written. Deliverable is roughly 2–5 engineer-days including the fork; the risk we're accepting is that Laravel major upgrades are on us, and the mitigation is that the code surface is deliberately tiny.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource