Agency Manager Product Spec
Product Summary
This product is a multi-tenant agency operating system with a client portal.
It should help an agency run delivery, billing, and client communication from one place while also giving clients a clean portal to review work, invoices, files, and account status.
The first real customer is the owner's own agency. The architecture should still preserve a path to selling the app to other agencies later.
Core Outcome
An agency should be able to onboard a client, manage active work, track time, bill through Stripe, and share delivery artifacts without scattering the relationship across email, chat, spreadsheets, and separate tools.
A client should be able to log in and immediately see what matters:
- current projects
- recent deliverables
- invoices and payment status
- shared files and documents
- key account contacts and next steps
Surface Mapping
The starter's existing surfaces map cleanly to this product:
orgAgency staff workspace. This is where the agency owner, operators, project managers, finance staff, and delivery staff do their work.portalClient-facing portal. This is where client contacts log in on the tenant host to view work, billing, files, and updates.platformProduct-operator surface for the future SaaS layer. This is not the first build priority, but it remains the correct home for cross-agency administration, billing-plan management, support tooling, and internal ops.
Jobs To Be Done
For the agency
- onboard and organize clients without ad hoc spreadsheets
- track projects, retainers, and active work in one account context
- log time against clients and projects
- send or expose invoices and payment status through Stripe-backed billing
- share files, documents, and approvals in a client-specific workspace
- give clients visibility without giving them access to internal agency operations
For the client
- see what work is active and what has been completed
- review invoices and payment status without chasing emails
- download files, contracts, and deliverables from one place
- know who their contacts are and what the next step is
- access an account portal that feels specific to their agency relationship, not like a generic admin console
Product Pillars
1. Client visibility
Clients should always be able to answer: what is happening, what is done, what is owed, and what requires my attention.
2. Agency operational clarity
The agency should have one system of record for client relationships, projects, time, documents, and billing state.
3. Billing confidence
Billing should be clear and trustworthy. Stripe is the billing source of truth, but the portal should make invoices, subscriptions, and payment methods easy to understand and act on.
4. Delivery artifacts in context
Files, links, notes, and approvals should live in the client workspace rather than being lost across email threads and chat tools.
Core Product Domains
Client accounts
- client organization record
- client contacts and portal access
- service status and relationship metadata
Delivery management
- projects
- milestones or workstreams
- statuses and deadlines
- activity timeline or updates
Time tracking
- time entries
- billable vs non-billable time
- project and client rollups
- internal visibility for agency staff
Billing
- Stripe customer mapping
- invoices
- subscriptions or retainers
- payment methods and payment status
- billing history visible to the client
Files and documents
- uploaded files
- shared documents
- delivery attachments
- contracts, statements of work, and other account documents
Core Entities
The first domain model should stay explicit and boring.
agencyThe operating tenant on the org surface.clientAccountA customer relationship owned by one agency.portalUserAn org-scoped portal identity for one external person inside one agency tenant.portalAccessGrantA company-specific access grant that links a portal identity to one client account and one client-local person record.engagementA commercial relationship such as retainer, project-based engagement, or support plan.projectA delivery unit under a client account or engagement.timeEntryStaff time logged against a client account, project, or task.billingProfileStripe-linked billing metadata for the client account.invoiceRecordA mirrored billing view for invoices or payment state needed in the app.documentA shared file, contract, or client-facing asset.
MVP Boundary
The first sellable version does not need to be a full agency ERP.
The MVP should cover:
- agency-side client directory
- client account setup and portal access
- project tracking at a useful but simple level
- time tracking tied to client and project records
- Stripe-backed billing visibility and payment actions
- file and document sharing
The MVP should not try to solve everything at once. These areas can wait until after the first working release:
- proposals and CRM pipeline automation
- deep task management or sprint planning
- white-label custom theming per agency tenant
- advanced automation and notification orchestration
- marketplace, partner, or reseller flows
Product Strategy
Build the product in this order:
- Make it useful for one real agency.
- Make the client portal credible and trustworthy.
- Add the billing and delivery workflows that replace the most fragmented manual work.
- Only then harden the platform surface for selling to many agencies.
The product should optimize for operational usefulness before breadth.
Supporting Maps
Use these documents with this spec:
capability-map.mdFull feature inventory, grouped by domain and surface.feature-contract.mdThe locked product feature set and what each capability must actually do.operating-model.mdEnd-to-end workflows and source-of-truth rules.domain-model.mdCore entities, relationships, and lifecycle boundaries.surface-map.mdRough route and information-architecture ownership fororg,portal, and laterplatform.logic-rules.mdNon-negotiable business rules for billing, subscriptions, projects, time, files, and docs.starterkit-integration-map.mdHow this product should connect into the current starterkit's auth, org, portal, and billing seams.stripe-client-billing-model.mdThe detailed model for agencies connecting Stripe and operating client billing from inside the app.billing-workflows.mdThe exact Stripe-side workflows the app should support first.billing-permissions.mdAgency and client permission model for billing actions.agency-rbac-model.mdAgency-side role templates, owner-configurable permissions, and user-specific exception rules.org-rbac-surface-behavior.mdWhich org screens, sections, and actions each agency capability should unlock.agency-rbac-persistence-model.mdWhere RBAC state should live inorg/access, including role policy, client scope, and user overrides.first-pass-data-shape.mdImplementation-grade first-wave table and field direction for client, billing, document, and RBAC records.org-implementation-checklist.mdRoute-by-route checklist for the firstorgimplementation slice.billing-ux-map.mdFirst-pass billing information architecture and interaction map.file-collaboration-model.mdThe right-from-the-start model for shared drive behavior, client uploads, and lightweight upload requests.backend-module-map.mdRecommended Convex ownership boundaries and table direction.