Discourse Cakeday

:discourse2: Summary Discourse Cakeday decorates user avatars with a celebratory emoji on the anniversary of their joining day, and (optionally) on their birthday too. :cake: :birthday:
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-cakeday
:open_book: Install Guide How to install plugins in Discourse

Enabling Cakeday

The Cakeday plugin is default enabled but can be disabled/enabled from its settings, accessed from your admin/plugins page:


  • Emoji displayed on posts, usercards, and user pages for forum joining anniversary and/or birthday: (Emojis displayed can also be customized)

  • Browsable directory of anniversaries and birthdays at /cakeday/anniversaries/today

Anniversary/Birthday List

  • 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)

Date of Birth


  • See all relevant site settings by searching your admin settings for “cakeday”
Name Description
cakeday enabled Show cakeday emoji[s] beside the user’s name on the date they joined Discourse
cakeday emoji The emoji[s] that will be shown beside the user’s name on the date that they joined Discourse. Multiple emojis can be specified by: smile
cakeday birthday enabled Show birthday emoji[s] beside the user’s name on their birthday
cakeday birthday emoji The emoji[s] that will be shown beside the user’s name on their birthday. Multiple emojis can be specified by: smile

:discourse2: Hosted by us? This plugin is available on all of our hosting tiers Cakeday | Discourse - Civilized Discussion

Last edited by @JammyDodger 2024-06-18T15:15:28Z

Check documentPerform check on document:

4 posts were split to a new topic: Only show anniversaries and not birthdays?

A post was split to a new topic: How to automatically create a post in a category when there’s a birthday?

Hi, just for notice, staged user has a birthday badge, but it doesn’t appear in the list of birthdays (only regular users are shown) :slight_smile:



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.

If you have access to rails, this works (Though is completely manual):

UPDATE users SET created_at = '2023-05-03 13:56:41' WHERE username_lower = 'username';

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.

1 Like

Hmm. :thinking: Possibly the month is for this year, and no one celebrated an anniversary yet?


Yes but this URL (/cakeday/anniversaries/all) should show all registrations anniversaries, not birthdays.
For birthdays, it’s this URL: /cakeday/birthdays/all

1 Like

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. :slight_smile:

1 Like

Ok I am probably misled by the “All” tab:

1 Like