Secret Santa

DECEMBER 2023

entertainment

Context

Secret Santa is an experience designed to bring festive delight to the holiday tradition of gift exchange matching.


I started it as a side project in December 2023. The idea was to create an interesting way for my colleagues and I to match one another.


Rather than solving a specific problem, this project was about elevating a simple task into an experience worth remembering.


The constraint was time; I had less than two weeks to design and ship something people could actually use.


To overcome the time constraint, I designed the entire experience as an interactive prototype using ProtoPie, hosted it in the cloud, and made it accessible to anyone with the link.

Design Goals
  • Keep it simple: No accounts, no onboarding. Just open and play.


  • Make it feel magical: Use illustrations, effects, and interactions to design a festive, delightful experience.


  • Ship it fast: Go from Illustrator → Figma → Protopie to deliver something functional in short time.

Designing for Delight

The festive illustrations, animations and sound effects keep the experience feeling alive; snow, Santa Claus hats, Christmas elements, snow capes, holiday colors, and seasonal iconography remind you it's a Christmas experience.

Gathering some illustrations in Illustrator
Collection of festive illustrations used throughout - Santa stickers, gift boxes, snow elements, etc.
Designing in Figma
Figma canvas showing Secret Santa screens
Exploring sound effects
Finder window showing several sound effects
Making It Functional
  1. Opening Sequence & Intro Animation

Using ProtoPie's timeline, I sequenced multiple animations to fire on Start Trigger:


  • Logo reveal and scale

  • Thrindle branding fade-in and movement

  • Background color transition

  • Santa elements appearing

  • Audio playback for the Christmas intro music

Scene 1 showing the Start trigger timeline with reveal-logo, Scale-logo, reveal-thrindle, Move animations, etc.

Each santa element animation was offset by milliseconds to create a smooth introduction instead of everything appearing at once.

[DETAIL SCREEClose-up of the trigger chain showing timing offsets between animations
  1. Interactive Elements & Participant Input

For each touchpoint (tapping buttons, selecting participant numbers, navigating back), I created Tap Trigger chains that included:


  • Sound effects

  • Screen transitions with smooth jumps

  • Conditional logic to determine next steps

Scene 3 showing Start, Tap, Range triggers with associated actions

The participant selection screen used Range & Detect triggers, Assign response, Scroll detection and Paging conditions to allow you to choose between 4 or 8 participants.


Each option triggered different input field configurations on the next screen, demonstrating ProtoPie's ability to create dynamic flows.

Showing the "Back" and "Continue" tap trigger setup with Playback, Jump, and Condition actions
  1. The Matching Algorithm: Logic & Randomization

This was the technical heart of the prototype. I actually created different .pie files to test randomization separately. The protopie community was super helpful too.

.pie files

The matching system needed to:


  • Take input names (stored in variables name_1, name_2, etc.)

  • Randomly pair participants without duplicates

  • Display results clearly

  • Allow reshuffling on demand


Using ProtoPie's Assign response with formulas, I created randomization logic:


  • Conditions checked that no participant was assigned to themselves

  • Detect triggers monitored variable changes to prevent duplicate pairings

  • The indexOf() and length() functions ensured valid matches

Scene 8 Results screen showing the complex setup with formulas, variables (name_1, name_2, name_3, name_4), Detect, Assign, and Conditions

All participant names, results, and random values were stored as variables that persisted throughout the experience.

[Variables panel showing at the bottom left
  1. The Reveal Experience

The shaking gift box animation:

I created separate result scenes for different group sizes (4 and 8 participants) since each required different layout configurations.


Conditional logic determined which scene to jump to based on the participant count selected earlier.


Displayed Matches:

  • Text fields populated with #1, #2, …, #7, #8 pulling from the variables

  • Visual pairing indicators (gift box icons) connecting each participant to their Secret Santa match

Scene 9

The "GO HOME" and "RESHUFFLE" buttons give you control:


  • Go Home — jumps back to the home screen and resets all variables

  • Reshuffle — clears results, re-runs the randomization logic, and displays new matches without retyping names

Scene 8
Why Protopie?

ProtoPie's strength in handling variables, conditional logic, and formulas made it ideal for this project at the time.


The cloud hosting feature was crucial; I could share a single link that anyone could open on their device. This made it accessible.

Key capabilities I leveraged:


  • Variables for storing and manipulating input

  • Conditional logic and formulas for randomization

  • Timeline-based animation

  • Audio playback for festive sound design

  • Multi-scene navigation with state persistence

  • Tap, Detect, Range triggers

The Experience
  1. First Impressions

The experience begins with a splash screen, immediately establishing the connection with Thrindle while setting expectations for what comes after.

This quickly transitions into the landing screen, decorated with snow and Christmas trees that set the holiday mood.

  1. Full Intro Sequence (with audio)

A delightful Christmas-themed intro sequence. It transforms the act of opening the app into an event, making you feel like you're unwrapping something special before you even match with someone. Use your headphones!

  1. Setting Up the Game

After tapping "Start", you land on the setup screen where you choose the group size. Either 4 or 8 people.


This deliberate constraint makes the experience fast and simple. No overthinking.

After selecting the group size, you can input the names of all participants. Here, I used the names of some of my colleagues. The interface keeps this process simple.

  1. Anticipation (with audio)

The wind-blowing sound, gift box shaking, and loading animation all leading you to the reveal.

  1. The Reveal Moment (with audio)

The final screen showing the results;

  • Tosin to gift #2 (Dipo)

  • Dipo to gift #4 (Darasimi)

  • David to gift #1 (Tosin)

  • Darasimi to gift #3 (David)

What Happens Next? You have two options:


  • Return to home screen to start afresh or exit

  • Reshuffle to generate new matches if you want to try again

Final Thoughts

The prototype was shared with a few colleagues at Thrindle and online on Twitter before the Christmas break. The feedback centered on how fun and delightful the experience felt.


What worked: Prioritizing delight over minimalism created a memorable experience. Shipping a functional experience in less than 2 weeks proved that constraints can drive creativity, and designing within my skill limits in Protopie forced focus on what truly mattered.


What I'd have done differently: If I revisited this, I'd push the reveal further with a staggered animation that builds suspense before each name appears. I'd also improve the matching logic, so that participants never match themselves.


Secret Santa started as something small then became an exercise in designing for delight; proving that even simple tasks can become memorable when you prioritize intent and detail.

Credits

My Role

Visual & Interaction Designer

Create a free website with Framer, the website builder loved by startups, designers and agencies.