Tack
Project tracking for machines and humans
Tack is a project tracking API built for teams that want Kanban-style boards without the overhead of a full project management platform. Projects, lists, cards, labels, comments, and activity logs — all through a single REST API.
Jira has 47 issue field types, 12 workflow transition conditions, and a query language that requires its own documentation. Trello is simpler, but its API was bolted on after the fact and returns deeply nested objects that trip up every AI coding assistant we have tested. Tack starts from the other direction: the API is the product.
Three primitives. Flat JSON. Predictable URLs. Every response is shaped so that a language model can read it in a single pass and decide what to do next. Humans get the same benefit — less ceremony, more shipping.
Core features
Everything you need to run a project board through an API. Nothing you need a consultant to configure.
Projects, lists, and cards
Three primitives, zero configuration. A Project holds Lists. A List holds Cards. Cards carry a title, markdown body, assignees, labels, priority, and a due date. That is the entire data model.
Move and reorder via API
Move a card between lists, reorder within a list, or batch-move dozens of cards in a single request. Every position change is atomic and conflict-free.
Structured for LLMs
Flat, predictable JSON on every response. No nested object graphs, no polymorphic types, no pagination tokens that expire. AI agents read and write Tack without adapters.
Labels and priorities
Create workspace-level labels and apply them to any card. Filter, sort, and group by label or priority across projects. Simple enough for a prompt, powerful enough for a dashboard.
Threaded comments
Every card supports a comment thread. Humans leave context, AI agents post status updates. Comments are markdown-formatted and timestamped.
Activity feed
Every card creation, move, assignment, label change, and comment is recorded in an immutable activity log. Query it per-card, per-project, or per-workspace.
How it works
A typical integration takes three steps: create a Workspace, set up a Project with Lists, and start creating Cards. Here is what that looks like.
Step 1
Create a Workspace
A Workspace is a container for all your projects. It maps to a team, an organization, or a customer in a multi-tenant setup.
POST /v1/workspaces
{
"name": "acme-eng",
"display_name": "Acme Engineering"
}Step 2
Create a Project with Lists
A Project holds your Lists (columns). Create a project and seed it with the columns that match your workflow.
POST /v1/workspaces/acme-eng/projects
{
"name": "q1-roadmap",
"display_name": "Q1 Roadmap",
"lists": [
{ "name": "backlog", "display_name": "Backlog" },
{ "name": "in-progress", "display_name": "In Progress" },
{ "name": "review", "display_name": "Review" },
{ "name": "done", "display_name": "Done" }
]
}Step 3
Create and move Cards
Cards are your units of work. Create them in any list, move them as work progresses, and let your AI agent or your team do the rest.
POST /v1/workspaces/acme-eng/projects/q1-roadmap/cards
{
"title": "Integrate payment provider",
"body": "Set up Stripe checkout flow for the billing page.",
"list": "backlog",
"priority": "high",
"assignees": ["usr_01HQ3..."],
"labels": ["backend", "billing"],
"due_at": "2026-03-15T00:00:00Z"
}Technical details
Under the hood, Tack is a stateless NestJS service backed by PostgreSQL. Here is what matters for your integration.
REST-first design
Standard HTTP verbs, JSON payloads, consistent error shapes. No GraphQL, no SDKs. If you can make a POST request, you can manage a project board.
Workspace isolation
Each Workspace is a fully isolated partition. Projects, cards, labels, and activity from one Workspace are invisible to another. Plug in Heimdall for team-level auth.
Batch operations
Move, update, or archive up to 100 cards in a single API call. Perfect for AI agents that triage an entire backlog at once.
Webhook events
Subscribe to card.created, card.moved, card.completed, comment.added, and more. Tack sends signed payloads to your endpoint in real time.
LLM-friendly surface
Consistent field names, ISO 8601 timestamps, enum-based statuses, and human-readable error messages. Designed so language models can operate boards without custom tooling.
Horizontal scaling
Stateless request handling backed by PostgreSQL. Deploy behind a load balancer, cache nothing on the server side, and let the database do what it does best.
Built for these use cases
AI-managed sprints
Let an LLM agent triage incoming bugs, assign priority, move cards through your workflow, and post summaries. The board stays current without anyone touching a UI.
Developer tooling
Integrate Tack into your CI pipeline. Create cards from failed tests, move them to "Done" when the fix ships, and link activity back to commits.
Lightweight internal tools
Build a task tracker for your ops team without adopting a 200-feature project management suite. Tack gives you the API; you build the interface that fits your team.
Multi-tenant SaaS
Each customer gets their own Workspace. Embed project boards in your product without building task management from scratch. Scope access with Heimdall tokens.
Ready to ditch the bloated board?
Tack is rolling out to early access users soon. Join the waitlist to get access to the API, documentation, and direct support from the team building it.