Build Log: Added the Text Overlay Page UI for Reel Quick
Today I worked on the frontend for Reel Quick and added the first version of the Text Overlay page.
The goal was to create the page structure and user flow for adding text overlays to a video, without wiring up the full backend save/process flow yet.
What I added
I introduced a new page for creating text overlays:
- Route:
/create-text-overlay/<video-id> - Added a per-video link from the
/videospage so each video now has a Create action for text overlays - Added a scaffolded frontend page that we can expand later into the full editor
UI decisions locked before implementation
Before building, I confirmed a few product decisions:
- This phase is design only
- Video data should be fetched from the backend API
- “Done / Process Video” is UI-only for now
- Time display should use
mm:ssformat like00:00 - Users can add and delete overlays for now
- No editing flow yet
That helped keep the implementation focused on layout and interaction, not backend behavior.
What the new page includes
The new Text Overlay page now has:
- A header and basic video metadata area
- A left panel for video preview
- A right panel listing the overlays added so far
- A button to open an Add Text Overlay dialog
- Delete action for each overlay item
The video preview is designed to load using the backend video API, and completed videos can use the download endpoint for preview.
Add Text Overlay dialog
When the user clicks Add Text Overlay, a dialog opens with three inputs:
- Text
- Start Time
- End Time
The timing controls are implemented as sliders:
- Start Time slider: from
0tovideo length - 1 - End Time slider: from
start + 1tovideo length
This ensures one important rule stays true:
End time must always be greater than start time.
I also added state logic so the UI enforces that constraint automatically instead of depending only on validation later.
Time formatting
Overlay timings are shown in mm:ss format.
Examples:
00:0000:1201:45
That keeps the interface easy to scan and closer to how users expect media timing to look.
Current scope
This is intentionally not connected to the full processing flow yet.
Right now:
- the page is focused on structure and interaction
- overlays can be added and deleted in the UI
- the “Process Video” action is only a placeholder for now
That gives a usable frontend foundation before moving into API integration and processing workflows.
Files touched
Main changes were made in:
CreateTextOverlayPage.tsx- dynamic route page for
/create-text-overlay/<video-id> -
VideoList.tsxto add the link from the videos table
Environment note
I was not able to run frontend lint/build checks in this environment because npm was not available:
npm: command not found
So this step was completed as a UI implementation pass, but not fully validated through local frontend tooling in the current container.
Why this matters
This is a small but useful step toward turning Reel Quick into a more complete video editing workflow.
Instead of jumping straight into processing logic, I wanted to first lock down:
- page flow
- interaction model
- timing constraints
- overlay creation experience
That makes the next step clearer: connect the UI to backend save and processing endpoints.
Repo
Project repo: https://github.com/ronin1770/reel-quick
Next step
Next I’ll move from UI scaffolding into actual overlay persistence and processing integration so the page can do more than just model the workflow.

Top comments (0)