Festeo

An AR video greeting app for life's milestones.

App StoreiOS App

Client

Self-published

Role

Founder · Product Designer · iOS Developer

Tools

SwiftUI, Supabase, Speech.framework, AVFoundation, ARKit, Vercel

Timeline

Feb 2026 — May 2026

Screen 1
Screen 2
Screen 3
Screen 4
Screen 5

tl;dr

Started as Reelwish, a Figma Make-a-thon concept for gesture-driven emotional reactions. The idea was worth building, but 'expressive communication' is too abstract to ship — so I narrowed it into Festeo: an AR video greeting app for life's milestones, shipped as a native SwiftUI iOS app on the App Store. Pick an occasion, wear an AR prop, choose a vibe, read a short teleprompter script, record a 15-second wish, and send it as a link anyone can open — no app download for the recipient.

Shipped

Apple App Store, May 2026

4

Occasions, each with its own props + scripts

41

Teleprompter scripts across 4 milestones

the tension

Why does congratulating someone online still feel so flat?

We can send 4K video across the world instantly. But when a friend has a baby, we still type three words and a balloon emoji. The moment is huge. The expression is tiny.

Reelwish framed this as an emotional expression problem. That was true, but it wasn't sellable. Nobody opens the App Store searching for 'expressive communication.' They search for a birthday video.

That reframe — from a feeling to an occasion — is what turned a concept into a product.

We built powerful networks for sharing content, and left almost nothing for sharing a moment.
the evolution

From a hackathon gesture to a shipped app.

Same DNA — limited, expressive, camera-first — sharpened from a speculative concept into a product with a real job to do.

1

Reelwish — the concept

  • Gesture-driven emotional reactions, built for the Figma Make-a-thon
  • Got right: digital reactions are flat; four emotions, not forty; immediacy over accuracy
  • Got wrong: too abstract — 'expressive communication' isn't an App Store category
Reelwish — a front-camera gesture triggering a real-time emotional reaction.
2

Festeo — the product

  • An AR video greeting app for life's biggest moments
  • Four occasions, AR props you wear, scripts so you never freeze, a 15-second cap
  • Festeo — 'I celebrate' in Spanish, coined like Vimeo; short, ownable, international
Festeo — recording a birthday video wish with an AR party crown.
the occasions

Four occasions, each with its own look.

The discipline that capped Reelwish at four emotions now caps Festeo at four occasion types — each with matching AR props and a library of scripts.

Festeo — birthday occasion with an AR party crown and teleprompter script.

Birthday A party-crown prop and hype/heartfelt/funny scripts — record a wish in under a minute.

strategy

Two people, one moment.

Success was simple: the sender records in under a minute, and the recipient watches in one tap.

The sender

Wants to send something more personal than a text, but freezes on camera and has no time to produce anything elaborate. Needs a fast path from 'I should make something' to 'sent.'

The recipient

Wants to feel celebrated on whatever device they're holding, without being asked to install an app to receive a gift. One tap to watch.

strategy

Design pillars.

Four occasions, not infinite.

Birthday, wedding, baby, graduation. The same discipline that capped Reelwish at four emotions now caps Festeo at four occasion types — each with its own look, props, and scripts.

The camera is the canvas.

AR props go on your face — a party crown, a graduation cap, a baby bonnet, a bow tie — not as stickers on a screen. You're the content.

Never freeze.

Every script comes in three vibes (hype, heartfelt, funny) and runs on a teleprompter, so the blank-camera panic never happens.

Brevity by design.

A 15-second cap removes the pressure of a long take and forces the wish to land fast.

No friction for the recipient.

Share by link. They watch on any device — no download, no account. A gift can't have a paywall at the door.

process

Narrowing a concept all the way to the store.

The work wasn't adding features — it was subtraction, then building the system that made one focused idea shippable.

1

Narrowing the concept

  • Subtraction, not addition — cut everything not tied to an occasion
  • Let the milestone become the organizing idea for the whole app
Concept map — narrowing 'expressive communication' down to four milestones.
2

Occasion, prop & vibe system

  • Each of four occasions got matching AR props and a script library
  • Three vibes per script — hype, heartfelt, funny — 41 scripts total
  • Filterable by tone and by relationship so the words fit who you're sending to
Script library — filtered by tone and relationship across four occasions.
3

The teleprompter (the hard part)

  • Speech.framework runs on the same camera session as the recording
  • Highlights and scrolls the script to match as you talk
  • Forward-only fuzzy matching keeps imperfect, real speech in sync
Teleprompter — voice-synced script highlighting during a recording.
4

The native iOS build

  • Native SwiftUI for iOS 17+ with a clean model / view / service architecture
  • Six-screen flow: occasion → prop → script → edit → record → preview → share
  • Supabase backend for scripts, video upload, and watch links
SwiftUI screens — the six-screen Festeo recording flow.
5

Naming, infrastructure & the store

  • Renamed Reelwish → Festeo; migrated Supabase to a fresh account
  • Website + privacy policy live on Vercel
  • App Store Connect: Entertainment primary, Social Networking secondary — submitted and shipped
App Store Connect — the Festeo listing ready to submit.
key design decisions

Five choices that made it shippable.

An occasion, not a feeling.

The single reframe that made the product shippable. 'Expressive communication' was the concept; 'video wish for a milestone' is the thing people search for, download, and send.

Props you wear, not stickers you place.

AR on the face keeps the person at the center — the difference between a greeting that's personal and one that's generic. The technology disappears behind the moment.

A script and a cap.

A teleprompter plus a 15-second limit removes the two reasons people don't record themselves: freezing up, and overthinking it. The constraints are what make recording possible.

Link-first delivery.

The recipient needs nothing — no app, no account. Forcing a download to receive a gift kills the gift. The watch link is the product's front door.

Gesture detection deferred to V2.

The original Reelwish magic was tempting to cram into V1. The discipline was to ship a clean, focused first version. One idea fully realized beats five half-built.

results

What shipped.

Format

Native iOS app (SwiftUI) — shipped on the App Store

From

Reelwish, a Figma Make-a-thon concept (Feb 2026)

Occasions

Birthday, Wedding, New Baby, Graduation

Core flow

occasion → prop → vibe → script → record → preview → share

Scripts

41 across 4 milestones, filtered by tone and relationship

Stack

SwiftUI · Supabase · Speech.framework · AVFoundation · Vercel

Hardest feature

Voice-synced teleprompter with forward-only fuzzy matching

Store listing

Entertainment (primary) / Social Networking (secondary), subtitle "Send a video wish"

App Store listing — the Festeo product page with icon, screenshots, and the subtitle 'Send a video wish.'
insights

What shipping a speculative concept taught me.

A concept needs an occasion to become a product.

Reelwish was a good idea with no front door. Tying it to milestones made every decision easier — the occasions defined the props, scripts, categories, and the reason to download.

Constraints are what make recording possible.

A teleprompter and a 15-second cap sound like restrictions. They're what let a non-performer hit record and finish. The constraint is the feature.

The recipient's experience is the product.

They never see the editor, props, or teleprompter — they tap a link and watch. Designing for the side of the screen that does the least work was the highest-leverage decision.

Discipline carries across a pivot.

Four emotions in Reelwish became four occasions in Festeo. The instinct to limit scope is a design value, and it survived the jump from concept to shipped product.

Shipping is its own design skill.

Festeo proves the whole arc: research, design, naming, infrastructure migration, native iOS development, and App Store submission. Not a concept in a Figma file — a product on a phone.

v2 — the idea comes home

The gesture detection was always the point.

It just lives in the next version.

ARKit face tracking

AR props that follow your face in real time, not anchored to a fixed frame.

Gesture detection

The original Reelwish concept, finally native on iOS — the hands that started the whole idea, back in the product they led to.

Expand occasions carefully — more milestones, but only ones that earn their own props and scripts; the four-occasion discipline stays until there's a reason to break it. Recipient reactions — let the person watching respond in the moment, closing the emotional loop Reelwish first imagined. What I'd do differently: validate the occasion framing with senders earlier, before building the script and prop system, and start native sooner — the concept-to-product jump is where the real cost lived.

what's next

Expand occasions carefully — more milestones, but only ones that earn their own props and scripts; the four-occasion discipline stays until there's a reason to break it. Recipient reactions — let the person watching respond in the moment, closing the emotional loop Reelwish first imagined. What I'd do differently: validate the occasion framing with senders earlier, before building the script and prop system, and start native sooner — the concept-to-product jump is where the real cost lived.