About the project
eteatru.ro is Radio România's radio-theatre streaming site, free, no paywall, hundreds of recordings going back decades. It already has the things that should make it work: accounts, favourites, and a player that genuinely tracks where you stopped. It presents its archive through two separate "browse everything" surfaces that a listener would reasonably expect to do different jobs.
The question I set out to answer: is the problem that there isn't enough content surfaced, or that the same content is surfaced too many times?
The problem
I analysed both pages programmatically: every row, every title, every URL.
Example: "O noapte furtunoasă" appears three times on the homepage alone, under Bacalaureat, Comedii, and Best of 50′, using two different recordings, plus a fourth entry that's a documentary about the film. One title, four slots.
Within the homepage: 12 titles are cross-listed across 2-3 rows. Most are the literal same recording (same content ID), not different productions. Inside "Ora Veselă," one title is duplicated twice in the same row, a CMS bug, separate from the IA problem.
Homepage vs. /spectacole/: /spectacole/ isn't the real archive either, it's a second set of 14 preview rows with "Vezi toate" links one click deeper. Of the homepage's 217 unique titles, 150 (69%) also appear there. Together the two pages surface 315 unique titles, but a visitor has to mentally de-duplicate two thirds of what they just scrolled to find the other 98.
Curating the homepage doesn't reduce access to the archive. It removes an already-redundant second listing of things the archive shows elsewhere, which is the answer to the editorial objection before it's raised.
Process: Audit - precedent - pilot - definition - system - screens
1. Content audit. Parsed both browse surfaces to turn "this feels cluttered" into a number.
2. Competitive precedent. Voxa and Audible, one principle each, to pre-answer stakeholder pushback with evidence rather than opinion.
3. Informal pilot. Directional signal only, honestly labelled, it shaped the hypothesis, it didn't validate it.
4. Definition. Problem statements tagged by evidence strength; metrics split into what I could measure vs. what a live product would track.
5. Component system, then screens. Built the poster card and row pattern first, assembled the page from them second.
VOXA
"We were passionately against the complexity of other models, such as Audible, where tokens, free books, and pay-only books lived together and caused confusion."
A Romanian-market competitor treats "too many parallel systems for a user to reason about" as a documented cause of confusion, not a matter of taste. eteatru's 13–14 overlapping rows are the same failure mode in a different layer.
AUDIBLE
"Customers can now view dynamic, hyper-personalized selections from the homepage... in addition to collections curated by our editors."
If a catalog approx. 4,000 times the size of eteatru's doesn't flatten itself onto the homepage, "our archive is too important to curate" doesn't hold at eteatru's scale.
Both gate their catalog behind a trial; eteatru is fully free. That's a real differentiator for positioning, but it's a business-model axis, not a rebuttal to a homepage that repeats itself 69% of the time.


Users & journeys
Ana - 1st time visitor
"When I have a free evening, I want to find something worth listening to without scanning fifty posters, so I can start in under a minute."
Fails at: Discover. Bails after 2-3 rows because every row looks like the last one.
Radu - returning listener
"When I come back to something I started, I want to be certain the site remembers where I stopped, so I don't have to re-find my place."
Fails at: Return. The resume feature works, it's just not surfaced anywhere he'd look.
Key decisions
Three choices that shaped everything else.
1. Killed the full-bleed hero & replaced it with a continue-listening strip.
Rejected: keeping the hero and adding resume lower down. The hero ate the entire first screen to promote one title — the same real estate that could tell a returning listener the site remembers them.
2. Gave "in progress" its own colour, separate from "favourited."
Rejected: one shared accent for both. A red mark on a card would be ambiguous… loved, or half-listened? Resume-trust is the weakest-evidenced problem statement, so it earns its own visual language rather than competing with favourites.
3. Capped rows at 4–5 cards and ended each with a distinct browse-all card.
Rejected: full-width scrolling rows. Capping tests the curation hypothesis directly while keeping the whole archive exactly one click away, so "you're hiding our content" has a concrete answer.
Components & system
Every screen below is made of these four things. Each was built as a Figma component with named variants, not redrawn per screen.
Poster card: one component, four variants under a single State property. Adding a fifth state means adding a variant, never a new card.
Favourite toggle: its own two-state component (
Favorited: True/False), differentiated by shape (filled vs. outline) as well as colour, so it doesn't depend on colour perception alone.Progress bar: track + fill; the fill's width is the only thing that changes. Same treatment on the card and in the continue-listening strip, so "progress" looks identical everywhere it appears.
Curated row: header (title + "Vezi toate") over a capped card row ending in the browse-all card. Duplicated per category; only the title and card contents change.
Governance principle carried in: define a pattern once, apply it identically everywhere, rather than re-solving the same affordance per screen.



Outcome & what's next
This is concept work, so there's no launch metric to report, and I'd rather say that than dress up a number. What exists is a measured diagnosis, a system built from it, and a stated hypothesis that hasn't been tested yet:
A homepage of 4-5 curated rows plus a prominent browse-all entry reduces time-to-first-play and raises task confidence versus the current 13-row layout, without reducing access to the archive.
To resolve it: a moderated, task-based test on two tasks, find something to listen to tonight; resume what you started yesterday.
Primary measure: time-to-first-play.
Secondary: rows scrolled before selection, and self-reported confidence.
The decision rule, written before the test: if participants perform better with full-archive visibility, the recommendation changes to in-row filtering rather than row reduction, and the write-up says so. A split result gets reported as inconclusive, not forced into a win.
However… what I'd do differently:
Audit the category pages too. Neither surface I measured is the real archive, the true per-category catalog sits one click deeper. Without that number I can't put a denominator on "curation without losing access."
Recruit outside my own circle. Five friends reacting to a homepage is a pilot, not a study. The people this archive is actually built for skew considerably older than my sample.
Design mobile alongside web, not after. I deferred the touch-pattern decision, which means one of my three problem statements still has no design response.
Resolve cross-listed titles in the UI. The audit's headline finding is duplication, and the redesign de-duplicates presentation but doesn't yet show how a multi-category title is labelled. That gap is the honest limit of this pass.