Skip to content

The platform is live.

Take a look
The platform · live

A 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

Ask · northwindGrounded
Ask, or tell it to add a task or record a decision...
Everything in one space
How we work together

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.

The loop

Context in. A grounded, cited answer out. Or an honest refusal.

01

You bring the context

Documents, PDFs, Word files, GitHub repositories, anything a client emails in, and the decisions that shaped the build.

02

It indexes and retrieves

Everything is split into passages, embedded, and searched with hybrid retrieval at question time.

03

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

01

You describe the change

In plain language, in the same chat. A new endpoint, a refactor, a fix across a few files.

02

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.

03

You review a pull request

It opens a PR you read and merge. It never pushes to your main branch.

Grounded answers

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.

Out of context, on purpose
What is our parental leave policy?
I do not know. I found documents on architecture, security, and pricing, but nothing on a parental leave policy.

Cited by source kind

1billing-policy.md · Support policyHeading
2runbook.pdf · p.1PDF page
3index.js · L1-37Repo line range
4Decision: which database? · DecisionsDecision log
Ask · northwindGrounded
Ask, or tell it to add a task or record a decision...
Your context layer

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.

Documents
architecture.mdIndexed
runbook.pdfIndexed
pricing.mdIndexed

PDFs cite the page. Markdown cites the heading.

Repositoriesmonorepo aware
acme-inc/platform
500 files · 19 packages
@acme/core42 chunks
@acme/ui18 chunks
@acme/api7 chunks

Cited by file and line, like index.js · L1-37. And editable by the agent, as a pull request you review.

Decisions

Which database should we use?

PostgreSQL on managed RDS

Relational guarantees, mature ecosystem, cheaper to operate at our scale.

PostgreSQLMongoDBDynamoDB

The decision log is folded into retrieval, so the agent can cite why, not just what.

Work arrives by email

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.

Pending reviewnorthwind@in.alicantorun.com

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

Owner: AlicanDue: Fri 15 Aug1 attachment
Confirm onto the boardyou decide, not the reader
Agentic coding

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.
Proposed change5 files+75-1

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.

app.jsconfig.jsmiddleware/rateLimiter.jsmiddleware/requestLogger.jsmiddleware/requestMetrics.js
Pull request #2 opened

Reviewed and merged on your terms

Before it reaches your repo

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.

Board · Northwind MVPAuthentication
To do3
Implement magic-link login
Story#1
Sync inventory across stores
Story#3
Fix off-by-one in stock count
Bug#4
In progress0
drop here
Done0
drop here
Track the work

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.
Work it together

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.

Hand it to the agent

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.

Task #14delegated
  1. Arrived by emailfrom sarah@northwind.co
  2. Confirmed onto the boardowner: Alican · due Fri 15 Aug
  3. Delegated to the coding agentbrief taken from the ticket
  4. Checks passedsecret scan clear · base unchanged
  5. Pull request #2 openedwaiting on your review

One ticket, the whole trail

It can act, on your terms

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.

Proposed · remove task

I found #5 Unassigned backlog item. Deleting is irreversible.

ApproveDenynothing changes until you approve
your terminal
$
Read + write

Search, ask, and add or move tasks and record decisions.

Read only

A token that can only read. Write tools are not even exposed.

Bring your own agent

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

The tools

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.

askread

Ask a question about this workspace. Answers only from its own content, with citations, and refuses when the answer is not there.

search_documentsread

Semantic search across the workspace's documents and indexed code.

list_documentsread

List the workspace's documents and their indexing status.

read_fileread

Read one file in full, by its path or name.

list_boardread

Read the project board: tasks and milestones with their status.

list_decisionsread

Read the decision log: the questions, choices, and why.

get_recent_activityread

What changed recently: tasks added or moved, decisions recorded.

get_usageread

Remaining AI credits, so the agent can pace itself.

create_taskwrite

Add a task to the board.

update_taskwrite

Edit a task's title, description, milestone, or dates.

move_taskwrite

Move a task to another column.

create_milestonewrite

Create a milestone to group tasks.

record_decisionwrite

Record a decision in the log.

create_documentwrite

Save a Markdown document into the workspace, indexed and citable in future answers.

Private by design

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.

Activity & access logappend only

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.

Request access

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.