Popup for donations is interfering with site performance

After every exercise, there’s a pop-up window asking me to donate. I respect that you need donations to keep this site going-- I am grateful for this site and once I get a job (I am currently disabled and unemployed, and using FCC among other things to retrain and find employment), I absolutely intend on giving back.

However, the popup window is taxing my aging computer, overheating it and slowing my browser way down, along with wasting my precious bandwidth and data.

If FCC is about helping anyone learn to code, please please please be considerate of those of us who are using older devices and slower connections with data caps, and change this popup to show less frequently, or maybe consider removing it entirely in favor of a much less invasive banner on each page or something. Popups are annoying and passe anyway :slight_smile:

Aside from any impact on performance or data usage, it’s really annoying.

I frequently see the popup several times in a short (<1h) session. It’s too much.

Annoying people tends to discourage them from sending you money… just saying. Actually, I would happily pay a one-time donation to make it go away forever! Alternatively, it would be nice to get a ‘Don’t show this again for X days’ checkbox.

Something to think about…

I cannot reproduce either issue you are pointing out @jmf. The logic for showing the donation modal is located here. I have extracted the relevant code below:

export const shouldShowDonationSelector = state => {
  const completedChallenges = completedChallengesSelector(state);
  const completionCount = completionCountSelector(state);
  const currentCompletedLength = completedChallenges.length;

  // the user has not completed 9 challenges in total yet
  if (currentCompletedLength < 9) {
    return false;
  // this will mean we are on the 10th submission in total for the user
  if (completedChallenges.length === 9) {
    return true;
  // this will mean we are on the 1st submission for this browser session
  if (completionCount === 0) {
    return true;
  return false;


I have just completed the first three challenges in the HMTL section and only saw the modal once after the first completion.

Can you provide any further details? Challenges affected etc…

@Lewis65, The donation modal should only show once per browser session, are you using multiple tabs/windows when using freeCodeCamp?

It must be that. I work in small chunks (e.g., on a break at work, then after work, and again in the evening). I don’t want to come off as a jerk (I appreciate that FCC is indeed free and a lot of work goes into it, and it deserves support) but it seems like there could be a way to show the modal less often so it doesn’t feel so spammy for some users. Since it shows on the first challenge completion for each session, you’re therefore seeing it every time you use the site, which gets quite old if you are using the site multiple times a day for short amounts of time.

It might be nice to set something that dismisses the modal for a few days. Not sure how that could be implemented, maybe a cookie?

Thanks for the feedback.

Please take a look at this article, and I think it will give you some insight into what these donations from supporters are going toward:

@Bouncey javascript-heavy sites are rough on my older computer (a mid-2009 macbook pro, using firefox). I do the challenges but anything more involved than that (like adding an extra popup before i can move on) is just rough.

i have a slightly newer laptop running ubuntu that runs much smoother but then i run into the connection problems: my source of internet is a tethered cell phone, so i’m wasting data with popups, and my connection isn’t exactly google fiber here, but it’s plenty for normal FCC use and web development.

i do use multiple tabs and often i’m working in a private browser window, but also work in pieces throughout the day, and can do more than 10 challenges in a day, so I guess I’m just seeing it as often as the code intends me to… which to be honest, is not a very accessible design.

@QuincyLarson this article is really interesting, thanks for sharing. (I am especially excited about your plans to migrate away from FaceBook, because I am not a FaceBook user and I don’t think FaceBook is the best platform.)

I really do love FCC and value this work. As I said above, I am disabled. My background is in chemistry, and due to disabilities, I am no longer able to work in that field. I’ve always wanted to get more involved with computers, and this kind of work is extremely accessible for me, which means it’ll be easier for me to get and maintain employment, if I can teach myself enough. Because I am changing careers later in life and on a limited income, I can’t just go back to college to get (another) degree and have an easier time finding work. I rely heavily on tools like FCC for affordable self-directed learning, and FCC is among the best I’ve found. In fact, I’d say learning via freeCodeCamp has been a more positive experience than about 90% of my undergrad and graduate university education experiences combined.

I hope everyone who is able will contribute generously. And I certainly intend to when I’m back at work and not struggling to get by.

Interesting article, thank you. I think transparency on what donations go towards is key.

My comments were not so much in the vein of “paying for things is lame” but trying to strike a balance between exposing users to the choice to donate frequently, and yet infrequently enough that it doesn’t annoy people or desensitize them to the request.

For example, Wikipedia asks for donations once a year and I feel it’s much more effective because they usually are not requesting any support. They usually hit their goal in ~40 days for an entire year. I know the scale of users/expenses/etc is totally different, and a once-a-year model is completely impractical for something growing so fast, but I wonder if less frequent requests like this would actually result in more donations…? Asking less often makes the ask more salient, but gives people fewer opportunities to donate.

Just thinking out loud… but the frequency that it’s currently shown at seems like it would simply lead to users habitually dismissing it. Maybe it’s something worth split testing?