TL;DR: I made an Easter Bunny Tracker from the ground up with HTML and JavaScript. It then proceeded to kick ass as the best Easter Bunny Tracker online and got surprisingly popular for the first run.

This page will be retyped, one day. 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. Bootstrap was used for an overlay to show three information boxes – Last seen, next stop, and baskets delivered. Google’s Google Maps JS API was used to actually show where the Easter Bunny is. Route data is provided in a .json format, and then properly parsed on tracker load, with the position & information depending on what the current Unix time is.

To keep the tracker up-to-date during tracking, I implemented many functions, due to a large variety of potential situations. Anytime the user returns to the page we check to see if we need to update position data, if these functions didn’t exist the tracker would fall way behind even if you tabbed out for a few minutes. Additionally, functions keep the position information, three box information, and baskets (indicating a stop) updated during active usage. Additionally, I had to support Safari’s “back-cache” system. In short, the “back-cache” system will cache previously visited pages. This means that when a user back-paged to a previously visited page, Safari loaded up the cached page. This caused a massive issue with automatic redirects – a user could visit pre-tracking, when instead the tracker was on the actual tracking phase.

Pre-tracking was built-in to the tracker with a simple purpose. For three hours ahead of tracking, users could get status updates on how the Easter Bunny was preparing for the journey ahead. “Stop” information was provided in a .json format, and generally shared a lot of code with the tracker. Status updates were placed at intervals of 10 minutes for the first 1-2 hours of pre-tracking, then intervals of 5 minutes for the remaining hour of pre-tracking. In the end, pre-tracking was a huge success for the tracker! The tracker went live 3 hours before anyone else, and kept users engaged and pumped up for tracking.

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.

To ensure proper redirection across the site, a Unix time-based system was implemented. In short, depending on the current Unix time, you’d be redirected to the proper destination. This ensured users got to the right page across the various stages of tracking.


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. Thanks to the architecture of the tracker, I was also able to determine that just about 100-200 users were on the tracker when tracking started at 5 AM EDT on April 20, 2019. Here’s the proof:

(Unfortunately, the analytics for the true count of people on the site when tracking started is a bit hard to find. Google Maps queries are on a per-hit basis, but the screenshot includes data from 4:06 AM – 5:06 AM, meaning the true number likely is somewhere around 100-150. The Apache web log shows some detail, but only from non-Cloudflare cached IPs, which totals about 5-10 unique users. Cloudflare themselves recognized ~140 users in the tracking start window, but also includes excess data. 200 is the high estimate, ~100 is the low estimate.)


During the 28 hours of tracking (25 hours + 3 hours of pre-tracking, where status updates on preparations were shown), the site ran flawlessly. During the two redirection periods, where I anticipated site issues, Cloudflare, the CDN used, handled everything like a champ. All throughout the day, people were logging into the site, and the peak of visits came around 10 PM, when a lot of users from the Americas wanted to see where the bunny was. Additionally, TrackEasterBunny started having massive issues during the peak of tracking, since their site is based on WordPress. Their SQL database was overloaded, which meant that the site was down for nearly 5 hours.

This meant that for nearly 5 hours, my site was the only Easter Bunny Tracker online.


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:

At this time, I haven’t released the source code for the site. I plan to do so in the future, but when I write this post, I’m extremely busy, and don’t have the time to release source code. When I release the source code, I’d like for there to be proper documentation on how the tracker works. However, adding this documentation increases the time it’ll take for the tracker code to release, but I hope you can understand why.

The ETA for source code release is sometime in early June 2019, but this date may change.