jz.
Let’s talk ↗
↖ SELECTED WORK

04 / PROJECT STUDY

Aside

Room for a question. An interactive podcast player that helps curiosity become part of the listening experience.

FORMAT

Interactive audio project

TOOLS

React · TypeScript

EXPLORE
Project website Source
LISTEN. ASK. FIND YOUR WAY BACK.ASIDE / AUDIO & AI
Stay curious.

A QUESTION CAN HAVE ITS OWN SPACE WITHOUT LOSING THE ORIGINAL THREAD.

01 / THE EXPERIENCE

A question belongs in the conversation.

A podcast can spark a question before the episode has finished. Aside explores a listening flow where you can interrupt, ask about the current context, follow up, and return to the show at a natural point.

Timestamped transcripts and a content map connect the question to the episode. The return path is a first-class part of the experience.

02 / THE STATE MODEL

One interruption. One return point.

The first interruption saves a semantic resume anchor. Follow-up questions stay attached to that anchor. Playback, pending answers, and device connections follow explicit ownership rules so that stale work cannot take over a newer session.

THE LISTENING LOOPSELECT A PHASE ↓
Stay with the story.

Original audio and a timestamped transcript establish the context. Listening-session state owns the playback position and device connections.

INTERACTION MODEL · THIS DIAGRAM DOES NOT RECORD AUDIO OR CALL AN AI SERVICE

03 / THE BOUNDARIES

Keep the central idea portable.

The domain engine defines the playback and conversation contracts. Browser-facing adapters connect those rules to audio devices, transcripts, and UI controls; backend code handles analysis, persistence, and model-facing work.

The project documents both local development and its Cloudflare deployment, including private audio libraries and account flows. Its source remains the best place to check current capabilities and setup requirements.

Read the project documentation
READ THE BUILD NOTEThe state behind a good interruption