August 27, 2026 · Ivan Elias Avila

Secret Santa in Junti: a draw nobody can peek at

Secret Santa season is coming. Junti now runs the draw: nobody draws themselves, everyone sees exactly one name, and not even the organizer sees the pairs.

Cinco personas en círculo, cada una con una flecha hacia la siguiente: el sorteo del amigo secreto como lo arma Junti — un solo ciclo, nadie se saca a sí mismo y nadie le regala a quien le regala.

Secret Santa season is coming around, and with it the part nobody enjoys: folded slips of paper in a hat, somebody who draws their own name and has to put it back, two people who could not make it the night of the draw, and a chain of messages to patch up what came out wrong.

Junti now handles that. Secret Santa is a new kind of event: you set the plan up, people confirm, and once everyone is in, you run the draw.

You create it like any other event

Pick the type and that is it. The rest of the form is the usual one: name, date, place.

El formulario de nuevo evento en Junti, con 'Amigo secreto' elegido en el campo Tipo de evento.
El formulario de nuevo evento en Junti, con 'Amigo secreto' elegido en el campo Tipo de evento.

On the second step there is one extra field, the gift budget. Optional, but it is the rule that prevents the most awkwardness: without an agreed amount, one person brings a token and another brings a real gift. And it is not a bill — nobody transfers that money to anybody, it just says how much to spend.

The draw is a ring

Shuffle everyone, hand each person the next one in line, and let the last one close the circle. That guarantees two things: nobody draws themselves and, with three or more people, there are no mutual pairs — nobody gives to the person who is giving to them.

The second one matters more than it sounds: a mutual pair unravels itself, because the moment one of the two opens their gift, the other one knows everything.

Not even the organizer sees the pairs

The console does not show who gives to whom. It shows that a draw happened, how many people were in it, and when.

El panel del organizador: dice que el sorteo se hizo y cuántas personas entraron, y avisa que ni el organizador ve las parejas.
El panel del organizador: dice que el sorteo se hizo y cuántas personas entraron, y avisa que ni el organizador ve las parejas.

The reason is simple: an organizer who can look stops being the person who ran the draw and becomes the person everybody asks. We would rather the honest answer be "I can't see it" than "I shouldn't tell you". We took the cost knowingly: if somebody loses their name, you have to draw again, and the app says so right there.

Everyone sees exactly one name

On their own page, and behind a tap — because an event page gets opened at the table where the group is sitting, and a name that shows up on its own is a secret handed to whoever is glancing over.

La tarjeta 'Tu amigo secreto' en la página del evento: el presupuesto, el nombre que le tocó a esa persona y lo que pidió.
La tarjeta 'Tu amigo secreto' en la página del evento: el presupuesto, el nombre que le tocó a esa persona y lo que pidió.

Underneath sits what that person asked for: the message anyone can leave on a Junti event becomes a wish list here.

How to run one with your friends

  1. Create the event and pick the Secret Santa type.

  2. Set the date and place for the exchange, and the budget if you want one.

  3. Share the link.

  4. Wait for people to confirm — the draw only deals among confirmed people, and you need at least three.

  5. Draw. Everyone gets a notification and each person opens their page to see their name.

One tip: draw once everyone is in. Anyone who confirms later is left out, and including them means drawing again, which changes everybody's person.

Try it

It is live at junti.vennet.dev. Create the event, invite the group, and leave the slips of paper alone.

One thing is half-built: exclusions, for telling the draw that two people should not get each other. The algorithm already understands them; what is missing is the screen to write them in.

Written by

Ivan Elias Avila

← All posts