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

Footprints Laravel Package

kyranb/footprints

Kyranb/footprints is a lightweight Laravel package for tracking user activity. Add a trait to your models, record footprints through a polymorphic relationship, and query activity history with familiar Eloquent syntax—useful for audits and recent-activity feeds.

View on GitHub
Deep Wiki
Context7

:feet: A simple registration attribution tracking solution for Laravel (UTM Parameters and Referrers)

Frequently asked questions about Footprints
What is kyranb/footprints used for in a Laravel application?
Kyranb/footprints is a lightweight in-app activity log for Laravel. You add traits to models, record footprints through a polymorphic relationship, and query activity history with familiar Eloquent syntax. It suits admin audit views, support workflows, and recent-activity feeds rather than event streaming or compliance-grade audit.
How do I install kyranb/footprints?
Install the package with Composer, publish its config and migration files, then run the migration. Add the package trait to the models you want to track and optionally enable request-context capture for IP address and user agent. The bigger task is deciding which models and events to record, not the installation itself.
Does kyranb/footprints support Laravel 13?
Version 3.2 is described as adding Laravel 13 support, but verify that the tag exists on Packagist and that CI is green across the supported PHP matrix. The 3.2 change is described as additive, with no breaking changes or schema migration for existing users. If you remain on Laravel 10, 11, or 12, 3.2 is effectively a no-op upgrade.
How do I automatically record model activity with Footprints?
Add the provided trait to each model that should be tracked. The trait hooks model events and writes footprint rows through the polymorphic relationship. Decide whether to record all events or only an allowlist, and standardise footprint type names early to keep queries predictable.
How do I query a model's activity history with Eloquent?
Because footprints are stored through a polymorphic relationship, each tracked model exposes its footprints relation. Use normal Eloquent methods such as latest, where, with, and eager loading to build recent-activity feeds or support screens. This keeps activity queries close to the rest of your application code.
Can I record footprints manually without relying on model events?
Yes, the package provides a facade for writing explicit footprint records. This is useful for actions that are not tied to model events, such as logins, exports, or custom domain workflows. Use manual records selectively so the activity log stays useful rather than noisy.
Does Footprints capture IP addresses and user agents?
Optional request-context capture through middleware can store IP addresses and user agents with footprints. Those values are personal data under GDPR and CCPA, so retention limits and access controls remain your responsibility. Enable capture only when the operational need justifies storing that data.
Is kyranb/footprints suitable for compliance-grade audits?
No, it is an in-app activity log rather than a tamper-evident audit platform. It does not provide hash chaining, immutable storage, or enforced retention policies. Use it for admin visibility and support workflows, and choose a dedicated platform if regulatory audit is the real requirement.
How do I stop the footprints table from growing indefinitely?
Every recorded event becomes a row, so an unpruned table will grow without bound and can affect backup and restore times. Add a scheduled retention or pruning job, archive older records if needed, and monitor row counts. Confirm whether the package documents a pruning command or retention config before relying on one.
What production risks should I check before adopting Footprints?
The package performs synchronous inserts on the request path, which adds latency and a failure surface to write endpoints. Verify whether insert failures propagate as exceptions or are silently dropped rather than assuming. Also treat it as a single-maintainer package: pin conservative constraints and lockfiles, and confirm the tagged release and support window.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo