mithril.md

Mithril
Why I built it
A team lead with three PHP teams has no need for yet another task list. Reality is messier: tasks that are really waiting on someone else, follow-ups you can't forget, one-on-ones with a context of their own per person, a mailbox full of flags and a Jira board you end up reopening every morning anyway. That doesn't fit in a to-do app, and certainly not in my head.
Mithril came out of that itch of my own: a personal browser start page that gathers everything a team lead has on their plate in one place, without parking my data with a SaaS vendor. The name says enough: a lightweight coat of armor for team leads.
The solution
A Progressive Web App on Laravel, built to run daily as your start page:
- Tasks with priorities, categories, kanban and list views, drag-and-drop, recurring tasks and bulk actions.
- Follow-ups in a timeline (overdue > today > this week > later), filled automatically from tasks that are set to "waiting".
- Meetings and one-on-ones with prep items, time estimates and a status lifecycle.
- Teams & members with profile pages that bundle tasks, follow-ups, meeting history and agreements per person.
- Notes in Markdown with live preview, a weekly reflection with charts, and a configurable analytics dashboard.
No "Save" buttons; everything auto-saves via debounced AJAX. The UI has a dark and a light theme inspired by Rivendell (sage green, Philosopher/Outfit typography, subtle elvish details); tech may be beautiful too.
Under the hood
Where it gets interesting is in the integrations and the AI layer:
- Office 365: calendar sync, email inbox and automatic availability of team members via the Microsoft Graph API.
- Jira Cloud: browse assigned, watched and mentioned issues and link them to resources, synced every 5 minutes.
- Audio & AI: in-browser recordings via the MediaRecorder API, a self-hosted Docker transcription service (faster-whisper + pyannote for speaker diarization, CPU and GPU), and multi-provider AI extraction (OpenRouter, Anthropic) that pulls action items, decisions and summaries from meetings; with a review UI, because an LLM doesn't just get the final say.
- REST API with Sanctum tokens and granular
resource:actionpermissions.
The whole thing runs on the queue with a Laravel scheduler underneath, installs as a PWA with an offline fallback, and has two-factor authentication. Tested with Pest v4.
Status
Open source under the MIT license on GitHub. In daily use as my own start page, and very much in development: exactly the kind of project that comes out of having a real problem and happening to be able to build what you're looking for.




legal.json
"company_name": "Bas de Kort",
"legal_form": "sole proprietorship",
"trade_names": ["Bas de Kort", "LengthOfRope"],
"address": "Kerkeakker 3, 6674 EM Herveld, NL",
"chamber_of_commerce": "42038027",
"vat_id": "NL004476145B32",
"contact": { "form": "basdekort.nl/en/contact", "telephone": "+31628456862" },
"documents": [ "privacy", "terms and conditions", "data processing agreement" ]
}