Case study · Web app · Mobile-first

A Little Something

Private digital gifts that feel like a small moment.

A short message becomes a small interactive moment: a 3D flower, the message and, if you want, photos, a secret and a voice note. It's shared by private link or QR code.

Type
Web app
Status
Live
Year
2026
alittlesomething.io
A Little Something creator with photos, a secret and a voice note next to the live preview

The problem

Make a simple message feel thoughtful and memorable, like a gift, without shipping anything, installing an app or subscribing just to send one gift.

Who it's for

People who want to send something meaningful. The person who buys creates the gift; the person who receives it doesn't need an account.

What it does

Features

Creator with live preview

Two steps: write the message, then make it special with up to 3 photos, a secret with an optional hint and a voice note of up to 60 seconds.

A 3D reveal

The recipient finds a sealed door. If there's a secret, it's checked on the server; then a 3D rose, tulip or sunflower opens to the message, photos and voice.

Share it your way

Private link, QR code to copy or download, a printable card and a copy of the purchase by email.

Payments with Stripe

One-time purchase or an annual plan through Stripe Checkout. A gift is activated only when the payment webhook confirms it.

My Little Somethings

Buyers come back with a magic link to a dashboard with every gift, a preview that doesn't mark it as opened, and account deletion.

Bilingual SEO pages

Landing pages per occasion in English and Spanish, such as birthday gifts.

The journey

How it works

  1. 01

    Write the message and make it special

  2. 02

    Pay with Stripe Checkout

  3. 03

    Get the link, QR code and email copy

  4. 04

    The recipient opens the private link

  5. 05

    Come back anytime to My Little Somethings

Under the hood

Engineering highlights

Secrets stay secret

Content protected by a secret never reaches the HTML or the RSC payload before it's unlocked, and the secret itself is stored as a hash.

Three credentials per gift

Recipient, preview and fill links each have their own token, stored as a hash plus an encrypted copy so it can be recovered.

The webhook is the source of truth

An idempotent Stripe webhook is the only thing that marks a payment as done, so retries never activate a gift twice.

3D models from 55 MB to 1.4 MB

A gltf-transform pipeline optimizes the flower models so the reveal loads fast on phones.

Frontend
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • three.js
Backend
  • Server Components
  • Server Actions
  • Route handlers
  • Cron jobs
Data
  • Supabase Postgres (RLS)
  • Private Storage + signed URLs
Services
  • Stripe
  • Resend
  • Vercel

Private digital gifts that feel like a small moment.

Visit alittlesomething.io