u/Puzzleheaded-Rub1400

I taught Python to middle schoolers and hated juggling Zoom + Jupyter, so I built a Google Slides add-on that turns slides into a live coding classroom

A couple years ago I was a high school CS student, and I also taught Python to middle schoolers on the side. The teaching part was always messier than it should have been.

I had slides for the concept, but the moment I wanted to actually show code running, I had to jump to another window. And if I wanted the kids to try it themselves, it was either Jupyter installs that half of them couldn't get working, or everyone taking turns sharing their screen on Zoom. I could never see what all of them were doing at once, so I'd just ask "everyone good?" and hope.

So I built the thing I wanted back then. It's called CodeKiwi. It's a Google Slides add-on that drops a live code editor right next to the deck you already teach from.

How it works:

  • Open the add-on in your Slides deck and mark any slide as a coding question. You can set an expected output so it grades itself.
  • Start the lesson and share one link. Students join with just a name. No accounts, no installs.
  • Students see the slide you're on with a code editor beside it, and write and run Python, JavaScript, or Java right in the browser.

The parts I care about most:

  • Live demo. I can open an editor next to my slide and code live, and every student's editor mirrors mine in real time. Then I toggle it off and they try it themselves. That was the exact thing I could never do before.
  • A live dashboard. I see everyone's code as they type, a status on each student (coding / done / needs help), and a hand-raise button that flags a kid's card the second they're stuck, so I can walk straight to them.
  • Auto-grading + a saved gradebook. Runs check against the expected output instantly, and after class I get a per-question breakdown of everyone's work that I can export.

Student code runs in an isolated sandbox, so nobody can use it to break anything.

It's live on the Google Workspace Marketplace and free. I'd really like feedback, especially from anyone who's taught, on where it falls short for real day-to-day use.

Site: https://www.codekiwi.tech

reddit.com
u/Puzzleheaded-Rub1400 — 8 days ago

I built a Google Slides add-on that turns a deck into a live coding classroom, here's the Apps Script side

A couple years ago I was a high school CS student, and I taught Python to middle schoolers on the side. I wanted to code live next to my slides instead of switching to another window, so I built a Slides add-on for it. Here's the Apps Script side.

What it does: you mark a slide as a coding question in the add-on, start a lesson, and students join with a link and write and run code next to your current slide.

Most of the teacher side runs in Apps Script. The sidebar is HtmlService, opened from the Extensions menu. Marking a slide writes a "Code Question:" note into that slide's speaker notes with the Slides API, so it stays with the deck even if the add-on is removed. Reading the deck to build the lesson uses SlidesApp. The scopes are just presentations, the sidebar, and your email. No Drive scope, which kept the OAuth review simple.

Two things had to run outside Apps Script.

Live updates. Every student's editor and the current slide update in real time, which needs websockets and open connections. Apps Script can't do that, so starting a lesson sends the deck to a small Node server that runs the session over websockets.

Running student code. You can't run untrusted student code in Apps Script, so it runs in a sandboxed micro VM.

The add-on also mints a session and passes the teacher a token in the URL, instead of handling auth in Apps Script.

One thing to know: Marketplace add-ons are pinned to a version, so clasp push doesn't update installed users. You have to cut a new version and repoint the deployment, and a new scope triggers another review.

It's live on the Marketplace and free.

Site: https://www.codekiwi.tech

Marketplace: https://workspace.google.com/marketplace/app/codekiwi/66127405192

Happy to answer questions on the Apps Script to backend split.

reddit.com
u/Puzzleheaded-Rub1400 — 2 months ago