Strategy · Product design · Engineering · AI integration
TaxConsultant
Replacing Drake + Dropbox + email with one branded client portal for a growing tax practice.
Overview
The problem we walked into
By client 800, the practice was running on three separate stacks: Drake for tax prep, Dropbox + email for client documents, and an Excel spreadsheet (maintained by the senior partner from memory) for return status across the team. Return season was eight weeks of firefighting — junior CPAs answering the same five client questions hundreds of times, partners chasing missing W-2s and bank statements by WhatsApp. Two engagements slipped through the cracks the prior year. The partner who managed renewals was considering retirement. The practice needed a system before it lost more clients to the chaos.
Outcomes
4×
faster client document collection
62%
drop in 'where's my return?' emails
1,200+
clients onboarded in 6 weeks
Approach
Discovery: shadowing the actual workflow
We spent two weeks in the practice — shadowing intake calls, observing the senior CPA's daily review of stuck returns, sitting with the receptionist as she fielded 'where's my return?' calls. We mapped 31 distinct workflows. 80% of inbound volume was 'where's my return?' or 'what do you still need from me?'. Both were solvable with a portal. We narrowed the v1 scope to those two — plus the partner-facing dashboard that replaced the Excel spreadsheet — and parked everything else.
In one line
“One portal absorbed the work of five disconnected tools — and the team that was burning out kept the same headcount.”
The build
Building the portal: client-facing first
We shipped the client side first — sign in, see your active engagements, upload the documents we still need (with a structured checklist by return type), e-sign final returns, pay invoices. Built on Next.js 15 with magic-link auth, Postgres + Drizzle, encrypted file storage on Cloudflare R2. Within four weeks of go-live, 80% of clients were uploading documents through the portal instead of email.
What we shipped
Brand identity
Logo, type, palette refreshed for the portal era.
Marketing site
Public landing with practice positioning + intake CTA.
Client portal
Branded sign-in · documents · invoices · messages.
Practice dashboard
Returns pipeline + per-CPA assignment + deadline alerts.
AI assistant
Drafts replies, summarises uploads, with audit logs.
Multi-currency billing
Stripe · PKR / USD / GBP / AED auto-converted.
Compliance posture
Encryption at rest, signed-URL files, audit logs.
Hosting + ops
Managed VPS, daily backups, monitored uptime.
Outcome
Where we are now
Three months post-launch, the portal is the practice. Return season ran smoother with 35% more volume (1,650 returns vs 1,220 the prior year), with the same headcount. The senior partner who was considering retirement is staying. The practice has asked us to start scoping a second portal for their advisory engagements — a separate workflow we'd parked in v1.
“We've been a tax practice for 22 years. The first 21 we ran on email and software the size of a tank. The portal Filenod built for us is the first piece of technology our junior staff and our senior clients both actually enjoy using.”
Built on
Next.js 15 · Postgres + Drizzle · Better Auth (magic link) · Stripe Billing (multi-currency) · Cloudflare R2 (encrypted) · Resend · OpenAI + Anthropic API · Tailwind v4 · Docker + Caddy
Have a project?
Let’s build something like this.
A 20-minute call to scope the shape of your project. Quote within 24 hours.
Work with us