Plan gifts together without spoiling the surprise

Save gift ideas for your loved ones, share them with family or friends, reserve the one you are giving and set up a shared gift fund: the person being celebrated sees none of it, and nobody in the group gives the same gift twice.

100% free, no ads.

The story

Why I built Pack-ideo

Every birthday, every Christmas, it was the same story. Two people bought the same gift. The group collection got lost in a message thread where nobody knew who had paid what any more. And sometimes the surprise fell flat because the person being celebrated was in the chat.

It was the same the other way round. People often asked me for gift ideas for myself, and I had to juggle what I had told one person and another to avoid duplicates. And when the moment came, I could no longer remember what I had wanted: I had never written it down anywhere.

I looked for a simple tool to handle this. The ones I found were full of ads, cost money, or did not really keep the secret. So I built it myself, in my spare time. It was also a chance to learn Rust, the language the app is written in, from the server to the interface.

Pack-ideo is the result: a place where everyone saves their ideas, where groups organise themselves, and where the person being celebrated keeps their wish list without ever seeing what is being planned for them.

Raphaël

Free

Free, and it should stay that way

Pack-ideo is free. No subscription, no paid version, no locked features.

  • There are no ads.
  • Your data is not sold.
  • There are no analytics tools and no ad trackers.

Donations, later on?

Running a server costs money. For now, I am focusing on improving the app before setting up a donation system. If it happens, the app will stay free for everyone, whether you donate or not.

In four steps

How it works

  1. Add a loved one.

    With their phone number, even if they do not have an account yet. You can add a date: a birthday, Christmas.

  2. Create a group around them and invite people.

    Family, Partner, Friends, Colleagues, Club or Other, with any name you like. Everyone saves their ideas, votes for their favourites and chats in the group.

  3. Reserve with “I'll take it”.

    Everyone who can see the idea knows it is taken: no duplicate gifts. A few days after the occasion, the reserved idea is marked as “given” and archived, so nobody gives the same thing again the following year.

  4. Start a gift fund for a group gift.

    On a reserved idea, like Splitwise or Tricount: one person buys the gift and enters the price, the others chip in with a fixed amount or an equal share, and everyone marks what they have paid back.

And the person being celebrated? Once they sign up, they keep their own wish list and choose who can see it.

Visibility

Who sees what

A gift idea is visible only to the people you share it with. The server checks these rules on every request, not just the app on your phone.

In the diagrams, Léa is the person being celebrated. Marc, Jean and Paul are planning gifts for her, in the Family and Friends groups.

Your ideas stay yours Two separate bubbles, each labelled “Only you”. In the first, Marc and his idea “Pottery class”. In the second, Jean and his idea “Cookbook”. A padlock separates them: Marc and Jean cannot see each other's ideas. The arrows towards Léa, the person being celebrated, are crossed out: Léa sees nothing. Only you M Marc Pottery class Only you J Jean Cookbook L Léa celebrated Léa sees nothing
Marc and Jean cannot see each other's ideas. Léa sees nothing.
A loved one, no group

Your ideas stay yours

You have added Léa to your loved ones without creating a group. The ideas you save for her are visible only to you. Jean may have added Léa too: he sees his own ideas, never yours.

An idea lives in the groups you share it with Two overlapping bubbles: “Family” at the top, “Friends” at the bottom. Marc is in the shared area, a member of both. Jean is in Family only. The idea “Bookshelf”, which Marc shares with Family, carries the badges “Reserved”, “+2” for the votes and “Gift fund”. Paul is in Friends only, with the idea “Surprise weekend”. On the Friends side, the Bookshelf's spot is empty: Friends cannot see the Bookshelf. Léa, the person being celebrated, stands apart, outside both groups. Family Friends Bookshelf Reserved +2 Gift fund J Jean M Marc P Paul Surprise weekend Nothing here L Léa celebrated
On the Bookshelf: its reservation, its votes (+2) and its gift fund, in Family only. On the Friends side, nothing here: Friends cannot see the Bookshelf.
Two groups around Léa

An idea lives in the groups you share it with

Marc is in “Family” and in “Friends”. He shares “Bookshelf” with Family only: for Friends, this idea does not exist, not even its reservation, its votes, its gift fund or its chat. If someone leaves a group, they lose access to the ideas shared with that group, including their own.

The surprise stays safe In the centre, Léa's screen. She sees the names of two groups, “Family” and “Friends”, without their content, and her circle: Marc D****t (Family and Friends), Jean M****n (Family) and Paul B****d (Friends), each with a masked phone number. Around the screen, greyed-out, crossed-out cards never get in: ideas, reservations, votes, gift funds, chats, occasions. Ideas Reservations Votes L Léa's screen Family Friends Your circle M Marc D****t +33 6 •• •• •• 41 J Jean M****n +33 6 •• •• •• 41 P Paul B****d +33 6 •• •• •• 41 Gift funds Chats Occasions
Everything around the egg exists, but never reaches Léa's screen. Her circle becomes visible once she signs up. Coral dot: Family. Yellow dot: Friends.
What Léa sees, and what she never sees

The surprise stays safe

Léa never sees the ideas saved for her, nor the reservations, votes, gift funds, chats or occasions being planned. She cannot be invited into a group formed around her. Once she signs up, she sees the names of those groups, such as “Family” or “Friends”, and who is in her circle: first name, masked surname, masked phone number and each person's groups, so she can decide who sees her list. Nothing that is said or planned in those groups reaches her.

Léa chooses who sees her list Léa, the person being celebrated, keeps her wish list. Three arrows start from her. Marc is “Accepted, with list”: he sees the wishes. Jean is “Accepted, no list”: he stays in his groups but does not see the list. Paul is “Declined”: his arrow is crossed out, he leaves the groups around Léa and keeps his ideas private. If he taps “Join a group”, all he reads is “That's not possible right now.” L Léa Her list Accepted, with list M Marc Accepted, no list J Jean Declined P Paul Join a group That's not possible right now.
  • Marc sees the wishes.
  • Jean stays in his groups but does not see the list.
  • Paul leaves the groups around Léa and keeps his ideas private.
Léa's wish list

Léa chooses who sees her list

Once she signs up, Léa keeps her wish list. At first, nobody can see it. For each person in her circle, she chooses: accept with her list, accept without her list, or decline. She can change her mind at any time. A declined person leaves the groups formed around Léa and keeps their ideas private; if Léa accepts them again later, they do not return to those groups on their own. No message tells them they have been declined: if they try to create or join a group around Léa, all they read is “That's not possible right now.”

Joining an existing group The “Family” group contains Marc, its admin, and Jean. Paul, outside, sends a request to join the group. Marc accepts or declines it. If Léa, the person being celebrated, has signed up, Paul appears in her circle as soon as he asks, pending her decision. Once accepted, Paul is in the group. P Paul Request to join Family Accept Decline M Marc admin J Jean P Paul Once accepted L Léa celebrated pending
If Léa has signed up, Paul appears in her circle as soon as he asks, pending. Once accepted, he joins the group.
Request to join

Joining an existing group

If Léa is one of your loved ones, you see the names of the groups formed around her. You can ask to join one: the group's admins accept or decline. If Léa has signed up, your request also appears in her circle, and she decides whether you see her list. You can also create your own group.

Security

Security and privacy

Pack-ideo exists to keep secrets. Here is how it does it, in practice.

  • Security first.

    Every request goes through the server, which checks who you are and what you are allowed to see. An idea you are not allowed to see never leaves the server: not the idea, its photo, its reservation, its fund or its chat.

  • No password.

    You sign in with your phone number and email address. You receive a link by email, valid for 15 minutes and for one use only. The server does not keep the link: even someone reading its database could not use it to sign in.

  • Nothing to guess.

    When you sign in, the response is the same whether or not the number and email match an account. When you sign up, the app never says whether an email address is already in use. One exception: if your phone number already has an account, it says so and shows the linked email address masked, to help you sign in. The number of requests is limited, to slow down abuse.

  • Your devices, under control.

    In “My account”, you see the list of your signed-in devices and can sign one out, or all of them at once.

  • Your surname, masked.

    Once you sign up, other members see your first name and your masked surname, for example “Marc D****t”. Your full name is visible only to you and to the service administrators, who need it to help a user or handle an account recovery request.

  • Your birth year stays private.

    Your date of birth creates your “Birthday” occasion, which members of the groups formed around you can see. They see the date of your birthday, never your year of birth. Only you and the service administrators can see it.

  • Protected photos.

    An idea's photo is only sent to people who are allowed to see the idea. On upload, it is resized and the hidden details inside it are removed, such as where it was taken.

  • Cleaned-up text.

    Idea descriptions (bold, lists, links) are cleaned by the server: no script can slip in.

  • Safe link previews.

    When you add a link to an idea, the server fetches the page's image. It refuses any internal or private address, limits the download time and size, and accepts images only.

  • Limited, logged administration.

    The admin tool never shows the content of ideas or chats: only counts (groups, loved ones, ideas). It gives access to names, phone numbers, email addresses and dates of birth, and lets them be corrected, to help someone who has lost access to their mailbox. Every change made by an administrator is recorded in a log, with the old and the new value.

  • An encrypted connection.

    Everything between your device and the server is encrypted. Nobody along the way can read it, even on public wifi.

  • Where your data lives.

    The server is hosted by OVH, a French company subject to the GDPR. The data is stored there, in Frankfurt, Germany, photos included.

FAQ

Frequently asked questions

Is Pack-ideo really free?

Yes. No subscription, no ads, no paid version. An optional donation system might come later to pay for the server, but the app will stay free.

Can the person being celebrated see the gift ideas saved for them?

No, never. They see none of the ideas, reservations, votes, gift funds or chats about them. Once they have signed up, they only see the names of the groups formed around them and who is in them, so they can choose who sees their wish list.

Do I need to install an app?

No. Pack-ideo opens in your browser. On your phone, you can add it to your home screen from the browser menu: it then opens like an app.

Do I need a password?

No. You sign in with your phone number and email address, then click the link sent to you by email. It is valid for 15 minutes and works only once.

Does the gift fund handle the money?

No. The gift fund keeps track of who chips in and how much, like Splitwise or Tricount. One person buys the gift, the others pay them back however they like and mark it in the app.

Can I plan a gift for someone who doesn't have an account?

Yes. Add them with their phone number. If they sign up later with that number, their place is already waiting for them, and they still cannot see the ideas saved for them.

How do I avoid giving the same gift twice?

When someone reserves an idea with “I'll take it”, the other members who can see it know it is taken. A few days after the occasion, the reserved idea is archived as given, so you remember it next year.

Does it work for Christmas, a birthday, a farewell?

Yes. You add the occasion and its date to the loved one in question, just for you or for a group. The birthday is created automatically from the date of birth, once the person has an account.

Ready for the next birthday?

Create your account in a minute, add a loved one and save your first idea.