Skip to content

User stories

Who SlideStream is for and what they need from it. Each story names its status: done (in a release), or the roadmap phase that delivers it. Decisions behind them are in the ADRs; the order of work is in the roadmap. For step-by-step recipes see USE_CASES.md.

People

Who Wants Uses
Lecturer Turn lecture notes or an existing deck into a narrated video for students; keep teaching in their own voice and their institution's style Desktop app or CLI
Technical instructor Lecture videos with code, tables and diagrams that stay correct CLI
Explainer maker Short, good-looking videos from an idea or a sentence, with a presenter and music Desktop app or web UI
Power user Script everything, run their own AI servers, control every step CLI, config files
Institution operator Host SlideStream for staff, with their own servers, quotas and privacy rules Docker, web UI
Viewer (student, member of the public) Watch and follow the result, including with a hearing or vision impairment The video, captions, transcript
Newcomer Try it with no account, no keys and no setup Hosted demo, then desktop app

Stories

Getting started

  • As a newcomer, I want to make a narrated video from a Markdown file with no keys or servers, so I can judge the tool in minutes. Done (offline Kokoro voice, text cards, bundled ffmpeg).
  • As a newcomer, I want the website and PyPI page to describe what the tool does today and how to install it in one line. Phase 11.
  • As a lecturer, I want a desktop app that installs and updates itself, so I never open a terminal. Done (unsigned); signing Phase 9.
  • As a lecturer, I want to see which of my AI servers are working before I render, so a long render doesn't fail at the end. Phase 3.

Sources and content

  • As a lecturer, I want to narrate my existing PowerPoint from its speaker notes. Done.
  • As a lecturer, I want to start from a topic sentence, a Word document or a PDF and get a draft deck. Done (draft); long and scanned documents Phase 15.
  • As a technical instructor, I want code blocks and tables in my Markdown to stay intact on the slides and in the deck. Done (2.16).
  • As a technical instructor, I want numeric tables shown as charts. Phase 15.

Voice and narration

  • As a lecturer, I want the narration in my own cloned voice, deleted from the server afterwards. Done (Voicebox, Chatterbox).
  • As a lecturer, I want narration to work offline and keep my text on my machine. Done (Kokoro floor, ADR-0012).
  • As a lecturer, I want acronyms, names and code read correctly. Phase 14.
  • As a lecturer, I want to add pauses where students need time to think. Phase 14.
  • As a lecturer, I want to check and edit the narration script before the expensive render starts. Phase 5.

Look and design

  • As a lecturer, I want new slides in my university's PowerPoint template, so videos match my other teaching material. Phase 2c.
  • As a lecturer, I want my already-styled deck to keep its look in the video. Done (--preserve-style).
  • As an explainer maker, I want a professionally designed deck from my outline, with a choice of templates. Done, experimental (Presenton).
  • As a technical instructor, I want to be told when a designer dropped or changed my content, and to get my code back. Done (ADR-0013).
  • As a power user, I want one switch to choose plain, my template, Presenton or my own design. Phase 6.

The video

  • As a lecturer, I want a presenter in the corner, from a mascot to an animated photo of me, at a cost I choose. Done.
  • As a lecturer, I want bullets to appear as I talk about them, so students follow along. Phase 14.
  • As a technical instructor, I want to show a screen recording on a slide. Phase 14.
  • As an explainer maker, I want background music that never drowns the voice. Phase 7.
  • As an explainer maker, I want a vertical version for short-video platforms. Phase 13.
  • As an explainer maker, I want presets such as "lecture" or "creative" instead of a dozen options. Phase 8.

Accessibility

  • As a viewer who is deaf or hard of hearing, I want captions on every video. Phase 12.
  • As a viewer, I want a transcript I can read, search and translate. Phase 12.
  • As a viewer, I want chapters so I can jump to the part I need. Phase 12.
  • As a viewer using a screen reader, I want pictures in the deck to have alt text. Phase 12.
  • As a lecturer, I want to be warned about low contrast and small text before I publish. Phase 12.

Outputs and sharing

  • As a lecturer, I want an editable PowerPoint with the narration in the speaker notes, to present live. Done.
  • As a lecturer, I want a handout PDF with slides and notes. Phase 13.
  • As a lecturer, I want a single web page that plays the presentation offline. Phase 13.

Control and automation

  • As a power user, I want to stop after any step, edit its output and carry on without redoing earlier work. Phases 4 and 5.
  • As a power user, I want to see which engine and fallback level was actually used for each step. Phase 3.
  • As a power user, I want to render a whole course folder in one command. Future work.
  • As a power user, I want AI agents to drive renders through MCP. Future work.
  • As a lecturer, I want versions of my video in other languages. Future work.

Hosting

  • As an institution operator, I want to host the web UI with our own servers and keys, behind our proxy, with rate limits. Done.
  • As an institution operator, I want to keep API keys out of plain-text files on staff machines. Phase 9 (OS keychain).

Adding a story

Write it as "As a person, I want something, so reason." Give it a status. If no phase delivers it, add it to the roadmap's future work rather than leaving it unowned.