Why I built it
Client work usually lives in email threads: a brief in one, the quote in another, feedback on designs in screenshots, and payments in a spreadsheet. I wanted every client to have one private place where the whole project is visible, from the first brief to the last invoice.
What it does
- A smart brief at /start, with questions that fit the kind of project, saved as you type.
- A private request page where we talk the project through before it starts.
- Proposals accepted online. The client types their name; the exact text they accepted is fingerprinted and kept.
- A project page with phases, progress and payments, updates with comments, and a checklist of what I need from them.
- Approvals on exact versions. Designs and documents are previewed in the page, Figma files open beside them, and an approval is tied to the exact bytes of the file.
- Notes pinned on designs. Clients tap a spot on an image, or on any page of a PDF, and leave a numbered note. Open notes follow the file to its next version.
- Invoices and receipts, with "I've paid", confirmation and gentle reminders.
- Reviews at the end, shown on this site only if the client allows it.
Built carefully
Every data function checks who is asking, and a test fails if a new one forgets to. Files are checked by their real type, downloads can't run in the browser, and every page sends a strict content security policy. It runs on my own server, beside other apps, without disturbing them.
Try it
The brief is public: start one at /start. Everything after it is private to each client, so the diagram above shows how a project moves through it.



