-
What works: calm notes, good to know and care notes, ready to hand to whoever's on next.
-
Here's what I heard: confirm or correct each fact, with a gentle steer-clear question (brother Tom, loud bangs).
-
Joan's story: tell the Go-Between in your own words, or tap Send on her ready-made "This is me".
-
Qloo's look-up streams into the chat place by place; the gallery opens as soon as the first results are in.
-
Places they knew, pinned to their towns: from Joan's story first, then Qloo's long-standing places around Leeds.
-
Front Room: bring their years into the room. Start with an example or see Margaret's gallery.
-
Margaret's gallery: Start here and shelves of songs, TV, books and places, each saying why it's there (the family, or Qloo).
What works for them, handed to whoever's on next.
Inspiration
It's 18:00 in a care home. The person on shift may be new, or from an agency, and has never met the woman in the front room. They don't know she danced at the Cavern every Saturday, that she loved Cilla Black, or that her brother Tom is never to be mentioned.
The information often exists. Families fill in the Alzheimer's Society's "This is me": where someone grew up, the people and places that matter, what they like. But research on life story work found the finished book often isn't used day to day (NIHR). Staff turnover in adult social care in England is around a quarter a year (RCN on Skills for Care), so what one carer learned about a person often leaves with them.
We wanted the story to be in the carer's hand at the moment it's needed, and to keep a record of what actually worked.
What it does
Front Room turns a family's story into a gallery of the songs, films, TV and places of someone's youth. It tells staff what to say about each one, and learns from one-tap logs what works for that person.
- Add someone. A consent card records who is telling the story and whether the person agreed. There's no login: each person has a private link, and anyone with it can add to their story.
- Tell their story to the Go-Between. Type, paste, talk, or photograph a paper "This is me" (a PDF works too). Each message comes back as Here's what I heard, quoting the teller's own words, to confirm or correct. Anything painful gets a gentle steer clear? question, and only a short label is kept, never the reason. Follow-ups dig into the teller's words, in their language, and ask for what's missing, including the language the person grew up speaking.
- Find things. For each place they lived, Qloo looks up the years they were about 10 to 30 there: the artists of that decade around that town, the films and TV of those years, the historic places, and things like what they love. The look-up streams into the chat, and the gallery opens as soon as the first results are in.
- The gallery.
- It opens with Before you start, a 30-second handover card (For staff, or For a visit). It shows what works, what to avoid, what to talk about, what calms them, and the comfort checks first.
- Then a Start here row of three, and shelves: Works for them, New tries, Songs, Films, On the telly, Books, Places they knew.
- Every card has a hook tied to the person ("Out in 1963, when Joan was 17 and living in Liverpool"), an open question, and what they might answer.
- Every card also says why it's there: "From the family", or what Qloo found ("Why this: Qloo, popular with people from Liverpool in the 60s").
- A film offers a song from it, and a TV show its theme tune. Everything plays through Spotify or YouTube; nothing is hosted.
- Log it with one tap: Calm, Engaged, Sang along, Tearful or Upset, with Undo. Stop · something calm instead is always in reach.
- It learns.
- Engaged or sang along on two days, and an item is proven: it moves to Works for them.
- One upset pauses it. Tearful isn't the same as upset, so the family is asked whether to keep it.
- New tries come from Qloo, seeded by what's proven.
- What works holds the handover card and the care notes, with a Print button. Get to know them better reopens the chat with what's known and the most useful question next, safety first ("Upset during Hey Jude on 24 Oct: steer clear?").
Try the fictional Margaret first: five days of logs, so you can see what works rise to the top.
How we built it
Qloo is the bridge from "where and when" to "what they'd know". For each place in the story (up to four), we work out the years they lived there between ages 10 and 30. Then:
- The decade's music tag:
GET /v2/tags, withfilter.query(for example "60s") andfilter.tag.types=urn:tag:genre:music. - Era artists around the place:
GET /v2/insights, withfilter.type=urn:entity:artist, the decade tag infilter.tags, and the town insignal.location.query. - Films and TV of those years:
GET /v2/insightsforurn:entity:movieandurn:entity:tv_show, withfilter.release_year.min/maxand the town as a location signal.- Horror is excluded with
filter.exclude.tags. - Results are filtered again by genre against the person's steer-clear list, so war and crime are hidden when the family says loud bangs or the war.
- Historic places:
GET /v2/insightsforurn:entity:place, withfilter.location.queryand theurn:tag:ambience:qloo:historictag. That's how a 1960s dance hall comes up. - Things like what they love:
GET /searchfinds the artist, film, show or book the family named, thenGET /v2/insightswithsignal.interests.entitiesfinds more like it. For artists, the decade tag and the town are added too. - New tries: the same "more like this" call, seeded by what staff logged as working, picks the next thing to try. The more a home logs, the more personal the suggestions get.
- Pictures: card images are Qloo entity images.
Qloo only ever gets places, years and taste entities, never a person's name or a steer-clear topic. Every call goes through our NotOnQ drop-in API first, with a direct Qloo fallback after an error or a timeout.
The model has narrow jobs. Claude Sonnet, through the Vercel AI SDK 7 and AI Gateway:
- reads the teller's words into facts, each with a quote of what they said, plus one or two follow-ups in their language;
- reads a photo or PDF of a paper "This is me" into text, leaving out surnames, addresses, diagnoses and medication;
- picks one well-known song per artist from the right years, because Qloo knows artists, not songs.
MusicBrainz checks every song title as a real recording by that artist before anyone sees it.
Card words (the hooks and prompts) are written in code, not by the model, so they only state what's known: the year, their age then, the place.
Stack: Next.js 16, React 19, TypeScript, shadcn/ui and Tailwind with our Front Room design system, Zod, Postgres on Neon (PGlite locally), Vitest and Playwright, deployed on Vercel. The whole app also runs offline on fixture data and a mock model, for tests and rehearsals.
Challenges we ran into
- The evidence changed our pitch. We started with "music calms evening agitation". The research doesn't support that claim. The Cochrane review finds music-based therapy may help depressive symptoms in the short term, and the large Music & Memory trial's results on agitation depend on how it was measured. So we make no medical claims, and we rebuilt Front Room around the stranger at 18:00 and a handover card.
- Era-correct isn't always right. An early gallery put The Godfather next to a steer-clear of "loud bangs". Films and TV are now checked against the steer-clear list, and gentle genres come first.
- Global hits crowded out local ones. Our first live run for a woman from Sevilla returned The Beatles and The Sound of Music. We now send Qloo real decade tags plus the place, check films and TV against the country, and fall back to NotOnQ for local artists of that era.
- Era picks are guesses. Songs picked by era alone often don't spark anything. So the family's own loves go first, Qloo's picks are labelled as new tries, and only the logs can make something "Works for them".
- Qloo knows artists, not songs. The model picks a song per artist, and MusicBrainz checks it's real. Titles it can't find are dropped.
- Places came back as universities and research libraries. Places from their story now come first, and institutions are dropped unless the family named them.
- Tears aren't distress. Tearful is its own log, and the family decides whether to keep the song.
- Waiting is hard to watch. A full look-up for two places takes a minute or more live. So films, TV and places open the gallery first, and songs join as MusicBrainz checks them.
Accomplishments that we're proud of
- A new carer can read what works for someone in 30 seconds, before they walk in.
- A paper "This is me" can be photographed and read straight into the chat, so the forms already in folders get used.
- It works beyond English. The chat follows up in the teller's language (Rosa's story is in Spanish), and the handover card shows the language a person grew up speaking (Amrit: Punjabi).
- Every card says what to say, and none of it is invented.
- Calm is never guessed: the card only says something calms them when it was logged calm or the family said so.
- It works beyond the UK and US. Rosa (Sevilla, then Madrid) gets Spanish music and films of her years: Julio Iglesias, Paco de Lucía, Camarón de la Isla, The Spirit of the Beehive and Cría Cuervos. Amrit's Amritsar stays in India: Lata Mangeshkar, Kishore Kumar and The World of Apu. Where Qloo is thin for a place and decade, our NotOnQ fills in that era's local artists from MusicBrainz, labelled.
- Places are chosen with care: memorials, cemeteries and sites of atrocities or disasters are left out unless the family named them.
What we learned
- Personal beats generic, but only the person can confirm it. Era-matched suggestions are a starting point. The family's words and the logs decide.
- Safety is part of the product, not an extra. Personal music can bring sadness and painful memories, so steer clear, Tearful and Stop sit in the main flow.
- Say less than you could. No "reduces agitation", no "therapy". What we offer is engagement and connection, logged by staff.
What's next for Front Room
- A care-home view: everyone in the home and what works for each, for the shift lead.
- Accounts for homes, staff and families, in place of today's private links.
- The whole app in other languages, not just the chat.
- An MCP App: the gallery inside Claude and ChatGPT.
- A licensing check on images, and a pilot with real families and activity teams.
Front Room helps you share music and memories. It is not music therapy or a treatment. Watch how they respond and stop if they seem upset or overwhelmed.
Built With
- ai-gateway
- claude
- musicbrainz
- neon
- next.js
- notonq
- pglite
- playwright
- postgresql
- qloo
- react
- shadcn-ui
- spotify
- tailwindcss
- typescript
- vercel
- vercel-ai-sdk
- vitest
- youtube
- zod

Log in or sign up for Devpost to join the conversation.