Cakeday! Celebrating birthdays and anniversaries


(Alan Tan) #1

Continuing the discussion from You say it's your birthday?:


  • Emojis displayed can be customized
  • Automatically uses join date, adds optional birthday field in user prefs
  • Browsable directory of anniversary / birthdays

Happy Birthday E-mail?
Why do I have the cake next to my name?
Reputation Plugin Version 0.2
Babble - A Chat Plugin [ARCHIVE]
Date Type On Custom User Fields
Discourse SSO in Nginx
User Preferences | Date of Birth
Advice for getting my little game dev community "out there?"
(Mitchell Krog) #145

Love this … saw a birthday cake pop up next to my name today on Discourse forums and promptly installed this plugin on my own forum. Well done.

Silly question, installed the plugin, rebuilt the app, the plugin is installed but where and how do I set the custom field needed so a user can enter their birthday?

(Régis Hanol) #146

Once installed, your users will be able to set their birth date in their preferences. If they do not set a birth date, their join date (aka anniversary) will automatically be used, so no special configuration is necessary from the user’s perspective.

(Daniela) #149

A suggestion to increase the usability of this plugin.

Add the ability for all the users (on their profile) to receive by @system (or discobot) a notification or a PM relative to “Today’s Birthday”.

And maybe a separate box to check for anniversaries for those sites that need it.

EDIT: happy birthday @zogstrip :rofl:

(Jeff Atwood) #150

I removed a lot of the old obsolete discussion here from much earlier versions of the plugin.

Some recent changes from today and yesterday:

  • All birthdays / anniversaries displayed are using the local timezone of the user, so there’s no longer UTC confusion. There were some pretty nasty bugs around this in previous versions. We don’t even show this page to anons, so only logged in users can view it anyway.

  • Display now uses sub-tabs for today, tomorrow, upcoming, etc so we no longer need to cap at 20 users (this was very confusing) and of course it lazy loads as you scroll.

  • All user lists are displayed in likes received, then date order, so the most “popular” members of the community will be at the top of the birthday / anniversary lists. Prior to this it was in userid order which is effectively join date.

  • In the headers, we display actual dates instead of “Today” and “Tomorrow” and “Next Week” so it’s clear exactly what date(s) we are referring to.


I installed this plugin today and am getting an error.

When the user goes to select their birthday they can select the month, but all dates are highlighted (as if they are selected) preventing a user from selecting a specific date. I tried searching for a solution but came up empty.


(Joshua Rosenfeld) #152

@joffreyjaffeux I can reproduce this here on Meta.

(Tobias Eigen) #153

I can also repro on my site. thanks for finding the bug!

(Joshua Rosenfeld) #154

This was likely fixed here: Discourse Meta.

(Anton) #155

Translation to Russian


Hi! Two questions:
1- Is it possible to send an email to everyone with birthday update? Like "Hi, today’s birthday: Paul, Adam"
2- Is it possible to change order on cakeday page, Birthday first than Anniversary second.
Great plugin tho!

(Alan Tan) #157

This is not possible at the moment.

Not possible at the moment but could be extracted into a site setting

(Uwe Keim) #158

I delete my accounts immediately on all forums that send me birthday e-mails.

This is such an awfully bad habit that I do hope this is never implemented here.

(Joshua Rosenfeld) #159

We currently display the user’s anniversary/birthday date under their name in the cakeday directory. While this makes sense for the upcoming and all tabs, it seems unnecessarily repetitive on the “today” and “tomorrow” tabs (where all the dates are identical).

Can we suppress the date under each user on “today” and “tomorrow”, while continuing to display it on “upcoming” and “all”?

(Jeff Atwood) #160

This is kinda necessary because of local timezones. Otherwise it is unclear which “tomorrow” and “today” you’re talking about. Remember @hawk is fully a day in the future from our perspective, etc.

(Joshua Rosenfeld) #161

I don’t follow. We’re not discussing times, but dates. Yes it is already “tomorrow” for Hawk, but when looking at the page “May 7” is very clear to me. These are users who signed up on May 7, regardless of timezone.

Hawk joined Discourse on Jan 23. I’d therefore expect to see her on the list of anniversaries for Jan 23, on my Jan 23. Yes it may be Jan 24 locally for Hawk, but it’s still Jan 23 for me.

I don’t see the need to display 201x/05/07 64 times on the same page. Even with timezones I only expect to see “today’s” date on that page. I should never see 2 dates listed as “today”.

(Jeff Atwood) #162

And you’d be able to tell that by reading the screen, which is rendered relative to your local timezone. We went through hell with @tgxworld to get this where it is, so I am not inclined to change it. There Are Reasons.


If possible, could you add the ability to change the date format to international rather than US? maybe have the option for DD/MM/YY(e.g. 01/06/18), MM/DD/YY(e.g. 06/01/2018) and DD MMM YYYY (e.g. 01 Jun 2018)?

Also, the ability to change which corner the flair displays in would be handy! Thank you :slight_smile:

(Régis Hanol) #164

YYYY MM DD is the international format :wink:


I know that, that’s why i said:
‘change the date format to international’
‘maybe have the option for DD/MM/YY(e.g. 01/06/18), MM/DD/YY(e.g. 06/01/2018) and DD MMM YYYY (e.g. 01 Jun 2018)?’

They are 2 separate requests.