Skip to content
Back to work

fan-dex

Role
  • Software Engineer
Timeline
  • In progress
Skills
  • Product design
  • Guest send
  • Media cards
  • Gift UX

Tech Stack

  • Next.js
  • TypeScript
  • Drizzle
  • Supabase
  • Better Auth
  • Zustand
  • TanStack Query
  • Zod
  • Vercel Blob
  • Resend

Coming soon

Coming soon

Coming soon

Coming soon

Overview

This is fan-dex, a personal app for sending a short pack of cards to a friend. Notes, photos, voice, video. You compose a deck, mail it to an email, and they open the envelope from a link.

No account is required to send or to open. What exists so far is the desk, guest send, the open link, and a pile if they later sign in with that address.

Contributions

  • Designed and built the compose desk for a short pack of notes, photos, voice, and video.
  • Shipped guest send and guest open against an email, with no account required.
  • Persisted uploaded photos and recordings as the card face.
  • Signed-in pile so packs already mailed to that address show up without a second product.

Challenges

I wanted a gift you could send tonight, not a product that starts with a signup wall. If the recipient has to make an account to see the card, the gift is already late.

The other constraint is what a card is allowed to be. A screenshot, a photo, a voice take, a short video, or a note. I kept the deck short, about four to eight cards, so it stays a present instead of a slideshow. Alpha sends are free and go to email. The streamer page and paid chips are the longer product, and they are not what this slice ships.

Design Decisions

Email is the mailbox. We record the pack against the recipient address and do not create a user because someone mailed them. The open link is enough for one envelope. Signing in with that email is how the pile appears.

Cards look like cards. Thickness is how generosity reads. Dollar amounts do not print on the face. Photo and other media upload as the card itself, so a screenshot of a gift or a picture you already have is a valid face.

I used Next.js for compose, open, and the API in one app, Postgres for the pack, and local files or Blob for media.

Reflection

The bar is whether a friend can send something tonight without making an account, and whether the other person can open it the same way.

If either side has to sign up first, it is not a gift anymore. That is the slice I built. The creator doorbell and the live unbox are still ahead.