Projects

ToolsBuilt with AI· 2026In use

ClassCopilot

A copilot for teaching. It recalculates the schedule live so the class ends on time, and I follow it from my phone.

View the repository on GitHub

The problem

In an online class, time never works out exactly. An explanation runs long, a question takes ten minutes or an exercise finishes early. Working out in your head what still fits while you are explaining is a distraction at exactly the wrong moment.

How it works

  1. Preparation

    I plan the class in blocks, each with a minimum, ideal and maximum duration, plus a priority queue that decides what goes first when time runs short and what comes in when there is time to spare.

    Preparation
  2. Live

    During the class it keeps recalculating the schedule so it ends on time. It compresses or stretches blocks within their limits, warns me when it's time to wrap up and suggests dropping or adding reserve content.

    Live
  3. On the phone

    The computer and the phone share the same session in real time over the local network. With the phone beside me, I can see at a glance how much time is left in the block and in the class.

    On the phone
  4. Afterwards

    It compares what was planned with what actually happened, block by block, and suggests new ideal durations for next time.

Screenshots taken with a sample class.

How it's built

It's a local tool, a single Node.js server with no dependencies or external services, which stores its data on disk and keeps every device in sync in real time. The scheduling engine is deterministic and covered by tests.

I built it with AI-assisted development. It's exactly what I teach, that when building costs this little, it pays to make custom tools for your own problems.