Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Morse Training App

Podcast Deploy CI Codespaces


A webbased game and podcast focused on learning to "head copy" morse code.

News Headlines in Morse Code Podcast

This podcast is released twice a day and includes the latest news headlines, delivered in Morse Code at the selected speed (Listen to an example).


Most of the credit goes to Stephen C. Phillips for his excellent Morse Pro library which I use to create the mp3 files for the headlines. Credit also goes to Kurt Zoglmann who open sourced Morse Code Ninja where I was able to get great word/callsign/training lists from.

Headcopy Mobile Game


  • Should be optimized for mobile users
    • No keyboard entry, multiple choice
    • Should work on a variety of devices and mobile browsers
    • Ideally should not require an application to be installed
    • No signup or login, user can get started immediately
  • Should encourage headcopy (make the user wait until completion of callsign or phrase to answer)
  • Free of any requirement for a backend server (static website)
    • Low data usage for mobile users
    • Should be hostable with almost no cost
  • Scoring/gamification should encourage the user to shoot for a long term goal (e.g. decode 50k characters) versus getting discouraged by periods little or no improvement.
  • Should be easy for developers to implement new game modes and game data (e.g. Top 100 words, DXCC100 Calls, etc.)
  • Open source and free forever!


  • Node >= 17.x


The easiest way to get started is to fork this project and open up a Github Codespace. It should work out of the box.

If you want to develop on your own machine, use the following:

  • git clone
  • cd
  • yarn install
  • yarn dev
  • Open your browser to localhost:3000/head-copy/

Morse Code Headlines

This is both a web application and a podcast generator.


  • Node >= 17.x
  • ffmpeg installed


All deployment is scheduled and handled via Github Actions, however, it's possible to deploy a podcast to your own AWS S3 bucket using the following:

Generate and deploy a podcast locally

Assumes you have the required env variables (NEWSAPI_KEY and AWS keys)

Create a new podcast and upload it to S3 (15wpm / 25wpm character speed)

yarn ts-node podcast/bin/new_podcast.ts -w 15 -f 25 --prefix podcast

Update RSS feed (15/25wpm) based on S3 contents

yarn ts-node podcast/bin/update_rss.ts -w 15 -f 25 --prefix podcast

Update headlines.json (updates website headline game)

yarn ts-node podcast/bin/update_headlines.ts --prefix podcast