mithril.md

Aanleiding
Een teamlead met drie PHP-teams heeft geen behoefte aan nóg een takenlijst. De praktijk is rommeliger: taken die eigenlijk op iemand anders wachten, follow-ups die je niet mag vergeten, 1-op-1's met per persoon een eigen context, een mailbox vol vlaggen en een Jira-bord dat je toch elke ochtend opnieuw openklikt. Dat past niet in een to-do-app, en al helemaal niet in mijn hoofd.
Mithril is ontstaan uit die eigen jeuk: een persoonlijke browser-startpagina die alles wat een teamlead op zijn bord heeft op één plek verzamelt, zonder mijn data bij een SaaS-partij te parkeren. De naam zegt genoeg: lichtgewicht harnas voor teamleiders.
Oplossing
Een Progressive Web App op Laravel, gebouwd om dagelijks als startpagina te draaien:
- Taken met prioriteiten, categorieën, kanban- en lijstweergave, drag-and-drop, terugkerende taken en bulkacties.
- Follow-ups in een tijdlijn (te laat > vandaag > deze week > later), automatisch gevuld vanuit taken die op "wachten" staan.
- Meetings en 1-op-1's met prep-items, tijdsinschattingen en een statuslevenscyclus.
- Teams & leden met profielpagina's die taken, follow-ups, meetinghistorie en afspraken per persoon bundelen.
- Notities in Markdown met live preview, weekreflectie met grafieken, en een configureerbaar analytics-dashboard.
Geen "Opslaan"-knoppen; alles auto-saved via debounced AJAX. De UI heeft een donker en licht thema met een Rivendell-inspiratie (sage green, Philosopher/Outfit-typografie, subtiele elvish details); techniek mag ook mooi zijn.
Onder de motorkap
Waar het interessant wordt, zit in de integraties en de AI-laag:
- Office 365: agenda-sync, e-mailinbox en automatische beschikbaarheid van teamleden via de Microsoft Graph API.
- Jira Cloud: toegewezen, gevolgde en gementionde issues doorbladeren en koppelen aan resources, elke 5 minuten gesynchroniseerd.
- Audio & AI: in-browser opnames via de MediaRecorder API, een zelf-gehoste Docker-transcriptieservice (faster-whisper + pyannote voor speaker-diarization, CPU én GPU), en multi-provider AI-extractie (OpenRouter, Anthropic) die actiepunten, beslissingen en samenvattingen uit meetings haalt; met een review-UI, want een LLM krijgt niet zomaar het laatste woord.
- REST API met Sanctum-tokens en granulaire
resource:action-rechten.
De hele boel draait op de queue met een Laravel-scheduler eronder, is als PWA installeerbaar met offline-fallback, en heeft tweefactor-authenticatie. Getest met Pest v4.
Status
Open source onder MIT-licentie op GitHub. Actief in gebruik als mijn eigen dagelijkse startpagina, en volop in ontwikkeling: precies het soort project dat ontstaat wanneer je een echt probleem hebt en toevallig zelf kunt bouwen wat je zoekt.




legal.json
"bedrijfsnaam": "Bas de Kort",
"rechtsvorm": "eenmanszaak",
"handelsnamen": ["Bas de Kort", "LengthOfRope"],
"vestigingsadres": "Kerkeakker 3, 6674 EM Herveld, NL",
"kvk": "42038027",
"btw_id": "NL004476145B32",
"contact": { "form": "basdekort.nl/contact", "telephone": "+31628456862" },
"documenten": [ "privacy", "algemene voorwaarden", "verwerkersovereenkomst" ]
}