Telegraph Academy: Learn Morse, Save the Express
Inspiration
This year's theme, Steel and Steam, led us to one of the Victorian era's most important inventions: the electric telegraph. Telegraph operators turned words into pulses of electricity, and Morse code let a message travel faster than any steam train.
While researching, we learned that Morse code is still used today. People who cannot speak or move much, such as people with ALS or severe motor disabilities, can communicate with a single switch: a tap, a breath, or a blink. So we built a game that teaches a 180-year-old skill that can still give someone a voice.
What it does
Telegraph Academy is a browser game where you are a new apprentice in an 1887 railway telegraph office.
- Learn Morse by playing: tap the brass telegraph key with your spacebar or finger. A quick tap is a dot, a longer press is a dash. Each level teaches two new letters.
- Race the runaway train: the 9:15 Express is speeding toward a collapsed bridge. Every correct letter moves your telegraph signal forward, and mistakes let the train gain ground.
- Meet your guide: Station Master Miss Sophia Hartwell, a voiced character, gives an interactive tour of the game and coaches you between levels.
- AI coaching: after each level, Gemini looks at which letters you got wrong, your accuracy and your speed, then writes Sophia's feedback and the next message, focused on your weak letters.
- Line Dispatch Map: between levels, an animated steam train travels across an 1887 railway map from Penzance to London Paddington.
- Lifeline Mode: tap any message in Morse and it is spoken aloud in a natural human voice, turning the game into a real communication tool.
How we built it
We built Telegraph Academy in Google AI Studio, describing every feature, screen and bug fix to Gemini in plain English, testing each change, and improving it step by step. The result is a React + TypeScript web app with a backend.
- Gemini API: powers Sophia's coaching. The game sends the player's mistakes, accuracy, speed and story progress, and Gemini returns feedback and the next practice message. If the call fails, pre-written messages keep the game running.
- ElevenLabs: voices Sophia's lines and powers the live text-to-speech in Lifeline Mode. The API key is stored as a secret and limited to text-to-speech only.
- Web Audio API: creates the telegraph clicks, tones and steam sounds.
- GitHub and a custom domain from GoDaddy Registry: the code is on GitHub and the game is live at telegraphacademy.study.
Challenges we ran into
- Levels out of sync: the game showed "Level 2" but played Level 1's content. We learned what an off-by-one bug is and how to explain it clearly so it could be fixed.
- Long Morse codes breaking the layout: letters like L, Q and J did not fit in their tiles on the ticker tape until the tiles were redesigned.
- Silent audio: browsers block sound until the user clicks, so Sophia's first line was silent. We added an "Enter the Telegraph Office" screen to fix it.
- Keeping API keys safe: we learned to store keys as secrets instead of in the code, limit what each key can do, and check the code before every GitHub push.
Accomplishments that we're proud of
- Going from bare minimum coding experience to a published, voiced, fully playable game in one night.
- Building Lifeline Mode, which turns a history game into something that could genuinely help a person communicate.
What we learned
- How web apps fit together: frontend, backend, APIs, secrets, GitHub, hosting and domains.
- How to fix bugs by describing problems clearly and testing one change at a time.
- That Morse code, a Victorian invention, is still a powerful accessibility tool today.
What's next for Telegraph Academy
- Support for physical single-switch devices and eye-blink input using a webcam.
- More routes, levels, numbers and punctuation.
- Testing Lifeline Mode with people who use assistive technology.
- Making it work fully offline.
Built With
- assistive-technology
- canvas
- elevenlabs
- express.js
- gemini-api
- google-gemini
- html5
- morse-code
- node.js
- react
- typescript
- web-audio-api
Log in or sign up for Devpost to join the conversation.