TL;DR: This page is out of date, and needs a rewrite. The main two issues are that this post is much too technical and confusing, and that it’s out of date. Version 3 of the tracker that was live in 2019 (what’s written about here) is massively different than Version 4 of the tracker that is going live in 2020.

I’m holding off on rewriting this page until Version 4 is released and the 2020 run is complete, so expect to see a rewrite in late April/early May 2020. is an ongoing project with a simple mission – To create the world’s best Easter Bunny Tracker.


Now, you may be asking, “Holy moly this dude is at it again with another Easter Bunny Tracker?”, and I understand where you’re coming from.

If you’re new around here, a quick history lesson of my adventures in this tracking community.


Long before I ever got into the tracking community, back in the early 2010s, I remember tracking Santa with NORAD, and falling asleep right when he hit Florida (since I live in the Northeast). I remember tracking Santa fondly, and as an older person I wanted to make sure that kids could get that same experience. It was around then that I found YouTube streams that live streamed these trackers.

So, in 2017, I rebooted my classic eastmountainfilms YouTube channel, and streamed the NORAD & Google Santa Tracker with some nice Christmas music in the background. It managed to amass 1,300 watching at peak, with over 100,000 playbacks – the top stream. Right after the stream ended, I found out that there were Easter Bunny Trackers, albeit a lot less popular on YouTube.


As I started preparing for my 2018 Easter Bunny Tracker stream, the site I was going to use, thecptrackers, went down. The only other tracker left online was TrackEasterBunny – a pretty shitty tracker. It’s still really shit. The issue is that you have to keep refreshing the site to get the latest data, and the bunny on the map doesn’t move around.

It was a good website for what it was, and I did a little investigating and found it ran WordPress. After some trips to the Web Archive, and a lot of hacky modifications (see the Custom EBT 2018 post for more info on this tracker), I had done it again. Top Easter Bunny Tracker stream on YouTube, 110 watching at peak, over 8,000 playbacks.


Christmas 2018 rolled around, and while the tracking stream didn’t exactly go to plan (botting meant that the top streams had over 6K watching unnaturally, and my stream was not first in the rankings), it did still accumulate about 650 watching at peak, and about 80,000 playbacks. As I began to prepare for the 2019 Easter Bunny Tracker Live Stream, I had a radical idea. Create a brand new tracker, built from the ground up. No WordPress, no hacks, no refreshes, and a moving Easter Bunny. And make it public for everyone to enjoy.



And that’s what I did. After 3-4 months, and a surprising amount of QA, I had a tracker that was the best online, and kicked some major ass. To avoid a whole splurge of technical details, the tracker works in a relatively simple yet complex way.

The tracker was designed with an emphasis on being as lightweight and compatible as possible with no server-side dependencies. I also put a lot of emphasis on removing all the crap that a lot of Easter Bunny tracker sites have, and rather focus on the core product of tracking the bunny. Some people complained about how boring the site was, but putting the emphasis on the core product was extremely helpful in the final direction of the tracker.

Bootstrap was used for an overlay to show three information boxes – Last seen, next stop, and baskets delivered. The Google Maps JS API was used as the map basis to show where the Easter Bunny is. Route data was compiled in a .json format, and parsed on tracker load, with code to figure out where it should be if a request comes in during the middle of the run.

To keep the tracker up-to-date during tracking, I implemented many functions to cover a variety of potential situations.

All throughout tracking, there are a bunch of functions on intervals updating the bunny’s location. The basic architecture is that as the Easter Bunny is traveling between stops (an interval), the location is updated based on how far along this interval all based on time. Baskets are also updated at varying rates – since the route data specified what the basket count was at the last stop, and what the count should be at the next stop.

Once the Easter Bunny reaches a stop, the last stop and next stop data is updated, and the baskets delivered count gets adjusted (the code tended to overshoot the delivered count slightly) as well.

During tracking, drift was really non-existent except for the baskets delivered. Over the course of a 25-hour run, the tracker fell behind by about 2-3 seconds (some of this might have been my computer clock falling behind by about 7-8 seconds).

Another quirk in development was dealing with Safari’s back-cache. The intention is good – if you hit the back button to a page you already visited, it’s sitting there in memory waiting for you. But, this was a problem with the architecture of the site, as there were different pages for the countdown, pre-tracking, and tracking. Someone could get automatically redirected to tracking, hit the back button, and land in broken pre-tracking.

Pre-tracking was built in to the tracker so that users could get status updates on the Easter Bunny’s preparations three hours ahead of launch. The page was mostly a stripped down version of the main index page, with the UI modified to support one large status box, and a smaller countdown box. A Google Map with the bunny on Easter Island was used as the backdrop. On mobile, I decided to let both the status box and countdown box exist on two separate rows, as again, the backdrop isn’t all that interesting. Similar to route data, pre-track data was specified in a .json with a similar structure.

During development, I also added a web manifest for mobile devices, meaning a user could add the tracker to their home screen so that it launches as an “app”. This actually introduced some issues with iPhone X and higher, as the bottom buttons were almost cut off due to the curved screen. One user in my Discord community reported that he added the tracker to a lot of kids devices, so the investment did pay off well.

Lastly, the tracker used a countdown page to, well, countdown to pre-tracking. Although some complained about the countdown being extremely dull, I saw that many streamers used this countdown in creative ways on their streams, which was interesting to see, and I plan to keep the countdown page super dull in the future.


So, I put it online, expecting a decent audience to come, but nothing too crazy. It was the first year of operations after all, and the site wasn’t showing up at all in SEO rankings. Turns out, I was very wrong.

The site managed to accumulate over 4,000 visits during tracking, and over 20,000 requests for site assets. I estimated that about 40-50 people were on the site when it switched from pre-tracking to tracking, which was really exciting to see.

For 28 straight hours, the site ran flawlessly. Cloudflare was able to cache about 90% of site visits thanks to the architecture. During the two redirection periods, Cloudflare handled everything like a champ. All throughout the day, many people were logging on to the site, with the peak of the visits arriving at about 10 PM EST. The best part? The other Easter Bunny Tracker, TrackEasterBunny, started having massive issues during the peak of tracking. Their SQL database was overloaded, so the WordPress site failed to work, and the site was down for nearly 5 hours.

This meant that for a solid period of time, my tracker was the only one running online. Whoops!


I was quite surprised at the amount of site hits, considering that just about 99% of all traffic was word-of-mouth (and attribution links in YouTube streams). In fact, every Easter Bunny Tracker stream on YouTube was using Combine the peak viewership of all the streams, and about ~330 people were watching my tracker on YouTube. Unfortunately, my stream didn’t do great at all. Other streams had a massive fanbase to start with, and combined with dislike botting meant I came in third. 53 watching at peak, just about 4,000 playbacks.


And that’s the story of how I made a surprisingly popular and ass-kicking Easter Bunny Tracker. It really warmed my heart to receive many messages from people on Discord regarding how their siblings were enjoying the Easter Bunny Tracker, and other messages about how people put my stream on their family TVs. The four months of development, QA, test streams, test runs, and everything else inbetween paid off well for this tracker, and I’m very happy to see that so many people had an enjoyable experience.


Of course, with the success of this year, I’m by no means sitting on my laurels. The 2020 edition of this tracker has some massive updates planned – mainly improving the actual site around the tracker. Since this tracker wasn’t intended to be public, I focused a lot of energy and effort into making the best tracking experience, and I decided to slap some FAQ and other informative pages later down the road. This was a good strategy – the only updates to the actual tracker will be route improvements & movement improvements for next year. However, many people commented that there wasn’t much to do on the site except tracking. While it was my intention to keep the site as minimal as possible, I’ve decided to add these additional features while keeping the tracker lightweight.


It’s a weird thing to say that I managed to make a relatively popular Easter Bunny Tracker, and for whatever reason make popular tracker stuff. In the end, I have a simple goal with what I do: Make the world a better place. I think this Easter Bunny Tracker made the world just a bit better come Easter, as kids around the globe were able to track the Easter Bunny’s whereabouts, get excited about the Easter Bunny, and keep the tradition alive.

And as such, will live on for as long as kids keep tracking the Easter Bunny. And I’ll keep making an experience that kicks major ass.


Missed tracking? Here’s a timelapse of the tracker in action for 2019:


This was the final analytics graph from the Google Maps API:

And the “final” analytics from Cloudflare:

(Since then, the final count of the Google Maps API hits has increased to 4,558 when I write this. Additionally, the final Cloudflare count is sitting at 2,513 unique visitors with 30,775 total requests, 195 MB data served, 166 MB data cached.)

Additionally, I kept a log of Cloudflare analytics hour-by-hour for sometime before tracking started, and while after tracking ended. Between 12 AM EDT on 4/20, until 9 AM EDT on 4/21 (3 hours after tracking ended), the final unique user count was 2,618, and the final request count was 19,529. I’m not entirely sure as to why the unique user count is higher than the final, it may be due to some data irregularity or an issue on my end. Regardless, over 2,000 people visited the site. The 4,000 hit count comes from combining the Google Maps API data (which was 3,660 at the end) with the unique user count for a few hours ahead of tracking, considering that the unique user count to Google Maps API requests ratio is generally 1-to-1.5.


Visit the site: