Back to Home

Resurrecting the Magic: Building an AI-Powered Santa Tracker

FindSanta.app Interface

When Google sunsetted their beloved Santa Tracker, they didn't just turn off an app—they interrupted a family tradition. My son Jack and I decided we weren't going to let that happen.

The Origin: From Streamathon to Tradition 🎄

For years, our family tradition was watching Santa get closer to our home on Christmas Eve. When the official tracker went dark, Jack stepped in as the Lead Product Manager. He helped me map out exactly what features we needed to make it feel "right."

Last week, I ran an AI Santa during a 24-hour streamathon that the community absolutely loved. Seeing that response, I knew I had to democratize that technology. I wanted to give every family the chance to let their kids have a real, jolly conversation with Santa—and maybe even help a few kids stay on the "Nice List" this year!


1. Architecting the "Brain" of Santa 🧠

The core challenge was orchestrating a multi-modal AI pipeline that felt like a human conversation. We had to bridge three distinct neural networks into a single, cohesive experience with ultra-low latency.

The AI Orchestration Pipeline
// 1. OpenAI Whisper: "Santa's Ears" (Speech to Text)
const transcript = await whisper.createTranscription(audioBlob);

// 2. GPT-3.5: "Santa's Heart" (Contextual Response Engine)
const gptResponse = await openai.chat.completions.create({
    model: "gpt-3.5-turbo",
    system: "You are a jolly, 8-bit Santa who knows about the Nice List..."
});

// 3. ElevenLabs: "Santa's Voice" (Neural TTS)
const voiceBuffer = await elevenlabs.generate({
    text: gptResponse.choices[0].message.content,
    voice_id: "santa_voice_id"
});

2. The "Push-to-Talk" Mobile Hurdle 📱

Engineering a "walkie-talkie" on the web is deceptively difficult. Mobile browsers are notoriously protective over AudioContext. If you don't explicitly clean up your MediaRecorder tracks, the hardware locks up, and the next attempt to "call" Santa will fail silently.

Mobile Resource Management
// Releasing the mic hardware track by track
const cleanupMediaRecorder = () => {
    if (mediaRecorderRef.current) {
        // Essential for iOS Safari to allow subsequent recordings
        mediaRecorderRef.current.stream.getTracks().forEach(track => {
            track.stop();
            track.enabled = false;
        });
        mediaRecorderRef.current = null;
    }
};

3. Tracking in the 8-Bit Era 🗺️

We didn't just want a voice app; we wanted a full tracker. We built a React engine that polls the Google Santa Tracker Firebase API. It is built to be "future-aware." Since it's currently the off-season, the app maintains a "Pre-Flight" state, but the moment the clock hits December 24th, it shifts into high-gear tracking mode.

Live Tracking Initialization
// Automatically switching to live API data on Christmas Eve
const isChristmasEve = now.getMonth() === 11 && now.getDate() === 24;

useEffect(() => {
    if (isChristmasEve) {
        const liveTracker = setInterval(fetchSantaRoute, 10000); // 10s polling
        return () => clearInterval(liveTracker);
    }
}, [isChristmasEve]);

Conclusion: Our Gift to You

Sometimes the best things we build aren't for the market, but for the living room.

This project started as a way to fix a broken tradition for Jack, but I’m opening it up as a gift for everyone. I hope your kids enjoy talking to Santa as much as we enjoyed building him.

Experience the magic at FindSanta.app. Happy Holidays! 🎄

Jason Torres © 2025. All rights reserved.