Skip to main content

Build Your Own Software Teleprompter

This challenge is to build your own software based teleprompter. With this coding challenge I’m really scratching my own itch. I have a hardware teleprompter, which is great. I can look at the teleprompter and I see a full additional screen. When I’m looking directly at the screen it looks like I’m looking directly at the guest I’m talking to on my podcast - Coding Chats. It’s brilliant for that.

Unfortunately as a teleprompter, when it comes to displaying a script for me to record a video for the Coding Challenges YouTube channel, it is terrible. I can’t simply import a document. When you enter text it wants to break it into chunks and for the life of me I cannot get it to scroll at a sensible speed.

Instead I’d taken to using the fact that it works as a second screen to simply display the document I’m working from and then scroll it manually. Of course being a software engineer, there’s another option - build a software teleprompter! Which I have done. Now it’s your turn!

The Challenge - Building A Software Teleprompter

In this coding challenge you’re going to be building a software teleprompter. It will allow the user to enter some text, set the font face, set the line spacing, scale the font size, set the scroll speed and start and stop the scrolling of the text.

You could build this as a terminal application, desktop application, mobile application or web based. If you go for a mobile or web application I encourage you to deploy it! If you create a terminal or desktop application, have it built and available as a release on your GitHub repo. Treat this project just as you would a professional one - practice as you perform!

Step Zero

As always we start at step zero. This is where you decide what sort of application you’re going to build and how you’re going to build it, selecting the programming language and tech stack you’ll use.

Step 1

In this step your goal is to allow the user to enter some text. By the time you have completed this step a user should be able to start the teleprompter and both type in or paste into it the text that they wish to be prompted with.

Be sure to show the user the text.

Step 2

In this step your goal is to allow the user to format the text. As a minimum they should be able to set the font face and size for all the text. They should also be able to add newlines.

Add some controls below the text that allow the user to select a font face and a slider to change the font size.

Ideally, stretch yourself and allow formatting with Markdown so they can create headings and emphasis within the document.

Step 3

In this step your goal is to support adjusting the left and right margins as well as adjusting the line spacing. Add some controls below the text that allow the user to make these changes.

Step 4

In this step your goal is to allow the user to set the scroll speed and start / stop the scrolling

via a button on the UI or by pressing the space bar, when the text entry box is not selected.

Step 5

In this step your goal is to support mirroring of the text vertically. Add a button to mirror the text, when clicked it should mirror and un-mirror the text. Be sure to ensure that the scrolling still works correctly.

Step 6

In this step your goal is to allow the user to import the text from an external source, I would suggest a URL, i.e. to import a markdown from a GitHub repo and from a Google Doc using the Google Docs API.

Going Further

How to take this further:

  • Ship it! Deploy it!
  • Allow upload of a document including text, MS Word and PDF.
  • Add support for listening to the speaker, then scrolling at the speed of their delivery.

Help Others by Sharing Your Solutions!

If you think your solution is an example other developers can learn from please share it, put it on GitHub, GitLab or elsewhere. Then let me know - ping me a message on the Discord Server, via Twitter or LinkedIn or just post about it there and tag me. Alternately please add a link to it in the Coding Challenges Shared Solutions Github repo.

Get The Challenges By Email

If you would like to receive the coding challenges by email, you can subscribe to the weekly newsletter on SubStack here: