# Answering Machine — product brief

Context for anyone (or any chat) picking this up cold. What we're building and
why. For how the app works, see [README.md](README.md). For where we are right
now, see [STATUS.md](STATUS.md).

---

## The idea

A retro voice-messaging app built around a cassette-tape metaphor, paired with a
real answering machine you can put on a shelf. Core loop: **record → send →
receive → play**.

**One cassette = one person.** That's the organising principle everything else
hangs off — the home carousel, the friends shelf, message history, tape
customisation.

## Who it's for

It started as a friends app — long rambling voice notes you can't listen to at
your desk — and got narrowed to **family**.

The emotional argument, which is also the retention argument: voice notes become
deeply sentimental over time, even mundane ones. A message about a forgotten
charging cable is boring on the day and evocative six months later. Recordings
from grandparents are the strongest version of this. Photos don't do it the same
way — voice carries ambient sound and mood, and the absence of an image is part
of why it lands.

The physical machine is an **accessibility layer**: for a 96-year-old who won't
install an app, or a toddler whose parent doesn't want them on a phone. Grandma
gets the box, the grandchild's parent gets the app.

Worth knowing: voice notes are a big behaviour in Europe, much less established
in Taiwan. Pitch on sentiment and family connection, not on convenience.

## The hardware

A gutted cassette answering machine — ESP32 plus an audio amplifier, reusing the
original speaker, buttons and LED. Hamish is building it. Comparable product:
Love Box.

Playing a message *on* the hardware is the easy direction. Recording *from* it
back to the app is harder. Demo the easy one.

---

## Demo script

Roughly two minutes.

1. **App (~1 min)** — open on the tapes tab empty state (your cassette, ghost
   below it) → customise your own tape → add a friend → home → record and send.
   Quick pass over the other tabs without playing anything.
2. **Hardware (~1 min)** — the message lands on Louie's machine, it lights up,
   plays back.

Louie (a real child) at the machine, Patrick as backup. Either end can be faked
if the integration isn't ready — the point is the feeling, not the plumbing.

Judges: Maggie and Dresslyn, both parents, which is why the family framing
matters more than the friends one.

---

## Scope

**In:** the core loop, tapes tab with invite and customisation of your own tape, home
organised by person, sequential answering-machine playback, the hardware reveal.

**Deliberately out** — decided, not forgotten:

- Storage and backend. Patrick owns the API and cross-device delivery; the
  prototype stays local so the two don't get tangled. The one exception is the
  Louie hardware path, which POSTs a take to Hamish's demo server — see STATUS.md
  for why that was worth crossing the line for, and note it only fires when the
  app is served on port 3456.
- Custom "leave a message after the beep" greeting. Everyone loves it. It's not
  load-bearing for the demo.
- Transcription (needs an external API), importing from other apps, "on this
  day" resurfacing, mixtapes, lo-fi tape effects, conversation prompt cards.
- Radio show — stays as a tab, gets no further work. It's a friends-oriented
  engagement mechanic, off-message for a family pitch.

## Division of labour

- **Alice** — UI and design in this repo, pushing snapshots
- **Kat** — cassette artwork, owns `app/utils/tape-parts.js` (the part maps and
  geometry) and `app/assets/css/tape-parts.css`
- **Patrick** — pulls this repo, ports to iOS/Android, builds the API
- **Hamish** — hardware and soldering

Announce commits and pushes in Slack.
