acta
The project manager I run my own work in every day: boards, tables and timelines that update live, public roadmaps and GitHub links, and an MCP server so coding agents can work the same board.
- 3Views of one task set: board, table and timeline
- 19MCP tools for agents
- 31kLines of TypeScript

Problem
Most project tools are either too heavy for a small team or too thin to plan with, and they feel slow, with every click waiting on the network. None of them treat coding agents as part of the team, so the work an agent does happens off the board.
What I built
Acta is the project manager I plan all my own work in, Calx and Calcite included. One set of tasks shows as a board, a table or a timeline. Changes from teammates appear live, and boards you have opened load instantly. Workspaces have roles, boards get their own fields and status names, any board can be published as a public roadmap with voting, and a GitHub App ties branches, commits and pull requests to tasks. Agents work the same boards through an MCP server or an HTTP API.
How
- 01
Next.js 16 with the App Router and Cache Components, on Supabase for auth, Postgres, realtime and storage.
- 02
Boards you have opened stay in memory: going back shows them at once and fetches only what changed. View, columns, sorting and saved filters follow you across devices.
- 03
Changes from teammates and agents appear as they happen, and presence shows who else is on the board.
- 04
Each board can have its own fields (text, numbers, dates, single and multi selects), shown as table columns, and its own names for statuses. My tasks gathers everything assigned to you across a workspace.
- 05
The GitHub App shows branches, commits and pull requests that name a task on that task, with checks and review state, moves it along and marks it done on merge. Issues sync both ways.
- 06
Agents connect over MCP, or the same tools as plain JSON at /api/v1/<tool>. A key acts as the person who made it, is checked at the route and again in the database, and every change it makes is credited to it.
claude mcp add --transport http --scope user acta https://acta.aaenz.no/api/mcp \
--header "Authorization: Bearer <key>"
# then, in the project's AGENTS.md or CLAUDE.md
Acta board: workspace/boardResult
Live at acta.aaenz.no, with a demo board that works without an account. I use it every day: it runs Aaen Studios’ work, including the Calx and Calcite phase gates, with agents working those boards next to me.
Learned
A tool you live in has to be fast before it is anything else. Keeping opened boards in memory and fetching only what changed did more for how Acta feels than any single feature.