A Ruby gem for tracking model changes and creating activity feeds in Rails applications, similar to GitHub's public activity.
PublicActivity is a Ruby gem that provides easy activity tracking for ActiveRecord, Mongoid, and MongoMapper models in Rails 6.1+. It records model changes and allows developers to present those activities to users in a feed format, similar to how GitHub displays public activity.
Rails developers building applications that need to track and display user activities, such as social networks, project management tools, or content platforms with activity feeds.
Developers choose PublicActivity for its convention-over-configuration approach, multi-ORM support, and built-in view helpers, making it simple to add activity tracking without extensive custom code.
Easy activity tracking for models - similar to Github's Public Activity
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports ActiveRecord, Mongoid, and MongoMapper out of the box, allowing seamless integration with various database backends without code changes, as shown in the initializer setup examples.
Minimal setup required—just include 'tracked' in models to automatically record CRUD activities, reducing boilerplate and speeding up implementation for basic use cases.
Enables creation of custom activity types beyond CRUD using 'create_activity' with custom keys, making it adaptable for complex workflows like social interactions or custom events.
Provides 'render_activities' helper with layout and locals support, simplifying activity display in views and offering I18n fallbacks for easy internationalization.
Includes RSpec helpers to enable/disable tracking during tests, facilitating isolated testing environments without interference, as documented in the testing section.
Only supports specific ORMs like Mongoid 3 (not newer versions) and Rails 6.1+, with issues on older versions closed without resolution, hindering legacy project upgrades.
Automatically recording all CRUD activities can rapidly grow the activities table, potentially impacting database performance without manual optimization or archiving strategies.
Requires additional initializer configuration for Mongoid or MongoMapper, adding an extra step compared to ActiveRecord's straightforward migration-based setup.
Key features and common examples are documented in a separate wiki, which may be less maintained or harder to navigate than integrated documentation, increasing learning time.