The Discourse Cakeday plugin, now bundled with Discourse core, decorates user avatars with celebratory emojis on their forum joining anniversaries and optional birthdays. While default settings enable this feature, administrators can customize emojis and toggle functionality via the admin/plugins page. The plugin offers a browsable directory of events at /cakeday/anniversaries/today and /cakeday/birthdays/today, and provides JSON endpoints for external integration RGJ.
Community discussions have highlighted several technical nuances and bugs:
Data Migration: Users migrating from other platforms often require manual database updates to correct join dates, as the plugin relies on the created_at timestamp Firepup650.
Staged Users: A known issue exists where staged users display birthday badges but do not appear in the public birthday list Ivan_Rapekas.
Anniversary Logic: Clarification was provided that the “All” tab for anniversaries typically shows users celebrating their first anniversary (one year post-join), rather than all registrations JammyDodger.
Profile Persistence: A critical bug was identified where saving a birthday fails to persist if the hide_profile setting is enabled mentalstring. This issue is scheduled for resolution via a core PR zogstrip.
Feature Requests: Users have requested the ability to input birthdates during registration and to manually edit anniversary fields via CSV, though the former is not currently supported copymonopoly.
Automatically uses join date for anniversaries, and adds an optional Date of Birth field on each user’s Preferences->Profile page (limited to Month and Date)
Is it possible to manually edit (or ideally upload a CSV file) the anniversary field?
Our main issue is that we migrated our community from a very old platform (enjin) to Discourse. We managed to scrape most of the data including our old join dates but obviously when we created the new Discourse users their “join dates” now no longer correspond with when they actually joined our community back on enjin.
Hi, in my “forum joining anniversary” list I don’t have anything in /cakeday/anniversaries/all?month=3, though most of members joined that month, any idea? Thanks.
Yes but this URL (/cakeday/anniversaries/all) should show all registrations anniversaries, not birthdays.
For birthdays, it’s this URL: /cakeday/birthdays/all
I meant that it could populate on the month when their first anniversary is celebrated (that is, a year after people joined the forum). The first day you join isn’t technically an anniversary. So if ‘March’ in this case is ‘March 2024’ and that’s the year they all joined then no one would be celebrating an anniversary yet.
I haven’t looked at the code though, so this could be conjecture.
Is it possible to have the “Month and Date” Date of Birth preference appear on the registration form, instead of only in each user’s Preferences → Profile page?