Skip to content
ProductDevelopment.io
Private betaAccess by request while we onboard teams one at a timeAgent-first product development

The workspace your team and your coding agents share.

Tickets, cycles, customers, meeting notes and delivery forecasts in one place — plus 115 MCP tools, so Claude Code and Codex open your repository, pull the plan for that exact application and update the work under the same rules as your team.

Same cycle · same tickets · bugs, changes and features per application

productdevelopment.io — Digital Horizon · By application
Cycle 246 days left
In Progress2
!PD-412Magic-link sign-in for the client portal12mAM
PD-409Invoice PDF totals round twice41mRN
In Review2
PD-407Move image uploads to edge functions1hKO
PD-401Order export endpoint for the mobile app2hSV
Todo2
PD-398Empty state for the bookings list3hDL
PD-394Rotate the staging database credentials5hAM
Backlog2
PD-388Search results skip archived customers1dKO
PD-381Webhook retries for payment provider2dRN
Done2
PD-377Checkout crashes on expired sessions2dSV
PD-370Cache product catalogue at the edge3dDL
Live · demo workspace
0Open tickets0Agent updates today0In triage0%Cycle complete
Claude Code picked up PD-412 · version 7 → 8Kickoff call with Nordlys · 4 actions → NOR-214…NOR-218Triage rule routed PD-409 to R. Nakamura · label bug/pd create in #harbor-app → HAR-211Cycle 23 rolled over · 3 unfinished tickets reviewedCodex moved PD-401 to In reviewForecast refreshed · 85% chance by Oct 14Stale write rejected · PD-407 changed since it was read
What makes it different

Built for teams where agents write code too

Most project tools were designed for people clicking through a browser, then given an API later. ProductDevelopment.io was designed from the start for teams whose coding agents do real work — so the plan, the rules and the context around the work are built for agents as much as for people.

Stitched together today
Issue trackerCRMMeeting notesForecast spreadsheetContext pasted into chat

And someone keeps them in sync by hand — or an agent works from whichever one it was pointed at.

5places to keep current
With ProductDevelopment.ioOne workspace for people, clients and agents

The same records behind the app, Slack, the REST API and every MCP tool call.

Agent-first · 115 MCP tools

Your coding agent works from the real plan

ProductDevelopment.io runs its own MCP server on the same database as the app. Claude Code, Codex or any MCP client signs in once, then reads the plan for the repository it is standing in, picks up tickets and records progress — with the permissions of the person who connected it.

Claude Code~/code/client-portal connected
What should I work on in this repo?

An illustration with demo data. Tool names and behaviour are the server's own.

Connect once, per person
# your workspace's MCP endpoint
claude mcp add --transport http \
  productdevelopment https://<your-workspace>/api/mcp

Browser sign-in with OAuth and a consent screen, or a workspace token that expires after 90 days. Plus an agent package with a development workflow skill for Claude Code and Codex.

A few of the 115 tools
plan_contextMatch the git remote to an application and return its plan
workspace_contextIdentity, team and exact counts in one compact read
search_issuesPaginated search by text, stage, owner, cycle or label
bulk_update_issuesEdit 1–100 tickets atomically, each at its version
convert_meeting_actionsTurn reviewed meeting actions into linked tickets
development_reportFlow, cycle time and Monte Carlo delivery forecast
Same role as the personOwner, admin, member or viewer — an agent can do exactly what the person who connected it can do, in that one workspace.
Version-checked writesEvery update sends the version it read. If a teammate changed the ticket first, nothing is written and the agent re-reads.
Scoped and revocableRead or write scope, rotating refresh tokens, and a list of connections you can revoke from the Integrations screen.
Ticket text is dataThe server tells agents to treat notes, descriptions and comments as untrusted data — never as instructions.
Clients & meetings

From the client call to the cycle, without retyping

If you build for clients, the reason behind a ticket is usually a conversation. ProductDevelopment.io keeps the customer, the meeting and the resulting tickets linked — so the developer, and the agent, can see why the work exists and who it is for.

1Bring in the meeting
Nordlys · kickoff callGranola

## Next steps

  • Add Arabic to the booking flow
  • Send staging link for sign-off by Friday
  • Quote phase two: staff scheduling
  • Ask about their hosting contract
2Review what becomes work
ProjectNordlys booking app
CustomerNordlys Hotels
Reviewed noteversion 3
Create 3 tickets
3Tickets linked both ways
NOR-218Add Arabic to the booking flow kickoff call Nordlys Hotels
NOR-219Send staging link for sign-off kickoff call Nordlys Hotels
NOR-220Quote phase two: staff scheduling kickoff call Nordlys Hotels
Three ways inImport from Granola with your own API key and a private preview, upload a Markdown or text file, or paste the notes. Each Granola meeting imports once per workspace.
No surprise ticketsUnchecked tasks, TODO and ACTION lines, and bullets under a next-steps heading are suggested — found by fixed rules, not a model. You pick; converting again never duplicates.
A CRM that knows the workCustomers carry contact, stage and notes, and link to the applications you build for them. Open a customer and see its projects; open a ticket and see the meeting behind it.
Private beta · access by request

Put your team, your clients and your agents on one plan

We are opening workspaces to a few teams at a time. Bring a real application and the agent you already code with — we will set it up with you.

The workspace

Structure your team and your agents both follow

Several applications, several clients, one team. The workspace records what each application is built with, who picks up which kind of ticket, and when cycles start and end — so nobody, human or agent, has to guess.

Application

Applications with a tech stack

Website, web app, CRM, mobile app, API, MCP server or internal tool — each with its database, hosting, functions, frontend, backend and git repository on record.

TypeWeb app
FrontendNext.js
DatabasePostgres
FunctionsEdge
HostingVercel
Repositoryacme/client-portal
Rules

Ticket types with their own rules

Bug, change, feature or task. Each type can have a default owner, a starting stage and the stages it may use — and projects can require an owner, estimate or closed blockers before Done.

TypeDefault ownerStarts in
BugR. NakamuraTriage
FeatureA. MarchettiBacklog
ChangeK. OseiTodo
TaskTodo

Done requires an owner, an estimate and closed blockers

Schedule

Cycles on a schedule

Recurring cycles for the whole workspace or per project: 1 to 56 days long, with a cooldown, up to 12 planned ahead. Roll unfinished work over after a review, or automatically.

Cycle 23Rolled over
Cycle 24Active · 6 days left
Cycle 25Scheduled
Cycle 26Scheduled

2-week cycles · 0 unfinished carried to Cycle 24

Triage that routes itselfUp to 20 ordered rules match title or source and set the owner and labels on new tickets. Snooze for an hour, a day or a week.
Custom stages, per projectName your own stages under Triage, Backlog, Todo, In progress, In review, Done and Canceled — and limit which moves are allowed.
Saved viewsBoard or list, grouped by stage or owner, filtered by type, cycle, milestone, labels or due date, with a manual order you drag.
Bulk edits that cannot half-applyChange stage, owner, cycle or labels on up to 100 tickets. One stale ticket rejects the whole batch.
Insights & forecasts

Delivery dates from history, not from hope

Reports are rebuilt from each ticket's recorded history, so work that moved between projects, was reopened or was deleted still counts where and when it really was. Ask “when will this be done?” and get a range with a probability — in the app, or from your agent.

Cumulative flow · last 14 days

See where work piles up

Daily counts per stage category, and per custom stage, over a rolling window of 1 to 90 days. Filter by project or cycle.

DoneIn reviewIn progressTodo
Monte Carlo forecast

A date range, with odds

P50Oct 8
P85Oct 14
P95Oct 21

12 open tickets in scope. 2,000 simulations resample your past weeks of completions — and give the chance of hitting your deadline.

Lead & cycle time
Median cycle time3.2 days
85th percentile7.5 days
Longest in reviewPD-388 · 9 days
12 sections in every saved reportForecasts need at least 4 complete weeks and 10 completions — below that, the report says so instead of guessing.
Summary
Delivery events
Cumulative flow
Workflow stage flow
Lead & cycle times
Delivery forecast
Time in stage
Cycle scope
Current status
Points by cycle
Aging work
Blocked work
How it runs

From request to forecast in four moves

The same loop for a client follow-up and a production bug — and the same loop whether a person or an agent does the step.

01

Capture from anywhere

Press C in the app, type /pd create in Slack, convert a client meeting, start from a template — or let your agent open the ticket. Triage rules route it.

  • Bug, change, feature or task
  • Triage routing and snooze
  • Duplicate resolution
02

Plan the cycle

Pull work into a scheduled cycle, check capacity per person, and attach milestones. Unfinished work rolls over after you review it — or automatically.

  • Per-project schedules
  • Capacity and availability
  • Milestones and roadmap
03

Build with your agent

Open the repository. Your agent matches it to the application, reads the plan and updates tickets as it goes — rejected, never overwriting, if a teammate got there first.

  • plan_context by git remote
  • Version-checked updates
  • Documents on tickets
04

Measure and forecast

Cumulative flow, time in stage and cycle time percentiles show how work actually moved. The forecast turns that history into a delivery date with odds.

  • Rebuilt from history
  • Monte Carlo P50–P95
  • Saved, shared reports
Integrations

Every door opens onto the same records

The app, your agents, Slack and the API do not sync copies of each other. They read and write one database, under one set of roles and version checks — so there is nothing to drift.

115 tools

MCP for Claude Code, Codex and more

A Streamable HTTP MCP server with OAuth 2.1 sign-in, a workspace resource, and prompts for a daily update and for planning open tickets. Plus an agent package with a development workflow skill.

plan_contextsearch_issuesbulk_update_issuesconvert_meeting_actionsdevelopment_reportrollover_cycle
Slash command

Slack

Map a channel to a project, then create, search, list, update and triage its tickets with /pd. Opt in to project updates in the channel.

/pd create Add login rate limit/pd search invoice/pd update PD-409 In review/pd triage ready

Granola

Connect with your own API key, stored encrypted. Browse and preview meetings privately, edit, then import once and turn actions into tickets.

How meetings work

REST API

Authenticated /api/v1 for projects, tickets, cycles, milestones, customers, notes, documents, saved views and reports — plus search, bulk edits, transitions, rollover and meeting conversion. The same service layer as the app and MCP.

PATCH /api/v1/issues/{id}
{ "priority": "High", "version": 7 }

Email

Workspace invitations and password recovery through Resend, when you switch it on. Manual invite links work without it.

Not yet

GitHub & importers

Applications record their repository so agents find the right plan, but pull request sync and backlog importers are not built yet. Tell us if you need them.

Your data, your server

One codebase. One database file. Yours.

The web app, CRM, REST API and MCP server are one TypeScript application on one SQLite database. It is built to run on a server you control — so your plan, your client records and your meeting notes do not have to live in someone else's cloud.

npm run db:backupOnline SQLite backup with a SHA-256 manifest
npm run db:verifyChecks a bundle before you rely on it
npm run db:restoreRestores to a new file, revokes copied access, pauses pending jobs
Access, the same everywhere
Four rolesOwner, admin, member and viewer — the same checks for the browser, Slack, the REST API and every agent.
Scoped accessOAuth with read or write scope and rotating refresh tokens, workspace tokens that expire, and sessions you can revoke.
Secrets encryptedSlack bot tokens and Granola keys are stored with AES-256-GCM. Passwords are hashed with scrypt, and logins are throttled.
Hardened requestsA fresh script nonce on every page, bounded upload sizes and read deadlines on the API and MCP endpoints.

And for the humans: C creates a ticket where you are,K searches everything, in light or dark.

MCP tools0Discovered by the official MCP client in the verification suite
Record kinds0Tickets, cycles, customers, notes, documents and more, readable and writable by agents
Report sections0From cumulative flow to aging and blocked work
Forecast simulations0Per Monte Carlo delivery forecast, P50 to P95

Bring a real project, not a sandbox

We are opening workspaces to a few teams at a time — especially teams that build several applications and already code with Claude Code or Codex. Tell us what you build and we set it up with you.