Secure file upload and sharing per client is a bounded, well-documented build. If you want e-signature on top, that's a second real feature, not an extension of the first.
Borderline
Effort: a weekendRunning cost: $0/mo to start
Why CanICodeThis says Borderline
Client accounts with a private, per-client file area is standard access-controlled file storage
Uploading and organizing documents (tax returns, statements) by year or category is ordinary CRUD
Notifying a client by email when a new document is ready is one transactional-email call
The parts that'll cause problems
E-signature on documents (if you want clients to sign forms in the portal) needs its own build — a real, separate feature, not a checkbox on file upload
Handling genuinely sensitive financial documents raises the bar on access-control correctness beyond a typical file-sharing app
Two-way messaging between accountant and client adds a real chat feature if you want it
How I'd build this
frontend
Next.js
database
Supabase
auth
Supabase Auth
hosting
Vercel / Cloudflare Pages
MVP scope
Client accounts with a private file area each
Upload, categorize, and organize documents by year
Email notification when a new document is uploaded for them
Admin view to manage all clients
Postpone to v2
E-signature on uploaded documents
In-portal messaging between accountant and client
Automatic document expiry/archival by tax year
What it actually costs to build
AI agent — with a subscription (Claude Pro/Max, Cursor, etc.)
$0 marginal
AI agent — pay-per-use API, no subscription
$43–$86 one-time
Hosting, once it's running
$0/mo (free tier)
Domain name, if you want your own
~$12/yr
Existing tools solving a similar problem typically run $11.99–$35/mo — see how they compare below.
The build prompt
Build me a client portal: each client gets a private, access-controlled file area. An admin (the accountant) can upload documents to a specific client's area, organized by year and category, which triggers an email notification to that client. Clients log in and see only their own documents. SQLite or Supabase behind a small API. Skip e-signature and in-portal messaging for v1.