<p><em>On building Félagi, and what a work tracker looks like when half your team is made of software.</em></p><p>There is a particular kind of quiet that settles over a codebase at the end of a long day. Ours ended at version 0.51.2 — the seventy-fifth release since the last day of July. Fourteen days. One hundred and forty-one commits. Forty-eight models, sixty-two migrations, twenty guides, and 1,918 tests that all pass, including three that only run when there is a real MySQL to run them against.</p><p>I mention the numbers not to boast. I mention them because they are the argument.</p><h2>The thesis, and the proof</h2><p>Félagi is a work tracker where agents are teammates rather than tools. You assign an issue to Freya the way you would assign it to Astrid. A run is queued. She claims the work, writes the code, opens a pull request, and reports back — and the issue shows what she did, what it cost, and how long it took.</p><p>Every tracker on the market has a story about AI now. Most of them mean a summarise button.</p><p>What makes ours different is not the ambition, it is that Félagi was built the way Félagi says work should happen. A fortnight of a human and a set of agents working the board, and the board is the product. When the daemon needed a protocol, an agent proposed it. When the skills system needed skills, it wrote them. The dogfooding is not a marketing exercise; it is the only reason a project this size exists after two weeks.</p><h2>Where the competition actually stands</h2><p>Let us be fair to the people doing good work.</p><p>Linear is beautiful and the fastest thing in the category, because it is local-first: the entire workspace lives in your browser, and the server is a sync target rather than a source of truth. That is a genuine engineering achievement and it is why it feels the way it does. We are not that, deliberately. Our expensive operations are agent runs that take minutes, not keystrokes that take milliseconds — and you cannot work offline on a product whose defining act is dispatching work to a machine somewhere else.</p><p>Jira can be configured into any shape, which is also the complaint.</p><p>Asana and Monday manage work beautifully and know nothing about code.</p><p>And then there is the new crowd — Devin, background agents, Copilot Workspace. They are genuinely impressive at doing the work. But they are tools you point at a problem. When the session ends, what the agent learned evaporates. There is no board, no colleague, no history, no cost.</p><p>That is the gap Félagi sits in, and as far as I can tell nobody else is in it: the trackers do not treat agents as workers, and the agent tools do not track anything.</p><h2>The things I am quietly proud of</h2><p>Not the feature list. The judgements underneath it.</p><p><strong>Skills compound.</strong> An agent that solves something writes down how, and proposes it as a skill. Next month a different agent starts from there. That is the difference between a workforce and a very fast temp.</p><p><strong>Money is on the issue.</strong> Every run carries its real cost, so a project has a number next to it that is not a guess. Ask a competitor what a feature cost and watch the silence.</p><p><strong>Measured time and remembered time are different colours.</strong> A timer that ran is not the same claim as an hour somebody typed in on Friday, and a timesheet that pretends otherwise is lying politely.</p><p><strong>The client hears twice.</strong> Subscribers outside the company get told when work starts and when it lands — one sentence, written for a stranger, never the internal description.</p><p><strong>Statuses are data.</strong> Rename <code>in progress</code> to <code>Building</code> and every burndown, every report, every progress bar follows. This has bitten us twice, and both times the fix was to stop having a place that remembered the old name.</p><h2>The honest part</h2><p>Today alone, five bugs reached production. Every one of them had the same signature: nothing complained.</p><p>An enrolment screen that answered 500 because the runtime lacked one PHP extension that the build container had. A webhook that returned 419 Page Expired to GitHub, sitting under twenty-one passing tests — because Laravel skips forgery checks while testing. Three form fields that looked saved and only ever updated the browser, a Livewire 4 change we had not followed through. And, an hour ago, a column rename that SQLite silently forgave and MySQL rightly refused.</p><p>None of these were exotic. All of them shipped green.</p><p>I write this down because a blog post that only lists triumphs is a brochure, and because the lesson is the interesting part: the failure mode that costs the most is not the error. It is the silence. Almost everything we have built this fortnight for observability — the badge that says whether GitHub has ever called, the note beside a field that says saved, the audit line when somebody removes their second factor — exists because something once failed without saying so.</p><h2>Where this is going</h2><p>The board knows about your code now, in both directions. Cut a branch called <code>ACME-12-fix-the-loop</code> and that issue starts itself. Open the pull request and it appears on the issue, follows it to merged, and closes it when it lands. Félagi reports back with a check and a comment, as an app with two permissions rather than a token wearing somebody's name.</p><p>Saved views landed this afternoon. The last gap I could name against Linear closed with it.</p><p>What is left is deliberate: no initiatives above projects, no story points, no arbitrarily deep nesting, no local-first sync engine. Each of those is a decision, written down, with a reason.</p><p>Two weeks in, that feels like the right place to be. Not finished — 0.51.2 is not a number that claims to be finished. But pointed somewhere specific, and honest about the distance.</p><p><em>Félagi is Old Norse for companions. It seemed like the right name for software whose whole argument is that your next ten teammates will not be human.</em></p>