huseyinfiliz / rewind
A year-in-review recap for Flarum.
Requires
- php: ^8.3
- flarum/core: ^2.0
Requires (Dev)
- flarum/likes: ^2.0
- flarum/phpstan: *
- flarum/tags: ^2.0
- flarum/testing: ^2.0
Suggests
- flarum/emoji: Required for emoji CDN image rendering
- flarum/likes: Required for likes received/given and best friend metrics
- flarum/mentions: Required for mentions received/given and best friend mentions metrics
- flarum/tags: Required for top tag metric
- fof/badges: Required for badges earned and badge leaderboard metrics
- fof/best-answer: Required for best answers and leaderboard metrics
- fof/reactions: Required for community total reactions metric
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-26 22:50:31 UTC
README
A year-in-review extension for Flarum forums. Allow your community and users to look back at their yearly statistics, top posts, and community milestones with beautiful animations and a personalized slideshow interface.
π¨ Personalized Rewind Slideshow
π Community Snapshot
βοΈ Admin Settings & Generation
Features
- π Community Snapshot: Overview of new users, top discussions, and busiest months.
- π€ Personalized Rewind: Individual metrics like post count, best posts, word counts, and night-owl statistics.
- π¨ Slideshow UI: Beautiful, animated slideshow interface for users to experience their year.
- π Ecosystem Integration: Automatically fetches optional metrics if compatible extensions are enabled.
- π Customizable Blade Templates: Full artistic freedom to override annual recaps with custom Laravel Blade templates that persist across Composer updates.
- π Per-Year Presentation Modes: Choose between the animated interactive slideshow or custom Blade views on a per-year basis.
- π± Responsive Design: Optimized layout for mobile, tablet, and desktop viewing.
Installation
composer require huseyinfiliz/rewind:"*"
After installing, run the following commands to apply the database changes and clear the cache:
php flarum migrate
php flarum cache:clear
Updating
composer update huseyinfiliz/rewind:"*"
php flarum migrate
php flarum cache:clear
To remove simply run composer remove huseyinfiliz/rewind.
Quick Start
For Users
- Users can access their personal rewind from their user profile.
- The community snapshot is available at Rewind page.
For Admins
- Enable the Rewind extension in your admin panel.
- In the extension settings, select the year you want to generate a Rewind for (e.g.,
2025). - Click the Generate button. (This process may take a few minutes depending on the size of your forum).
- Under the Templates & Blade tab, choose the desired Presentation Format (Interactive Slideshow or Custom Blade) for each year.
Important Note: Statistics for a past year are designed to be generated after that year has ended (e.g., generating 2025 data in January 2026).
Privacy Settings
- Only include publicly accessible content is enabled by default. Personal and community metrics use Flarum's guest visibility rules. For members-only forums, disable this setting to use standard member visibility instead. The generating user's admin or custom group privileges are never used. Private and deleted posts/discussions are excluded in both modes, and tag permissions (including parent tags) are respected.
- Make new personal rewinds public by default is disabled by default. New personal rewinds are private, including those generated by admins. Users can make their own rewind public from its visibility controls. Regeneration preserves the existing visibility choice.
- Private personal rewinds are visible only to their owner and users with the Manage Rewinds permission. Other visitors see the same unavailable state as an ungenerated rewind, without snapshot metadata.
Content filters apply during generation. After updating from an older version or changing the content audience, regenerate existing personal and community rewinds to apply the filters to their stored data. Use Generate Community Rewind, then Refresh Existing User Rewinds in the Advanced tab. Refreshing replaces stored metrics without changing users' public/private choices. The Generate Missing User Rewinds action only creates missing snapshots.
Automatic Year and Community Generation
Automatic year selection is enabled by default; automatic community generation is disabled by default. Explicitly saved settings are preserved:
- Automatically select the previous year uses the server's UTC clock (Flarum's timezone). On January 1, 2027, the effective recap year becomes 2026. Turning it off restores the saved manual Active Year. The extension's Enable Rewind switch still controls access; automation does not override it.
- Automatically generate the community Rewind creates a missing recap for the active, completed year. A confirmed member with Rewind viewing permission can trigger it by opening Rewind. Generation proceeds in locked, resumable steps, and word counting processes at most 1,000 posts per request. Nothing is published until all metrics finish. Subsequent visitors reuse the completed snapshot. Guests cannot trigger generation, and an existing recap is never automatically overwritten.
For large forums, prepare the recap before the first visit using Flarum's scheduler. Configure the normal scheduler cron in the Flarum root (replace the paths for your installation):
* * * * * /usr/bin/php /path/to/flarum/flarum schedule:run >> /dev/null 2>&1
Rewind registers a daily rewind:generate --automatic task. It does nothing unless Rewind and automatic community generation are enabled, and skips unfinished years. If no cron is configured, first-member generation still works without a queue worker. Closing the page pauses this fallback; another member or the scheduler can resume it. Cached drafts expire after 24 hours and can be rebuilt safely.
You can also generate or refresh from the command line:
php flarum rewind:generate --community php flarum rewind:generate --year=2025 --community --users --regenerate
Without --regenerate, existing snapshots are reused. --users processes confirmed users in batches; regeneration preserves each user's visibility. For comparisons, generate the community snapshot first. Community averages use the number of active post authors, not new registrations. Older community snapshots need refreshing to supply that denominator.
π Customizable Blade Templates
In addition to the interactive animated slideshow, you can render annual recaps using custom Laravel Blade templates that persist across Composer updates:
- Set Presentation Format: In the admin panel under Templates & Blade, switch any year from Interactive Story Slideshow to Custom Blade Template.
- Override Views: Place custom
.blade.phpfiles insidestorage/rewind/views/:- User recaps:
user_{year}.blade.php(e.g.user_2025.blade.php) or fallbackuser.blade.php - Community recaps:
community_{year}.blade.php(e.g.community_2025.blade.php) or fallbackcommunity.blade.php
- User recaps:
- Template Variables: Views receive
$user,$metricsarray,$year,$forumTitle,$baseUrl, and$actor. The admin panel includes a complete variable reference and copyable snippets.
Optional Integrations
The rewind automatically integrates with these extensions when they are enabled:
| Extension | Metrics |
|---|---|
| flarum/likes | Most loved post, likes received/given, best friend |
| flarum/mentions | Most mentioned user, user who mentioned you the most |
| fof/badges | Badges earned during the year, badge leaderboard |
| fof/best-answer | Best answers count, best answers leaderboard |
| flarum/tags | Top community tag, user's top tag |
| fof/reactions | Total community reactions |
| flarum/emoji | CDN mirror address for emojis used in slides |
No configuration is needed β install the extension and the metrics will be collected automatically during the generation process.
π Translations
This extension comes with English translations. Community translations are welcome!
π Support & Contributing
If you find this extension useful, consider:
- β Starring the repository on GitHub
- π Contributing translations