Tracking progress on FreeCodeCamp with Beeminder!

I’ve started and stopped FreeCodeCamp many times over the past several years, and am two measly projects away from getting my Responsive Web Design Certification. As close as I am to finishing the certification, I haven’t logged into the site in months. I know that I’m unlikely to unless I can track my progress in Beeminder because this seems to be the only way that I get anything actually done, haha.

Ideally there would be an easier way to do this, but here’s what I’ve figured out so far:

Accounts You’ll Need

  • FreeCodeCamp
  • URLooker
  • Beeminder


  1. Set up a Do-More goal on Beeminder.
  2. Make an IFTTT Applet with Webhooks and Receive a web request as the “This” trigger.
  3. Set the Event Name to something like FCC_points.
  4. The “That” action is adding the data to Beeminder. If you’re using the same point-tracking setup that I’m describing, you’ll want to send Value2 as the Datapoint value.
  5. Go into the Webhooks settings and get your key. You’ll see something that says URL: IFTTT Maker Webhooks. Copy the LongStringOfNumbersAndLetters part.
  6. In URLooker, there’s a form for the page you want to monitor. Paste in the LongStringOfNumbersAndLetters part. The other settings should be filled in similarly to this, obviously with your own username in the URL.
  7. Go make some progress in FreeCodeCamp! Once you’ve completed a single lesson, go into URLesson and click Check Now. You might have to do the same on the IFTTT applet. Then refresh your Beeminder goal. (Impatience is absolutely essential!!)
  8. Enjoy finally being super motivated to finish all of FCC! :slight_smile:

You could easily do this with the streak count as well, but I thought tracking points would be more realistic for me. This should work for any other site with a similar setup and I’m planning on trying KhanAcademy next.


Wow, URLooker is the app I never knew I needed until literally just now; I had hacked together a custom script running on heroku using a python wrapper to the Beeminder API to mind my lichess games and now I realize I could have just made a URLooker check and an IFTTT applet… Amazing!

Anyway, I got this working for myself with the following steps:

  • Create a new odometer goal on Beeminder.
  • Make sure my public profile on freecodecamp includes my total points, so URLooker has something to look at.
  • Create a URLooker account.
  • Create a new check pointed at my freecodecamp profile, using the following fields:
    – URL:
    – name: irrelevant
    – IFTTT webhook key: (found in the settings of the webhook channel on IFTTT
    – IFTTT Event Name: fccPoints
    – Page Area: .points
  • Create a new IFTTT applet using Webhooks as the ‘this’ field.
  • Event name should be fccPoints, or whatever you used on the URLooker check.
  • ‘That’ field should be beeminder, pointed at your new odometer goal, with the datapoint value set to NUM[{{Value2}}]

Everything should now work peachily! (using ‘odometer’ as the goal type instead of do-more ensures that the beeminder data exactly tracks the data as expressed on freecodecamp).


I managed to make everything work, but I have a problem. The values Beeminder receives are not one at a time, but rather it adds each time the value of the total number of points I have in FreeCodeCamp. This is what I mean:

What I need is for it to just update one point for each completed lesson. Any thoughts on how to do it?


1 Like

I don’t know how to modify the original thing to do that, but you can set up an odometer-style goal and it should be OK that the number added is the total.

1 Like

Thank you, although that doesn’t work for me, because I think setting an odometer-style goal is a premium feature (which I don’t have) :frowning_face:

1 Like

As an approximation, if you’re using IFTTT to add the datapoint to Beeminder, then you could add 1 point every time the event happens.

Unfortunately, it looks like sometimes you get an event without the point total changing so depending on how often that happens, your total will be wrong… :frowning:

Using Zapier instead of IFTTT would let you filter those out, not sure whether that violates their free plan though.

If you email and ask nicely, they might convert your goal type in the spirit of learning whether the infinibee plan is going to be totally worth it.

1 Like

@jagr21 They have done it for me. And odometer goals are one of the six standard ones, so it should be fine, I think.


Resurrecting this wonderful thread to announce that we have a soon-to-be-official beta-testable built-in freeCodeCamp integration! The “secret” URL to try it is


Could we get the last lesson done (title and URL) as the description of the data point? If the “timeline” setting is set to public, you can parse this , e.g.