LGKA+

It's the app my whole school checks before deciding whether to get out of bed. Which classes are cancelled, what's changed on the timetable, the school news — all of it on your phone in a tap, instead of squinting at a PDF taped to a wall.

More than 500 of the school's ~700 students open it every single morning. That number is the whole story: writing a substitution-plan app is easy, but getting an entire school to actually adopt one and keep it for over a year is the real problem — and the one I'm proudest of solving.


The full picture: substitution plans, personal timetables, school news and events, absence reporting, and local weather — the daily driver for Lessing-Gymnasium Karlsruhe.

The users

Over 500 of roughly 700 students use it daily — on school-managed devices and personal phones alike. That number is the hard part. Anyone can build a substitution-plan app; getting a whole school to adopt one, keep it installed, and open it every morning for over a year is the actual engineering problem. The feedback loop is brutal and wonderful: if something breaks, I hear about it in the hallway within minutes.

What it does

The numbers

1,071 commits, one codebase for iOS and Android. It shipped in June 2025, grew through v2.5.0 over the following ten months, and has been in continuous daily use ever since. These days it's stable and feature-complete — it does its job, and it gets touched when the school changes something, not because it needs rescuing.

Stack

Flutter and Dart, and no backend at all. The app parses the school's substitution PDFs and scrapes its website entirely on the device — nothing of mine sits between the school and the student. PDF parsing does the unglamorous heavy lifting.