Sway Teleprompter: A collaborative teleprompter tool designed for real-time, multi-device text synchronization. Ideal for teams in broadcast, stage, and studio production.
- Rename all "reading speed" to "velocity"
- Block the manual scroll when the text is playing
- Is the text color picker still needed? > Keep the code in comment for now.
- Rename the update_text and text_updated events to something more global like "properties"
- Check if I can delete the isPlaying variable in the socket.emit() calls where it's not needed
- Delete font size, velocity changes where not needed
- Merge the local velocity and font sizes changes with the server changes function
- Merge all the socket.emit() calls into one function
- Merge saveState and socket.emit() calls into one function
- Change the functions order to match the controls order (roomID, syncText, roomName, isPlaying, scrollTop, textAlignment, textOrientation, velocity, fontSize, textWidth, textColor, bgColor)
- Check if the e.preventDefault() can be called at the beginning of the function instead of in every if statement
- Refactor the code
- 2 times more velocity steps
- Syncing the text editing scroll position
- Increase font size maximum (new default is 72px)
- Sync text width
- Move the arrows up and down
- Automatically pause the text scrolling when it reach the end of the scroll
- Timer formatting (00:00:00 / 00:00:00)
- Add the space before and after the text automatically depending on the text to start and end where the arrows are
- Add a scrolling pad on controls side menu
- Text editing, synced regularly if edited, not when the user is not editing the text
- (Phone remote) 16:9 prompter preview (can be hidden)
- (Phone remote) Separate text editor
- Add icons for sliders (speedometer for velocity)
- Add a timer before the text scrolling starts (like a countdown)
- Text before reading line grayed out
- Option to show a opacited background over the text to "hightlight" the text reading area
- Right click text editor
- Text spacing
- Screen recording
- Return to top button
- Font selection
- Multriple languages support
- Supports reflection by creating a gradient in background color
- For phone remote, add a button to pause the text scrolling by long pressing the button (toggle to enable long press pausing)
- Information menu (shortcuts, usage like long press to pause on phone, etc.)
- Make a new phone interface like the side menu for a remote use
- Remove jQuery to use only vanilla JavaScript
- Moving all isPlaying changes to toogleAutoScroll()
- Limit the number of interface of the same room opened at the same time
- Button to invert the arrow shortcuts and wheel scroll direction
- Add a button to fullscreen the prompter
- Partnership with a teleprompter manufacturer to create a hardware version of Sway Teleprompter or to suggest to buy a teleprompter (with Sway Teleprompter integrated?)
- Product page (Elgato Prompter product page + Prompter image with feature text scroll inside example)
- Sync record with camera recording or with the video recording software
- UI v2 (new phone remote, new controls)
- Implement Redis to store rate limiting data and for caching to improve performances (don't forget Handle Cache Invalidation)
- Phone remote v2 (scroll pad, new design)
- Voice sync technology
- Automatic captions linked to the prompter text
- Custom keyboard shortcuts
- Elgato stream deck integration
- Bluetooth remote implementation
- Integrated audio recorder (compatible with ASIO driver?)
- Paraphrase and translate text with AI
- Named room system
- Two way synchronization (text, text formatting, velocity, font size, scroll position, play/pause state)
- Automatic text scrolling
- Local settings (text alignment, text reverses, text width, text color, background color, reset button)
- Text formatting (bold, italic, underline, strikethrough, text color, etc.)
- Remote in portrait mobile view
- Rate limiting
- Database implementation
- Reading timer
Need to add other already implemented features
- Fix the "undefined" bug when a state is changed an the other state remains the same
- Fix the velocity shortcut that have a value of "30.000000000000004%" instead of "30%"
- Fix the font size shortcuts that only up or down the font size by 1px
- Fix the play/pause button and shortcut state issue
- Fix the text color picker in the text editor that only work if we press Enter or click on the same text again
- Fix the wheel event that is working with the manual scroll when the text is playing
- Fix the velocity value issue caused by floating-point arithmetic inaccuracies in JavaScript
- Fix the synchronization issue when all the information are not stored on the server because only the last one is stored without all properties
- Fix the sync button that doesn't do anything
- Fix the ability to format the room name text
- Fix the scroll position going to the bottom of the text when formatting the text
- Fix the room name editing that is not working on mobile