Auto Captions
Every uploaded video gets timed captions without anyone typing them out.
What it adds
An automatic captioning pass over uploaded video that produces a timed caption track shown in the player.
What your agent is told to do
5
What your agent is told to do
5-
1
Extend the app's existing Voice Transcription rather than adding a second speech pipeline. What is new here is timing, storage as a caption track, and player integration, not the recognition itself.
-
2
Run captioning as a background job triggered after the upload finishes, and reuse the app's existing job progress reporting so the user can see where a long file has got to.
-
3
Store the caption track as its own record linked to the media, with a language, a status, and a source marking it as machine-generated so a human correction can supersede it later.
-
4
Expose the track through the app's existing player with a caption toggle, and remember the viewer's on or off choice across videos.
-
5
Do not block the upload or the publish step on captioning. The video should be watchable immediately, with captions appearing when they are ready.
Edge cases it handles
8
Edge cases it handles
8- Long files must be queued with visible progress rather than holding the upload request open. A ninety minute recording will otherwise time out somewhere between the browser and the worker.
- Audio-only tracks, silent tracks, and pure music must resolve to a clear no-speech-detected state rather than writing an empty caption file that the player advertises as available captions.
- Cap each caption line to a readable length and each cue to a sensible on-screen duration, and split long sentences across cues instead of pushing a wall of text over the picture.
- When generation fails partway through a long file, keep the cues already produced, mark the track as partial, and offer a resume rather than discarding an hour of work.
- Trimming, re-encoding, or replacing the source media invalidates the timings. Detect the change and either re-run the pass or mark the track as out of sync rather than showing captions that drift.
- Multiple speakers, heavy accents, and background noise all reduce accuracy. Label machine-generated tracks as such in the player so viewers calibrate their trust.
- Store a confidence signal per cue where the recognition provides one, so a later editing pass can highlight the lines most likely to be wrong.
- A caption track puts whatever was said in the room onto a public page and into search results, transcribed automatically with nobody reading it first. Give the owner a review step before the track is published, and let them correct or suppress a single line rather than only switching the whole track off.
Definition of done
9
Definition of done
9- Uploading a video queues a captioning job without blocking the upload or publish.
- Progress is visible for long files and reported through the app's existing job progress surface.
- Completed tracks appear as a selectable caption option in the player and are labelled machine-generated.
- Silent and audio-only sources produce a no-speech state, never an empty advertised track.
- Cue length and on-screen duration stay within readable limits.
- A failed run preserves partial results and can be resumed.
- Replacing or trimming the source media invalidates or regenerates the track.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Accessible Name Validator
Accessible Name Validator
Find every control a screen reader announces as nothing useful.
What it does
An audit of the computed accessible name of each interactive element in the rendered interface.
How it works
- 1 Compute the name the way assistive technology does — following the resolution order through labels, referenced elements, attributes, and text content — rather than reading the source markup and guessing.
- 2 Report three separate failures: an empty name, a generic name such as button, link, or here, and duplicate names within the same context where several controls announce identically.
- 3 Prefer a fix that adds a visible label. A control given a hidden name is announced but still mysterious to the sighted user who cannot tell two identical icons apart.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/accessible-name-validator
Focus Ring System
Focus Ring System
Give every focusable control one clear focus indicator that belongs to the design.
What it does
A single focus treatment applied consistently across buttons, links, inputs, cards, rows, and custom controls.
How it works
- 1 Inventory every focusable element in the app, including the ones made focusable by hand — clickable rows, cards, canvas objects, custom selects — and confirm each shows the shared treatment.
- 2 Distinguish focus arriving from the keyboard from focus arriving from a click, and show the ring for keyboard and programmatic focus. A ring appearing on every mouse press reads as a rendering fault and invites someone to remove it entirely.
- 3 Compose the ring so it stays visible on every surface the control can sit on: page background, card, coloured button, dark toolbar, selected row. A single-colour ring will disappear against at least one of them.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/focus-ring-system
Touch Target Checker
Touch Target Checker
Find the controls that are too small or too crowded to hit reliably on a phone.
What it does
A development-time audit reporting the measured hit area and neighbour spacing of every interactive element.
How it works
- 1 Measure the element's actual activation area — the region that responds to a tap — rather than the icon or glyph drawn inside it, since padding and pseudo-element extensions frequently make a small icon a perfectly adequate target.
- 2 Check the gap between adjacent targets as well as their size. Two comfortable buttons sitting flush against each other still produce mis-taps, and the report must say which of the two problems it found.
- 3 Report the offending elements with enough context to locate them — the route, the component, and a way to highlight the element on the page — rather than a count of failures.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/touch-target-checker
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.