---
title: "Steal this idea: a Christmas gift planner"
description: "An app section that helps your customers plan their Christmas gifts, budget included, without collecting a thing. The full prompt, ready to paste."
canonical_url: "https://www.goodbarber.com/blog/steal-this-idea-a-christmas-gift-planner-a1663/"
lang: en
date: 2026-11-06
last_updated: 2026-11-06
---

# Steal this idea: a Christmas gift planner

September is behind us, the back-to-the-gym resolutions held up (or didn't), and now it's time to get ready for the holidays. To help your customers see clearly, here's an app section that takes some of the stress out of filling Santa's sack: one card per person, gift ideas that change state as the budget fills up, and a countdown to Christmas Eve. All of it generated from a single description given to GoodBarber's AI Extension Builder.

![](https://blog.goodbarber.com/_public/profile/6a/6ac86fe0c44e1457a046324ec18c6897e8e94b27-default.jpg)

[Florian Luccioni](https://www.goodbarber.com/blog/author/flo-luccioni/)PWA Developer

[Select **GoodBarber** as yourPreferred news sourceSelect **GoodBarber** as your](https://www.google.com/preferences/source?q=goodbarber.com)

Nov 6, 2026 · 11 min read

![](https://cmsphoto.ww-cdn.com/superstatic/41269/art/grande/98617627-68828023.jpg?v=1793959744.9524682)

The "Steal this idea" series: an app section we describe to the AI Extension Builder, build for real, and hand over with its full prompt at the end, ready to paste. After [the 30-day back-to-shape challenge](https://www.goodbarber.com/blog/steal-this-idea-a-30-day-back-to-shape-challenge-for-your-fitness-studio-a1584/), on to one of the busiest seasons of the year!

## The section, from the customer's side

![](https://cmsphoto.ww-cdn.com/superstatic/41269/art/grande/98617627-68828024.jpg?v=1793959746.0644646)

It all starts with a question: *Who are you shopping for this year?* The customer adds a person — a first name, "Mum", "the neighbours", whatever they like — and can set a budget, or not.

Under each person go the gift ideas. Every idea has a state button you tap to move it along: *Idea*, then *Bought*, then *Wrapped*. Bought and wrapped gifts add up in that person's budget (*€0 of €50*, with a thin bar) and in the season's total at the top of the screen.

The *Progress* ring fills as each person gets at least one gift bought. When the list grows, the cards fold down with a tap on their header, leaving just the names. A reminder line shows who still has no ideas (*1 person has no gift ideas yet*): tap it and the screen scrolls down to that person.

Maison Lumen, the shop in these screenshots, is made up for the example. Everything you see in it is fictional.

## Why this format works for a shop

The benefit is the calendar. From early November to 24 December, your customer reopens their list every time a gift comes to mind — and it's your app they open to do it. A shop window gets a passing glance, and a Christmas newsletter gets lost among all the others. A tool that's genuinely useful lands back in their hand at the exact moment they're deciding what to buy.

And it's a service, not one more promotion. The section sells nothing, pushes no product and asks for nothing in return. It saves time and keeps spending within budget. The day your customer is looking for an idea for their mother, your catalog is one tab away.

## The budget counts, and doesn't stop at the cap

![](https://cmsphoto.ww-cdn.com/superstatic/41269/art/grande/98617627-68828026.jpg?v=1793959747.0844615)

Look at Mum's card: an €80 budget, two gifts bought, €85 spent. The bar is full, the figure turns red (*€85 of €80*), and the count keeps going. It's written in black and white in the prompt: never stop counting at the budget. A bar stuck at 100% would be lying at the very moment the information matters.

Two details keep that total reliable. A wrapped gift still counts: going from *Bought* to *Wrapped* only changes the label. And when an idea with no price is marked as bought, the section immediately opens the gift's card with the cursor in the *Price paid* field. The customer types what they paid right there, so the total never goes wrong through forgetfulness.

## A list that stays on the phone

![](https://cmsphoto.ww-cdn.com/superstatic/41269/art/grande/98617627-68828027.jpg?v=1793959747.9964585)

A gift list is a list of secrets, and the section takes that seriously: everything is stored on the device, nothing is sent, nothing is shared. It says so once, in small print at the bottom of the screen: *This list stays on your phone. We can't see it.*

For phones left lying on the living-room table, the customer can lock the list with a four-digit code. When the section reopens, it asks for the code before showing anything at all.

## The prompt sentences that do the work

The full prompt is below. If you adapt it, five sentences carry the essentials: keep them.

1. **"When the total passes the budget, the bar fills completely and the figure turns to "€72 of €60" in a warning colour — never stop counting at the budget."** The worked example does the job: the generator sees exactly what to display when the budget is exceeded.

1. **"Wrapping a gift never takes it out of any total."** In our build, the first version removed wrapped gifts from the total. One sentence is enough to prevent it.

1. **"When a gift with no price becomes "Bought", its edit window opens with the cursor already in the price field."** The moment the customer knows the price is the moment they buy. The section asks for it right then.

1. **"A person is done as soon as at least one of their gifts is bought or wrapped."** "Done" has no obvious meaning. Write the rule down, or the generator will pick one for you.

1. **"The list is never sent anywhere, never shared with anyone, and never visible to us."** The privacy promise is in the prompt, and so is the sentence shown on screen, word for word.

## The prompt — steal it

Not a line of code behind this section: just a brief, handed to the AI Extension Builder. Our build took a few rounds of fixes, all folded into this single refined prompt. We checked it: pasted as is into a brand-new section, it delivers everything this article describes on the first try.

Create a Christmas gift planner section. Write every text on screen in English.

The screen is a list of the people the user is buying for, each with their gift ideas. There is no limit to the number of people. When the list is empty, it shows a single card with the line "Who are you shopping for this year?" and an "Add a person" button, and no other add button. As soon as one person exists, that card disappears and a full-width "Add a person" button sits above the list.

Adding a person asks for a name and, optionally, a budget — a plain number, shown with the € symbol. The name is whatever the user types: a first name, "Mum", "the neighbours".

Each person is a card. Its header shows the name with a small pen icon right next to it, and the number of gifts on the right ("1 gift", "3 gifts"). Tapping anywhere on the header except the pen folds or unfolds the card; folded, only the header shows, and each card remembers whether it is folded. The pen opens "Edit person": name, budget, Save and Cancel side by side, and below them a full-width "Delete person" button that asks first, then removes the person and all their gifts.

Unfolded, a card shows the money line, then the gifts, then "Add a gift idea". The money line reads "No gift ideas yet" when the person has no gift, "€45 of €60" with a thin bar when a budget is set, and "€18 spent" when there is no budget. When the total passes the budget, the bar fills completely and the figure turns to "€72 of €60" in a warning colour — never stop counting at the budget.

Each gift is one line: its name, its price if there is one, a state button, and "Edit" and "Delete" links. Tapping the state button moves it from "Idea" to "Bought" to "Wrapped", and a wrapped gift goes back to "Idea". Only those three states, always in that order. Bought and wrapped gifts count toward the person's total and the overall total; ideas don't. Wrapping a gift never takes it out of any total. When a gift with no price becomes "Bought", its edit window opens with the cursor already in the price field, labelled "Price paid".

"Add a gift idea" asks for a line of text and an optional price. "Edit" lets the user rename the gift, change its price, or move it to another person with a "For whom?" choice. "Delete" asks first.

At the top of the screen, three compact cards in a bento layout. A full-width card reads "48 days until Christmas Eve", counting to 24 December; on 24 December it reads "It's Christmas Eve". Below it, two cards side by side: "Progress", a ring that fills with the share of people who are done, with "2/3" in its centre and "done" under it; and "Total spent on gifts", the sum of the prices of every bought or wrapped gift. A person is done as soon as at least one of their gifts is bought or wrapped. No sentence under the ring.

Under the add button, when it is true, one line reads "2 people have no gift ideas yet" ("1 person has no gift ideas yet" in the singular); tapping it scrolls to the first of them and unfolds their card.

Everything lives on this device alone. The list is never sent anywhere, never shared with anyone, and never visible to us. Say so on the screen, once, in small text at the bottom: "This list stays on your phone. We can't see it."

Above that line, a "Lock this list" button lets the user choose a four-digit code, typed twice, and warns in one sentence that a forgotten code cannot be recovered. Every code entry in the section uses four separate boxes: the cursor moves to the next box as each digit is typed, and backspace moves back. Once a code is set, the section asks for it before showing anything. The lock screen offers "Forget the code and erase the list" as the only way out: its confirmation appears on top of the lock screen, and confirming erases the people, the gifts and the code, and shows the empty list. Once unlocked, the button reads "Remove the lock" and asks for the code before removing it.

From 26 December, the top of the screen offers "Start next year's list", which keeps the people and their budgets and removes every gift.

Nothing is deleted without asking, and every confirmation is a window drawn by the section, on top of everything else. Nothing flickers or flashes: a gift changing state updates in place without the list jumping or scrolling, totals recount without animating, there is no reload effect when the screen opens, and entrance animations play only on first load. Match the app's design.

## Before you announce it: three checks

![](https://cmsphoto.ww-cdn.com/superstatic/41269/art/grande/98617627-68828030.jpg?v=1793959748.8924556)

You check a generated section by going through a customer's moves. Three minutes is enough.

**The price at purchase.** Add an idea with no price and switch it to *Bought*: the gift's card should open with the cursor in the price field. Enter an amount: the person's total and the total at the top of the screen should both move.

**The wrapping.** Switch that gift to *Wrapped*: no total should change.

**The lock's way out.** Set a code, close the section, reopen it. On the lock screen, without typing the code, tap *Forget the code and erase the list*. The confirmation should appear on top of the lock screen.

In our build, it opened behind the lock screen: you only saw it after unlocking (left-hand screenshot, at the top of this part). With the prompt above, it comes up on top as it should (right-hand screenshot).

That's exactly the kind of detail you only catch by testing. The prompt above now spells it out, but if your generation lets it slip, there's no need to start over: ask for the fix by describing what you see and what you expect. Here it is, ready to paste:

"Forget the code and erase the list" doesn't work from the lock screen: its confirmation opens behind the lock screen, and I only see it after unlocking. Expected: the confirmation appears on top of the lock screen, and confirming erases the people, the gifts and the code, then shows the empty list — without ever entering the code.

The recipe works for any fix: the symptom you see, the behavior you expect, and the detail that removes the ambiguity. Here, that's "without ever entering the code".

## 26 December

The countdown has done its job. From 26 December, the top of the screen offers *Start next year's list*: the people and their budgets stay, the gifts are cleared, after a confirmation. Next year, your customer will find their list right where they left it, in your app — and they can jot down ideas as they come, as soon as the holidays are over.

## Your turn to play

People, ideas, three states and a budget: the mechanics go well beyond Christmas. A baby store can turn it into a "baby registry" section to prepare, a stationery shop into a back-to-school list per child. Wherever your customers shop for several people, the section can be rewritten by changing a few words.

## Going further

- [Prompt teardown](https://www.goodbarber.com/blog/prompt-teardown-gps-memory-and-maps-from-a-single-sentence-a1564/): we take a prompt and explain it line by line.
- [The AI Extension Builder](https://www.goodbarber.com/extensions/ai-extension-builder/): describe a section, get it in your app.
- [The 30-day back-to-shape challenge](https://www.goodbarber.com/blog/steal-this-idea-a-30-day-back-to-shape-challenge-for-your-fitness-studio-a1584/): the previous episode of the series.

## Over to you

The Christmas list is only a starting point. Describe your section the way you'd explain it to a salesperson starting in December: what the customer sees, what they tap, and what must stay true no matter what. If it can be described, it can be a section of your app: [create an app with GoodBarber](https://www.goodbarber.com/create/).

## In short

**Can I see my customers' lists?**

No. Everything stays on their phone: nothing is sent, not to you, not to us. The section says so at the bottom of the screen.

**Does the list sync across several devices?**

No — that's the flip side of privacy: the list lives on a single phone. If your customer switches devices, they start again from an empty list.

**What if my customer forgets their code?**

Nobody can recover it. The only way out is to erase the list and start over. The section warns them when they choose their code.

**Can I change the currency or the language?**

Yes, with one sentence in the prompt: replace "€" and "English" with whatever suits your customers.

**What happens after Christmas?**

From 26 December, the section offers to prepare next year's list, keeping the people and their budgets.

Follow GoodBarber on Google

[![Add as a preferred source on Google](https://portal.ww-cdn.com/portal_static/images/preferred-source/badge-en.172e670ec003.png)](https://www.google.com/preferences/source?q=goodbarber.com)

![](https://blog.goodbarber.com/_public/profile/6a/6ac86fe0c44e1457a046324ec18c6897e8e94b27-default.jpg)

About the author

Flo Luccioni

PWA Developer

I’m a frontend developer on GoodBarber’s Progressive Web Apps team, where we build the rendering engine of our no-code platform for browsers.

I work on the shared UI and performance foundations that make our users’ no-code experience into fast, polished and accessible web products that feel native on every device.

[More from Flo](https://www.goodbarber.com/blog/author/flo-luccioni/)[LinkedIn](https://www.linkedin.com/in/floluccioni/)
