Movie Planner
Een gedeelde filmkalender die ik bouwde om elke AI coding agent uit te proberen: Claude Code, Codex en Cursor, via terminal, desktop en web.

Movie Planner is een gedeelde filmkalender. Iedereen houdt een eigen lijst bij, zet de films die de moeite waard zijn op een gezamenlijk bord en abonneert zich op de planning via een .ics-feed in Google Calendar of Apple Calendar.
Waarom dit bestaat
De app is het excuus, niet het doel. Ik wilde elke AI coding agent serieus uitproberen, en niet één keer, maar op elke manier waarop je hem kunt aansturen. Movie Planner werd de testbank: een echte app, gebouwd door agents, terwijl ik de regie hield.
Wat de app doet
Je voegt films toe met titel, datum, tijd, omschrijving en poster. Wat op het programma mag stuur je naar het gedeelde bord, een oneindig scrollende tijdlijn gegroepeerd per datum. Bovenaan staat een .ics-link, dus de planning landt vanzelf in je agenda.


Naar je agenda
Het bord genereert een .ics-feed via een publieke endpoint. Je plakt de link één keer in je agenda-app en elke nieuwe film verschijnt automatisch als afspraak. Tijdzone staat op Europe/Amsterdam.

De agents
Drie agents, elk via meerdere interfaces. Claude Code en Codex zette ik in via de terminal, een desktop-app en het web. Cursor gebruikte ik via de app en het web. Acht combinaties in totaal, allemaal aan dezelfde codebase.
| Agent | Terminal | Desktop-app | Web |
|---|---|---|---|
| Claude Code | Ja | Ja | Ja |
| Codex | Ja | Ja | Ja |
| Cursor | Nee | Ja | Ja |
Terminal, app of web
Dezelfde agent voelt anders per interface. In de terminal zit je dicht op de code en gaat het snel. In een desktop-app heb je meer overzicht over diffs en bestanden. Via het web start je werk vanaf elke plek, ook als je niet achter je eigen machine zit. Door alles naast elkaar te gebruiken werd duidelijk wat bij welk moment past.
Dit was een leerproject. Het ging niet om de mooiste film-app, maar om grip krijgen op agentic coding en de verschillen tussen de tools en hun interfaces.
Onder de motorkap
Next.js 16 met de App Router, SQLite via Drizzle ORM en inloggen met Google via NextAuth. Posters gaan naar een Wasabi S3-bucket, de agenda-feed komt uit ical-generator. Alles dark mode, zonder gradients, alleen vlakke kleuren en randen. Draait in Docker.
Bekijk de code op GitHub