Illustrative scenario — not a client
B2B client portal for a services firm
A services firm replacing email threads with a portal where each client company tracks its projects, shares files and approves invoices.
Reviewed by Atin Agarwal, IOanyT · 5 October 2026
Document 1 · Readable requirements
Plain prose, not a bullet dump
An excerpt. A real specification covers every screen and flow.
- R-01
Each client company sees only its own work
Users belong to one client company. They see that company's projects, files and invoices and nothing else. A company admin invites colleagues and removes them; removed users lose access immediately.
- R-02
Projects show where things stand
Each project shows its status, milestones with due dates, and the latest update from the firm. Clients can comment on a milestone; comments notify the firm's project lead.
- R-03
Files live with the project
Both sides upload files to a project. Every file keeps its versions, who uploaded each and when. Deleting a file hides it from the client but keeps it for the firm.
- R-04
Invoices are approved, not chased
Invoices imported from the accounting system appear against their project. A client admin approves an invoice or raises a query with a reason; either action is recorded with a timestamp and notifies the firm's finance contact.
Document 2 · Wireframes
Every screen, to review
A few of the screens. Wireframes show what is on each screen and where — not the visual design.
Active
In review
Done
Onboarding · In review
Latest update
- Milestone 1 · Done
- Milestone 2 · In review
- Milestone 3 · Planned
Comment
Onboarding · Milestone 2
- Raise a query
- Download PDF
- Operations · admin
- Finance · member
- IT · member
Invite by email
Swipe for more screens →
Document 3 · Walkthrough
A day in the life of the app
People catch missing scope in a story far more reliably than in a table of requirements.
On Tuesday morning the client's operations manager logs in and sees that the onboarding project moved to "In review". She opens the milestone, reads the firm's update, and leaves a comment asking for one change. Her finance colleague gets an email that a new invoice is waiting, opens it, sees it matches the milestone, and approves it. By ten o'clock, the firm's project lead has the comment and the finance team has the approval, and nobody has sent an email.
Document 4 · Scope
Defined by both lists
In this release
- Company accounts with invited users and two roles (admin, member)
- Project list with status, milestones and due dates
- File sharing per project
- Invoice list with approve and query actions
- Email notifications for status changes and new invoices
- Staff console to manage clients, projects and invoices
Not in this release
- Single sign-on (SSO / SAML)
- In-portal chat
- Online card payment of invoices
- A white-label version per client
- A public API
On a real quote, each carries a price to add it later.
Document 5 · Assumptions register
What the price rests on
If one turns out to be wrong, that is a pre-agreed trigger to re-quote — not an argument.
- English only
- Under two hundred client companies and two thousand users
- Invoices are created in the existing accounting system and imported, not raised in the portal
- Files under 100 MB each
Document 6 · The quote
Three tiers. Every line visible.
QA and security sit in every tier. They are never what a smaller tier removes.
| Line item | Lean | Standard | Premium |
|---|---|---|---|
| Company accounts, invites and two roles | ● | ● | ● |
| Projects with status and milestones | ● | ● | ● |
| Milestone comments with notifications | ● | ● | ● |
| File sharing with versions | ● | ● | ● |
| Staff console for clients and projects | ● | ● | ● |
| Invoices with approve and query | — | ● | ● |
| Email notifications for status and invoices | — | ● | ● |
| Accounting-system sync for invoices | — | — | ● |
| Activity history per client company | — | — | ● |
| Priority support, three months | — | — | ● |
| Test coverage 80%+ | ● | ● | ● |
| Security review | ● | ● | ● |
| Dependency scanning | ● | ● | ● |
Your own quote shows a total for each tier, locked for 14 days from the moment it is issued.
Lean
Accounts and roles, projects with status, file sharing and the staff console
Standard
Lean plus invoices with approve and query, and email notifications
Premium
Standard plus an accounting-system sync, activity history and priority support
An illustrative scenario, not a quote for your project. Your quote is built from your own specification, with a blended total on every line instead of a rate card, and locked for 14 days once issued.
What arrives
Enough to decide with. Then enough to build from.
| Artifact | Free | On signature |
|---|---|---|
| Readable requirements Plain prose, not a bullet dump | Included | |
| Wireframes Every screen, to review | Included | |
| Scope summary What the build covers | Included | |
| Explicit exclusions The "not in this release" list, with backlog prices | Included | |
| Assumptions register Every load-bearing assumption, stated | Included | |
| Three-tier itemized price Traceable line items | Included | |
| Machine-readable spec exports | On signature | |
| Editable wireframe files | On signature | |
| openapi.yaml The API contract | On signature | |
| Mapping CSVs | On signature | |
| Given/when/then suites | On signature | |
| Architecture decisions | On signature |
What arrives free
- Readable requirements Included Plain prose, not a bullet dump
- Wireframes Included Every screen, to review
- Scope summary Included What the build covers
- Explicit exclusions Included The "not in this release" list, with backlog prices
- Assumptions register Included Every load-bearing assumption, stated
- Three-tier itemized price Included Traceable line items
What arrives on signature
- Machine-readable spec exports On signature
- Editable wireframe files On signature
- openapi.yaml On signature
- Mapping CSVs On signature
- Given/when/then suites On signature
- Architecture decisions On signature
What happens next
From your description to the build
- 01
You describe it
In plain words. Today a person runs the intake with you by email.
- 02
It asks back
The questions a good engineer would ask, before anything is priced.
- 03
The documents arrive
Everything on this page, for your project, before you pay anything.
- 04
The price holds
The quote is locked for 14 days from the moment it is issued.
- 05
You sign, we build
Every requirement traced from quote line to accepted build. Changes priced before you approve them.
Defined by both lists
Get this quoted for your project.
No signature, no call. A business email unlocks the full quote.