One Woman’s Voice
Historic letters & diaries, one REAL sentence at a timE
Sentence-First Reading for Classrooms, Her Name on Request, & a Private Curation App
Year
2026
Tools
Design and product
Figma, Adobe Illustrator
Technology
Next.js, React, TypeScript, Postgres, Python
Development and delivery
GitHub, Vercel, Claude Code
Deliverables
Tablet-first classroom reader
Reveal-on-demand attribution
Share cards
Editorial type & visual system
Voicebox curation app
Source-ingestion pipeline
Review & publication workflows
Product Team
My Team
1 Product Designer / Full-Stack Developer
Solo build
My Role
Product Designer
Full-Stack Developer
Editorial Curator
Scale
360+ women writers in the corpus
~400,000 qualifying sentences
~1800 curated onto the site at launch
Summary
One Woman’s Voice is a tablet-first reading site built for classrooms that shows one real sentence at a time from women’s own letters, diaries and journals, whether the writer is famous or almost unknown. Her name waits until the reader asks for it, so the sentence has to earn her the reader’s attention before her reputation can. I architected the system behind the experience: an ingestion pipeline that has qualified ~400,000 sentences from 360+ women, a publication model enforced in code, a private curation app called Voicebox, and workflows that grow the archive without interrupting readers.
The Problem with Quotes
Quote culture runs in one direction: an important person, then an important statement, then a reason to care. For women’s writing, that order means:
a) a sentence is weighed by the fame of the name attached to it before anyone reads it on its own terms.
b) the lines that get passed around are the polished, public-facing ones: aphorisms, declarations, famous last words.
c) the private writing where women recorded their own lives, in letters, diaries and journals, is rarely treated as quotable, so the women who wrote only that way rarely get heard.
The user experience is intended to reverse the order: the sentence first, then the reader cares, then wait, who was she?
Design Principles
The rules define a product contract that decides what a reader can see, and when. Internally it’s summed up as the anti-famous anti-quote machine: anti-famous because fame gets no privileged role in the encounter, and anti-quote because the sentences come from women’s own letters, diaries and journals rather than their public-facing work.
Key Principle The sentence has to hold the reader on its own. It arrives with no name, portrait, biography or era, so a famous woman and an almost unknown one start with the same authority: one sentence.
Key Principle Who wrote it is one deliberate tap away, and nothing more. The reveal shows her name, the date, her age, a translation note where needed and a link to the source; never a location, a recipient, or the reason it was chosen.
Key Principle Personal voice, not quotability. Only personal documentary writing qualifies, so even a line that feels like a great quote gets here by the opposite route.
Key Principle One sentence, one primary action. Everything else stays quiet, and the ways forward and back stay out of sight from the initial presentation.
The Solution: Voicebox, Curating the Archive
Getting from ~400,000 qualifying sentences to the initial ~1800 on the site created a second design challenge: judging each candidate as blindly as a reader would, checking the evidence before trusting a date or an attribution, re-rating what’s already live, and growing the archive without interrupting the reading experience.
-
Voicebox Curation App
I designed a private review app to: - review candidates blind, one at a time, with no counts or queue position: the sentence alone, then Reveal, then a one-key rating, a problem flag, skip or undo, and private notes;
- check the evidence before trusting a line, in a Why should I trust this? panel of verification checks, date evidence, the basis for the attribution and the surrounding source text;
- rate (or re-rate) everything on the site as Like, Love, Obsessed or Pass from one searchable, sortable table, saved in a single batch;
- nominate a sentence by pasting it with its source address; the app fetches the page, finds the exact wording and flags duplicates before it goes through ordinary review.
- Two environments with one shared database
- The reading site and Voicebox share one Postgres database.
- Voicebox writes decisions and the site only reads them, so a rating saved in Voicebox changes what the next reader can draw, with no rebuild or publish step.
- A sentence goes public only if it passes a publication gate enforced in code, a fixed field allowlist keeps everything else off the page, and every decision is saved as a new event rather than overwriting the last.
- Sourcing runs upstream as a Python pipeline over digitized archive transcriptions, so the archive grows without touching either interface.
The Solution: Reading Experience
-
One Sentence, Nothing Else
Each visit opens on a single sentence, set large and centered in a reading serif, readable across a classroom, on a warm cream canvas that follows the device into a dark theme. Until the reader asks, the browser holds only the sentence and an ID, so there is nothing to find in the page source. The draw is weighted by subjective ratings and avoids showing the same writer twice running, and there is nothing to browse or bookmark. -
Who Wrote It, on Request
One button sits under the sentence: Who wrote it. It opens up to five lines: her name, the date, her age when she wrote it, a translation note where needed, and a link to the archive record. Hide details folds it all away again.
- one more voice- the button to move on isn’t on the page for the first five seconds, then it fades in, so the whole room can read each sentence before anyone moves on. A back arrow, hidden until the pointer moves or the screen is tapped, returns through the last fifty sentences, and a reload continues the visit instead of offering a free redraw. The pace is deliberate, not built for clicking through; it's not a dopamine machine.
- play- off by default; for a classroom display, a link ending ?play=1 starts it playing. It advances only after a full minute untouched; any tap, key or scroll buys the room another minute, so a sentence someone is still reading is never taken away.
- share card- a Share icon beside Play opens a small panel that draws a card in the browser, set the way the site sets the sentence, with her name, the date and her age smaller beneath it. From there the reader can send it, save the image or copy a short link. The link is created only when Share is pressed and opens that same sentence with her name still hidden; nothing on the site lists the links, so the collection still can’t be walked one address at a time. The blind encounter belongs to the site, but whatever is carried away carries her name, and pressing Share never reveals it on the sharer’s own screen. Short sentences get a square card and longer ones a portrait; type steps down with length, and a sentence too long to set legibly is shared as words alone.
- about- a long-form page on why the project exists. It ends with the site’s one ask: Know where some of these words are? Readers can email a lead on a diary, a box of letters or a correction. A donation panel is built but switched off: every control ends at a hosted Stripe checkout, so the site never handles a card number, a name or an amount.
Results
One Woman’s Voice is live at onewomansvoice.org and works as both a reading experience and a working curation system. Readers meet one sentence at a time, ask who wrote it when they’re ready, and can pass it on as a share card, while I keep reviewing, re-rating and adding voices in Voicebox without interrupting them. In the review queue, each new candidate is met the way a reader does: the sentence first, her name only upon request.
The pipeline has qualified ~400,000 sentences from 360+ women; about 1800 have passed curation and gone live, roughly one for every 220 that qualify. That ratio shaped the product: blind, one-at-a-time review to keep judgment honest, an evidence panel so trust is checked rather than assumed, and a share card whose type was tuned against the real published sentences.
Let's build
what's next.
Have a product that needs design, engineering, or both? I'd love to hear about it.