The platform is live. A private workspace for every engagement, and an agent that answers from your project or says it does not know.
Take a lookA private workspace
that knows, builds,
and launches your project.
Every engagement gets its own space. Upload the documents, connect the repositories, email the work straight in, and an agent answers only from that context, with citations, or says it does not know. Hand a ticket to the coding agent and review the pull request it opens, or describe a site and it builds and publishes it. We work in it together, and you can export the whole thing whenever you want.
By invitation · a few founders at a time
This is my platform, and your project gets a private room inside it. The tools are the ones I built for my own work, opened up to the people I build with. We share one workspace, one source of truth, and one agent that will not invent an answer. The room stays open.
Context in. A grounded, cited answer out. Or an honest refusal.
You bring the context
Documents, PDFs, Word files, GitHub repositories, anything a client emails in, and the decisions that shaped the build.
It indexes and retrieves
Everything is split into passages, embedded, and searched with hybrid retrieval at question time.
You get a cited answer
Answered only from what was found, with a link to every source. Nothing found means it says so.
Or, on a connected repo
You describe the change
In plain language, in the same chat. A new endpoint, a refactor, a fix across a few files.
It edits in a sandbox
The agent reads the code and its git history, then edits files in an isolated clone you review before anything moves.
You review a pull request
It opens a PR you read and merge. It never pushes to your main branch.
It refuses to make things up.
The agent searches your documents, code, and decisions, then answers only from what it finds. Every claim carries a citation you can click. Ask something outside your context and it will tell you it does not know, and list what it does have.
Cited by source kind
Three ways in. All of it answerable.
Uploads, code, and decisions land in one index, so a question reaches across all of them at once.
PDFs cite the page. Markdown cites the heading.
Cited by file and line, like index.js · L1-37. And editable by the agent, as a pull request you review.
Which database should we use?
PostgreSQL on managed RDS
Relational guarantees, mature ecosystem, cheaper to operate at our scale.
The decision log is folded into retrieval, so the agent can cite why, not just what.
Your client does not have to learn a tool.
Every workspace can have its own email address. Your client sends work to it the way they already send everything else, and it arrives as a proposal: a title, an owner picked from your team, and start and due dates, read out of the message. Attachments are filed into Documents and become searchable like any other file.
- One address per workspace. Turn it on, share it, done.
- The dates and the owner are proposed, never assumed.
- An attached screenshot lands on the ticket and in the index.
- Nothing reaches the board until a human confirms it.
The sending address is checked against your team before anything is read, and the reader that proposes the item has no tools, so an email can suggest work but can never perform it.
From sarah@northwind.co
“The checkout page is throwing a 500 on mobile Safari. Screenshot attached. We need this before the Friday launch.”
Proposed
Fix checkout 500 on mobile Safari
It doesn't just read your repo. It changes it.
Connect a GitHub repository and the agent gets a second set of tools. Describe a change and it reads the code, edits files in an isolated sandbox, and cannot install or run it, so treat what it proposes as a careful draft. You review the diff in the chat and open a pull request. It never pushes to your main branch.
- Edits a throwaway sandbox clone, never your machine.
- Dependencies are not installed: it reads the code, it does not run it.
- You open the pull request. The agent never pushes to main.
- A read-only clone token in the sandbox. The write is brokered by the portal.
Add rate limiting, request logging, and metrics
A sliding-window rate limiter, a request logger, a config module, and a GET /metrics endpoint, wired into the app. Verified with node --check.
Reviewed and merged on your terms
Three checks that say what they found.
A guardrail that runs silently is indistinguishable from one that is not running. Each of these reports its own result on the change you are approving, and each one refuses rather than guesses.
Secret scan
The proposal is read for credentials before you ever see it. If it carries one, it is blocked, not flagged.
Base-drift check
The branch the agent cloned is compared against the branch as it stands right now. If someone else touched the same files, it refuses.
Trust receipt
What was checked, by whom, and what was not. A review nobody signed reads as not recorded, never as a quiet pass.
The one that is easy to miss. An agent clones your branch, and a human approves the change some minutes later. If a colleague pushed in between, the pull request would carry a diff nobody approved and would quietly revert their work. The check compares the two and refuses when they overlap. When the comparison comes back incomplete it refuses anyway, because a wrong refusal costs a re-run and a wrong approval costs your code.
A board the client can actually read.
Tasks and milestones, on a board with drag between columns, a list, and a timeline. Every move is written to an activity trail, so the answer to what changed this week comes from the record, not from memory.
- Drag to move. Every move is logged.
- Group into milestones, filter to one.
- Board, list, and timeline of the same work.
- A task carries an owner, dates, files, and a thread.
A team, not an inbox thread.
The conversation about a task lives on the task, so the context does not end up split across email, chat, and someone's memory.
Assign it
Work belongs to a person, and they are told when it does.
Discuss it in place
A comment thread under the task, not a thread in an inbox.
Pull someone in
Type @ to mention a teammate. They join the thread, so later comments reach them too.
Told once, not five times
A bell for what needs you. Activity email is on by default, de-duplicated, one click to stop.
The ticket goes in. The pull request comes back.
A ticket on the board can be delegated straight to the coding agent. It takes the ticket's own title and description as the brief, so nobody retypes anything, and the run is linked back to the ticket that asked for it. The change it proposes, and the pull request you open from it, both appear there. When that pull request is merged, the board knows.
Which closes the loop the rest of this page describes in pieces: a client emails, it becomes a ticket, the ticket becomes a reviewed pull request, and the ticket updates itself.
- Arrived by emailfrom sarah@northwind.co
- Confirmed onto the boardowner: Alican · due Fri 15 Aug
- Delegated to the coding agentbrief taken from the ticket
- Checks passedsecret scan clear · base unchanged
- Pull request #2 openedwaiting on your review
One ticket, the whole trail
Ask it to change the workspace.
The same agent can add and move tasks and record decisions. Turn auto-run on and additive changes take effect at once. Leave it off and each one waits for your approval. Deleting always asks first.
I found #5 Unassigned backlog item. Deleting is irreversible.
Search, ask, and add or move tasks and record decisions.
A token that can only read. Write tools are not even exposed.
Your workspace, on MCP.
Every workspace has its own MCP endpoint. Point your own Claude or Cursor at it with a bearer token and it gets the same grounded tools, scoped to your data alone. A wrong token, or the right token on the wrong workspace, is turned away.
14 tools · scoped by token · rotate or revoke anytime
What your agent can do.
The full tool surface, scoped to one workspace. The read tools work with a read-only token; the write tools change the board and decisions and need a read+write token, and every change shows in the activity log. Answering and search spend AI credits; the other reads are free.
askreadAsk a question about this workspace. Answers only from its own content, with citations, and refuses when the answer is not there.
search_documentsreadSemantic search across the workspace's documents and indexed code.
list_documentsreadList the workspace's documents and their indexing status.
read_filereadRead one file in full, by its path or name.
list_boardreadRead the project board: tasks and milestones with their status.
list_decisionsreadRead the decision log: the questions, choices, and why.
get_recent_activityreadWhat changed recently: tasks added or moved, decisions recorded.
get_usagereadRemaining AI credits, so the agent can pace itself.
create_taskwriteAdd a task to the board.
update_taskwriteEdit a task's title, description, milestone, or dates.
move_taskwriteMove a task to another column.
create_milestonewriteCreate a milestone to group tasks.
record_decisionwriteRecord a decision in the log.
create_documentwriteSave a Markdown document into the workspace, indexed and citable in future answers.
One tenant. One dataset. A record of every look.
Isolation is the product. A workspace can only ever reach its own context, everything sensitive is written to a trail the client can read, and the whole thing leaves with you in one file.
Tenant isolation
Every query is scoped by workspace. One client's token cannot surface another client's documents, board, or code.
Roles that mean something
Owner, admin, and member. Members work in the workspace; inviting people, rotating tokens, and deleting a workspace are admin-only.
Operator access is on the record
When the operator opens a workspace they are not a member of, a banner shows it, and any action they take there is recorded and flagged in the trail.
Portable, not just promised
Export the whole workspace whenever you like: documents, board, decisions, and the trail. Anti-lock-in you can check rather than believe.
Exported the workspace
torun.alican@gmail.com · northwind
Rotated the MCP token
torun.alican@gmail.com
Viewed a documentoperator
operator · as a non-member
Added a repository
torun.alican@gmail.com · acme-inc/platform
Events can never be edited, and go with the workspace when it is deleted.
Give your project a memory.
I work with a handful of founders at a time, and each engagement gets its own workspace. Leave your email and what you are building, and I will set one up with you.
Already have a workspace? Sign in.