mithril.md

Mithril

Mithril

Year
2026
Role
Creator & Lead Developer
Client
Open source (MIT)
Categories
Stack
  • PHP 8.4
  • Laravel 12
  • MariaDB
  • Alpine.js
  • Tailwind CSS v4
  • TypeScript
  • Vite
  • Pest
Link
https://github.com/lengthofrope/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:action permissions.

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.