Case study

Tracker

Case studies
Thijssen Software
Year
2026
Stack
Laravel · Vue 3 · TypeScript · Inertia
Bekijk de code op GitHub →
Cover van de Tracker-case study
Resultaat Het verving de betaalde SaaS volledig en werd de dagelijkse tracker voor elk project dat ik draai, met het aanmaken van tickets rechtstreeks verweven in mijn ontwikkelworkflow.

De uitdaging

Ik draaide al mijn projecten via Linear, totdat dat tegen de limiet op actieve issues van het gratis abonnement aanliep. De keuze was gaan betalen of de tool zelf in handen nemen. Ik pakte het aan als reden om iets te bouwen dat ik volledig zelf beheerde: een tracker die paste bij hoe ik echt werk, al mijn projecten onder één dak hield, en vanaf de command line te bedienen was in plaats van vanuit een browsertab.

Het interessante zat nooit in de lijst met tickets, maar in de structuur eromheen die een tracker eerlijk houdt: stabiele identifiers per project die nooit verschuiven, epics met sub-issues die niet tot een wirwar kunnen ontsporen, een statusflow die overal hetzelfde betekent, en een API die betrouwbaar genoeg is om tegenaan te scripten. Die regels goed krijgen, en ze consistent afdwingen over zowel een web-UI als een publieke API, was het echte werk.

Wat ik heb gebouwd

  • Een tracker voor meerdere projecten, waarbij elk project een eigen sleutel en onafhankelijke nummering heeft, zodat issues duurzame identifiers als CMS-71 krijgen die op hun plek blijven terwijl de rest eromheen beweegt.
  • Het volledige issue-model: types, prioriteiten, een gedeelde statusflow (backlog, in behandeling, in review, klaar), labels, en epics met sub-issues van één niveau diep, met validatie die onmogelijke vormen weigert, zoals een issue dat zijn eigen epic wordt of over projecten heen springt.
  • Een Kanban-bord, filtering en weergaven per project, gebouwd met Inertia en Vue 3 in TypeScript op een Laravel-backend, met Tailwind en shadcn-vue voor de interface.
  • Een JSON-API met tokenauthenticatie (Laravel Sanctum) die de levenscyclus van een issue afdekt, en een command-line client die een ticket aanmaakt en meteen een klaar-voor-gebruik git-branchnaam teruggeeft, zodat een ticket openen en beginnen met werken één handeling zijn.
  • GitHub-integratie via ondertekende webhooks: pull-request-gebeurtenissen worden aan hun issue gekoppeld en op het ticket teruggekaatst, waardoor code en tracker verbonden blijven zonder handmatig bijhouden.
  • Het teamwerk eromheen: projectlidmaatschap en rollen, e-mailuitnodigingen, CSV-import en -export, een dashboard, en een geplande taak die afgeronde issues archiveert om het actieve bord schoon te houden.
  • Gebouwd op dezelfde kwaliteitslat als de rest van mijn werk: Pest feature-tests, statische analyse met PHPStan, en een consistente codestijl afgedwongen met Pint.
Interesse in dit soort werk?

Laten we praten over jouw project.

Start een vergelijkbaar project →