Project Bestie Forever is a personalized, interactive birthday surprise website built as a digital gift from one best friend to another. It is not a generic birthday template and not a static mockup: it is a fully functional, animated, mobile-first journey in which the recipient opens a welcome invitation, unwraps a 3D-style gift box, browses a scrapbook of Polaroid memories, reads a heartfelt letter that types itself out, plays a five-question friendship quiz, lights up ten constellation stars, blows out birthday candles, and lands on a full-bleed final birthday message.
The product intent is emotional: to make the recipient feel loved, special, happy, and emotional, and to read as a crafted personal artifact rather than an ordinary birthday website. The audience is two people. The Best Friend (Birthday Recipient) is the sole visitor of the surprise experience. The Creator (Site Owner / Bestie's Friend) authors all personal content — photos, captions, inside jokes, the letter, the quiz, the ten reasons, the name, the birthday date, and the final message — and publishes a shareable link.
Everything the recipient sees is content the Creator has supplied. No login is required for either person, no sample photo is ever presented as a real memory, and personal photos and messages stay private with no unnecessary data collection.
Project Bestie Forever is delivered as a responsive web experience that runs in the browser on mobile phones, tablets, and computers. The recipient's journey is a single continuous vertical sequence of nine acts — Welcome screen, Interactive gift box, Friendship memories gallery, Secret letter, Friendship quiz, Ten reasons why you are special, Birthday cake surprise, and Final screen — each rendered as a frosted glass card floating over one continuous, never-resetting aurora background. A slim frosted top bar carries the wordmark "Project Bestie Forever" and the music play/pause pill, and a quiet progress rail shows which act the recipient is in.
The Creator's work happens in a separate Content Editor destination where the personal content is authored and saved before publishing. The published site is then shared as a link, and the Creator can hand the recipient a working, shareable URL together with instructions for replacing any placeholder content with personal content.
Actors. The Best Friend (Birthday Recipient) is the visitor who experiences the journey. The Creator (Site Owner / Bestie's Friend) authors content and publishes. No other human actor participates.
Ownership. All nine destinations are first-party application surfaces. There is no provider-owned or external destination in the current scope. The optional background soundtrack is a first-party control over an audio asset; it is never autoplayed.
Narrow exclusions. No login or account is required for either persona. No sample photograph is displayed as if it were a real memory — Polaroid frames ship empty with an "Add your photo here" placeholder. No unnecessary data collection is added. Audio never autoplays before the recipient interacts with the site.
The current delivery is a single published, shareable website. The recipient opens it anonymously — there is no sign-in, no account creation, and no gate of any kind before the welcome screen. The Creator's authoring work is likewise not gated by an account system; the Content Editor is a first-party destination where content is prepared and saved before the site is published.
The boundary between current and future work is narrow and explicit. Everything listed in Section 3 is current. Nothing in this document commits the product to accounts, social features, analytics, or any capability the Creator did not ask for. The only durable state the product holds is the authored content itself — the photos, captions, letter, quiz, reasons, name, birthday date, and messages that the Creator supplies — and that content is kept private and is not collected from or about the recipient.
Not applicable. No reference directive in this project declares a content_source, so no external factual inventory is carried into this document. All content is authored by the Creator.
FR-1 — Fully functional interactive website. As the Creator, I should get a fully functional, interactive, mobile-friendly birthday surprise website named "Project Bestie Forever" for my best friend, not a static mockup, so that every button, animation, quiz answer, gallery control, and surprise reveal actually works. (explicit)
FR-2 — Dreamy pastel design and theme. As the Creator, I should have the experience rendered in a dreamy pastel pink, lavender, white, and soft purple palette with floating hearts, sparkling stars, glowing buttons, smooth animations, beautiful transitions, elegant fonts, cute illustrations, glassmorphism cards, and a magical background, so that it looks premium, modern, cute, and emotional. (explicit)
FR-3 — Responsive layouts and optimized loading. As the Best Friend (Birthday Recipient), I should be able to use the experience perfectly on a mobile phone, tablet, or computer, with responsive layouts and optimized loading speed, so that the gift feels right on whatever device I open it on. (explicit)
FR-4 — Welcome screen with surprise button. As the Best Friend (Birthday Recipient), I should see "Hey, my favorite human!\x20\xf0\x9f\x92\x97", "I made something special just for you.", and "Are you ready for your surprise?" on the Welcome screen, with a glowing button called "Open Your Surprise\x20\xe2\x9c\xa8" that starts a magical animation with floating hearts and confetti when clicked, so that the experience opens with anticipation. (explicit)
FR-5 — Interactive 3D-style gift box. As the Best Friend (Birthday Recipient), I should see a 3D-style animated birthday gift box that opens with an animation when I tap it and reveals a personalized birthday message, so that the first surprise feels physical and personal. (explicit)
FR-6 — Scrapbook memories gallery. As the Best Friend (Birthday Recipient), I should browse a scrapbook-style photo gallery with Polaroid frames containing our real photos, captions, memorable moments, and inside jokes, with smooth transitions and a beautiful slideshow, so that our shared history is the centerpiece of the gift. (explicit)
FR-7 — Secret letter with typewriter animation. As the Best Friend (Birthday Recipient), I should see an animated envelope with a button called "Open My Letter\x20\xf0\x9f\x92\x8c" that opens the envelope and displays a heartfelt letter with a typewriter text animation, so that the words feel like they are being written to me in the moment. (explicit)
FR-8 — Letter editable before publishing. As the Creator, I should be able to edit the letter before publishing the website, so that the recipient reads my own words. (explicit)
FR-9 — Five-question friendship quiz. As the Best Friend (Birthday Recipient), I should play a fun quiz with five customizable questions about our friendship, with cute animations and a funny or sweet result based on my answers, so that the quiz feels like it was written about us. (explicit)
FR-10 — Ten glowing stars with secret message. As the Best Friend (Birthday Recipient), I should see ten glowing stars, each revealing a different reason why I am special to you, and after all ten stars are opened I should see a secret final message, so that the act builds to a hidden payoff. (explicit)
FR-11 — Birthday cake surprise. As the Best Friend (Birthday Recipient), I should see a beautiful animated birthday cake with candles, tap the candles to turn them off, and then see confetti, fireworks, glowing hearts, and a full-screen birthday message, so that the celebration lands as a peak moment. (explicit)
FR-12 — Optional background music with visible control. As the Best Friend (Birthday Recipient), I should have an optional soft, cheerful birthday soundtrack with a visible play/pause button, and audio must not autoplay before I interact with the website, so that music is available without ever surprising me. (explicit)
FR-13 — Final screen with editable message. As the Best Friend (Birthday Recipient), I should see "Happy Birthday, Bestie!\x20\xf0\x9f\x8e\x82\xf0\x9f\x92\x96" and the message "No matter how life changes, you will always have a special place in my heart. Thank you for being part of my story. Here's to more memories, laughter, and adventures together!" on the Final screen, with the final message editable so the Creator can write her own words, so that the closing words are personal. (explicit)
FR-14 — All controls and reveals work. As the Creator, I should have all buttons, animations, quiz answers, photo gallery controls, and surprise reveals working, so that the gift never breaks in the recipient's hands. (explicit)
FR-15 — Easy customization of personal content. As the Creator, I should be able to easily customize the photos, name, birthday date, captions, quiz questions, letter, and messages, so that the site reflects my own content rather than placeholders. (explicit)
FR-16 — Restart the birthday experience. As the Best Friend (Birthday Recipient), I should have a clear way to restart the birthday experience, so that I can relive it from the beginning. (explicit)
FR-17 — No login required. As the Best Friend (Birthday Recipient), I should never be asked to log in, so that opening the gift is immediate. (explicit)
FR-18 — No sample photos presented as real memories. As the Best Friend (Birthday Recipient), I should never see sample photos displayed as if they were our real memories, so that the gift never feels fake. (explicit)
FR-19 — Privacy of personal photos and messages. As the Creator, I should have my personal photos and messages kept private with no unnecessary data collection, so that the gift stays between the two of us. (explicit)
FR-20 — Shareable published link and replacement instructions. As the Creator, I should receive a working, shareable published website link and instructions for replacing the sample content with my personal content, so that I can send the gift and keep it up to date. (explicit)
FR-21 — Replace content before publishing. As the Creator, I should replace the placeholder content with my personal photos and messages before publishing, so that no placeholder is ever presented to the recipient as a real memory. (required_inference)
FR-22 — Publish and obtain the shareable link. As the Creator, I should publish the configured experience and obtain a shareable website link before delivery, so that the recipient can actually open the gift. (required_inference)
FR-23 — Audio stays paused until interaction. As the Best Friend (Birthday Recipient), I should have audio remain paused until I interact with the website, so that nothing plays unexpectedly. (required_inference)
FR-24 — Edit letter and final message before publishing. As the Creator, I should be able to edit the letter and the final message before publishing, so that both the intimate letter and the closing words are mine. (required_inference)
Product context. She is the single intended visitor of the surprise site. She opens it on a phone, probably late at night, with no prior explanation beyond the fact that her best friend made something for her. She has no account, no onboarding, and no instructions — the experience must explain itself through its own sequence.
Primary goal. To feel loved, special, happy, and emotional, and to move through a personalized, magical journey that feels like a gift made only for her.
Distinct accepted responsibilities. She is the one who opens the surprise: she presses "Open Your Surprise\x20\xe2\x9c\xa8", taps the 3D gift box to reveal her birthday message, browses the Polaroid scrapbook and its slideshow, presses "Open My Letter\x20\xf0\x9f\x92\x8c" and reads the letter as it types itself out, answers the five friendship quiz questions and receives her result, opens the ten glowing stars one by one until the secret final message unlocks, taps the candles to extinguish them and trigger the celebration, and reads the final birthday message. She also controls the optional soundtrack and can restart the whole experience.
Relevant inputs and decisions. Her taps and presses drive every reveal. Her quiz answers determine whether she receives a funny or a sweet result. Her choice to press play determines whether music accompanies the journey.
Interactions with other accepted participants. She never interacts with the Creator directly inside the product. Every interaction is with content the Creator authored — the message in the gift box, the captions and inside jokes in the gallery, the letter, the quiz questions, the ten reasons, and the final message. The Creator's authorship is what makes her journey personal.
Observable success. She completes the full sequence of surprises, reaches the Final screen, reads the closing message, and can restart the experience to relive it.
Product context. She is the requester and the author of the gift. She works in the Content Editor before publishing, assembling the personal material that the recipient will encounter. Her work is invisible to the recipient but determines everything the recipient sees.
Primary goal. To deliver a working, shareable published site that reflects her own words and photos, so that her best friend receives something that could only have come from her.
Distinct accepted responsibilities. She adds real photos with captions, memorable moments, and inside jokes to the gallery; edits the heartfelt letter; customizes the five quiz questions and their results; writes the ten reasons and the secret final message; sets the name and birthday date; writes the final screen message; replaces placeholder content with personal content before publishing; publishes the experience; and obtains the shareable link together with instructions for replacing sample content with personal content.
Relevant inputs and decisions. Her authored text and photos are the product's content. Her decision about when to publish determines when the gift goes live. Her decision to replace placeholders before publishing determines whether the recipient ever sees a placeholder.
Interactions with other accepted participants. She never interacts with the recipient inside the product. Her entire relationship to the recipient's journey is authorship: what she writes and uploads is what the recipient reads, sees, and answers.
Observable success. A published, shareable link that opens the personalized experience, with all her content in place and no placeholder presented as a real memory.
The visual direction is Layered translucency, maximal cuteness — a glass-and-pastel birthday world after Michal Malewicz. The register is dreamy, cute, premium, and overwhelming-in-a-good-way: floating hearts, glowing buttons, confetti, and a letter that types itself out. The emotional arc is anticipation → delight → tears → celebration.
Palette (light mode).
| Role | Value |
|---|---|
| Background ground | #FDF7FF |
| Surface | #FFFFFF |
| Body text | #3B2A55 |
| Display text | #2A1B40 |
| Primary | #C77DFF |
| Accent (single hot action colour) | #FF6FB5 |
| Muted | #8B7AA8 |
| Gold (candle flame and star fill only) | #FFC94D |
| Aurora stop — pink | #FFD9EC |
| Aurora stop — lilac | #E6D4FF |
| Aurora stop — sky | #C9E7FF |
| Aurora stop — blush | #FFF0F7 |
The ground is a whisper-lavender white carrying a slow drifting four-stop aurora at 55–70% opacity, blurred 120px, never a hard blob. Glass surfaces are rgba(255,255,255,0.62) with a 1px rgba(255,255,255,0.85) top-light border, 20px backdrop-blur, and a 0 18px 40px rgba(199,125,255,0.18) shadow — cards float, they do not sit. Proportion is 70% pastel ground and glass, 20% lilac and pink gradients, 10% hot accent; the accent must feel like a jewel, not a wash. Gold appears only as candle flame and star fill, never as a UI colour.
Typography. Headings use Fraunces at weight 600–700 with SOFT 60 and WONK 1, optical size pushed large (opsz 144) so terminals go plump and romantic; italic Fraunces is used for the letter and for inside-joke captions. Body uses Plus Jakarta Sans. The scale is a 1.333 modular with a display extension on a 16px base: 22 / 26 / 34 / 46 / clamp(46px, 9vw, 104px) / clamp(64px, 12vw, 148px). Mobile hero is 46px, tablet 72px, desktop 104–148px. Body is 17px/1.75 on mobile and 18px/1.8 on desktop. Section labels are 12px uppercase with 0.14em letter-spacing. Display tracking is -0.02em.
Shape language. Everything is curved and inflated: cards at 28–36px radii, buttons as full pills, the gift box as a CSS 3D cube with 24px rounded edges. Polaroids are 4px-radius white cards — deliberately sharper than everything else so they read as physical objects inside the soft world. Blobs, hearts, and stars are organic SVGs with no straight lines. Depth comes from stacked translucency, not borders: each layer is a little more opaque and a little more blurred than the one beneath it.
Layout. A single vertical journey of nine full-viewport acts, each a glass card floating over the same continuous aurora so the background never resets. Mobile-first single column with 20px gutters; at 768px the gallery and the ten stars go to two columns; at 1280px a 12-column grid with content max-width 1120px and acts alternating left and right of centre for rhythm. A slim frosted top bar holds the wordmark "Project Bestie Forever" in Fraunces italic and the play/pause music pill, and never grows taller than 56px. A quiet 3-dot progress rail on the right edge (bottom on mobile) shows which act the recipient is in. The Final screen breaks the card system entirely: full-bleed, no glass, just type on the aurora.
Imagery. No stock photography of strangers, ever. Instead: custom flat-vector cute illustration (two best-friend characters with no facial detail so they can be "us", a cake, a gift, an envelope, a cassette of inside jokes); glossy 3D-render-feel primitives (heart, star, balloon, ribbon) built as CSS/SVG with soft inner shadows and a specular highlight; and Polaroid frames shipped empty with a friendly dashed placeholder reading "Add your photo here". Sparkles are four-point SVG stars at 8–16px scattered at 0.3–0.7 opacity. The aurora background is the only "image" that is always full-bleed.
The public entry is a full-viewport aurora — pink → lilac → sky, blurred and slowly drifting — with a single tall glass card floating slightly off-centre to the right on desktop and centred on mobile. The card is 62vw wide, max 560px, tilted -1.5°, with a 1px luminous top edge.
Inside the card, "Hey, my favorite human!\x20\xf0\x9f\x92\x97" is set in Fraunces italic at clamp(46px, 9vw, 104px) in #3B2A55, with the words "favorite human" wrapped in a hand-drawn pink underline that draws itself in over 700ms. Beneath it, "I made something special just for you." sits at 20px in muted #8B7AA8, then "Are you ready for your surprise?" at 22px.
The "Open Your Surprise\x20\xe2\x9c\xa8" pill sits at the card's bottom edge, half-overlapping it, glowing #FF6FB5 with a 2.6s breathing halo. Behind the card, a 3D-style gift box — CSS cube, #C77DFF ribbon, #FF6FB5 bow — bobs on a 9s sine loop at 0.45 opacity, cropped by the right viewport edge. It becomes the real gift box in the Interactive gift box act, so the hero is already promising the next scene.
There is no centred headline stack, no subtext-button-blue-button, and no gradient blob. The composition is an off-axis glass panel over a living aurora with the CTA breaking its own container. All readable text and the CTA remain whole and inside the viewport at 375px, 768px, and 1280px; the gift box and aurora carry the cropping and bleed.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
cubic-bezier(0.22, 1, 0.36, 1) while the incoming card rises from 40px with a 120ms stagger on its children. Hearts and stars drift on independent 8–14s sine loops with random phases so nothing syncs. Buttons breathe a 2.6s glow pulse (box-shadow spread 0→18px) and squash to 0.96 on press. The gift box lid lifts and rotates -28° on a spring (stiffness 180, damping 14). The letter types at 28ms per character with a caret blink. Candles extinguish with a 180ms flame-scale-to-zero plus a smoke wisp rising 90px and fading, then confetti, fireworks, and hearts fire together. The gallery slideshow cross-dissolves at 700ms with a 1.02→1.00 scale settle.NFR-1 — Responsive across devices. The experience must work perfectly on mobile phones, tablets, and computers, with layouts that adapt at 375px, 768px, and 1280px. (explicit) Rationale: the recipient may open the gift on any device.
NFR-2 — Optimized loading speed. Assets, fonts, and animations must be optimized so the experience loads promptly. (explicit) Rationale: a slow first impression undermines the emotional opening.
NFR-3 — No login. No authentication step may be required for the recipient or the Creator. (explicit) Rationale: the gift must open immediately.
NFR-4 — No sample photos presented as real memories. Placeholder Polaroid frames must read as placeholders, never as the user's memories. (explicit) Rationale: fake memories would break the emotional premise.
NFR-5 — Privacy and minimal data collection. Personal photos and messages must remain private, and no unnecessary data collection may be added. (explicit) Rationale: the gift is between two people.
NFR-6 — No audio autoplay. Audio must not play before the recipient interacts with the website. (explicit) Rationale: unexpected sound would break the intimate, late-night context.
NFR-7 — Fully functional, not a mockup. Every button, animation, quiz answer, gallery control, and surprise reveal must actually work. (explicit) Rationale: the gift must not break in the recipient's hands.
NFR-8 — Readable text and controls stay whole. Headlines, wordmarks, labels, numbers, card text, and controls must stay entirely inside the viewport and their container at every breakpoint, wrapping or scaling to fit, with no other element covering them. Imagery, decoration, and motion may be cropped, bled, rotated, or overlapped as the direction asks. (explicit, from the creative direction) Rationale: the emotional impact depends on the recipient being able to read every word.
NFR-9 — Reduced-motion support. Under prefers-reduced-motion, all motion must collapse to simple opacity fades with immediate static end-states, and every act must remain fully usable. (required_inference) Rationale: the journey must be completable by recipients who cannot tolerate expressive motion.
NFR-10 — Shareable published link. The Creator must receive a working, shareable published website link. (explicit) Rationale: without a link, the gift cannot be delivered.
No source-specified technology was overridden; the user named no stack, so these are labeled defaults.
Assumptions.
Constraints.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!