Web AppsShippedFeatured Project

FairFyn, Client Portal for Tax Firms

A secure, white-label client portal that tax firms use to invite their clients, collect sensitive documents without email, and show every return moving from gathering to filed. Built solo, end to end, and live at fairfyn.com.

Multi-tenant
white-label portal, branded per firm
AES-256
extra encryption layer on stored SSNs
Invite-only
clients enter through their firm, no public signup
1 afternoon
typical firm setup time

FairFyn, Client Portal for Tax Firms

One-Line Summary: A secure, white-label client portal that small and mid-size tax firms use to invite their own clients, exchange documents without email, and give clients a live view of every return, built solo from database to deployment and live at fairfyn.com.

Problem Statement

Tax preparation runs on the most sensitive documents a person owns: W-2s, 1099s, IDs, and Social Security numbers. Most small and mid-size firms still move those documents over email attachments, which is both a security exposure and a compliance liability. The client sends financial records into an inbox, the preparer replies with a finished return the same way, and copies of everything sit unencrypted in two mailboxes forever.

The second problem is the phone. During the busiest weeks of tax season, clients call the office constantly to ask one question: where is my return. Preparers lose hours answering status calls instead of preparing returns.

The tools that solve this, like TaxDome, are heavy and expensive for a firm with a few preparers, and they put someone else's brand in front of the firm's clients. A smaller firm wants a portal that looks like their own practice, sets up in an afternoon, and does not charge their clients to use it.

Solution

FairFyn is a secure client portal that a tax firm stands up under its own brand. The firm signs up, adds its logo and brand color, and gets a private client login link it can embed on its own website. Clients come in by invitation only, so there is no public signup and no stranger can reach a firm's workspace.

The product solves the two core pains directly:

Secure document exchange instead of email. Every client gets a private, encrypted place to send documents and receive finished returns. Files are encrypted at rest, Social Security numbers get an additional AES-256 layer, and download links expire. Exchange is two-way with full version history, and a firm can request a specific document in one click and see a clear status on each file.

A visible return pipeline instead of status calls. Every return moves through clear stages, from gathering documents to filed and accepted. Clients check progress themselves, and automatic deadline reminders keep returns moving. The result is fewer interruptions during exactly the weeks when a preparer's time is worth the most.

The whole client experience carries the firm's brand, not FairFyn's, and clients use it free. Firms are usually up and running the same afternoon they sign up.

How It Was Built

This is a full product, not a landing page, and I built every layer of it.

Data and access control. The core is a Postgres database on Supabase with row-level security enforced at the database, not just the application. Because one deployment serves many firms, every table is tenant-isolated so a firm can only ever see its own clients, documents, and returns. Getting that isolation right at the RLS layer was the load-bearing decision of the project: it is what makes a shared portal safe to hand sensitive tax data to.

Auth and onboarding. Firm and client signup are separate flows with email verification and Google sign-in. The firm onboarding wizard captures branding up front so the client login link is ready immediately.

Application. Next.js and TypeScript across the stack, with strongly typed data models and Zod validation on the boundaries. Documents, messages, appointments, return status, signatures, and deadlines are all scoped to the relationship between a firm and a client for a given tax year, so nothing leaks across engagements. Stripe handles firm billing, Resend handles transactional email, and the whole thing deploys on Vercel.

Confidence to ship. An end-to-end Playwright suite covers the flows that matter, signup, invitation, document upload, and status changes, so a change to one firm's experience cannot quietly break another's.

Judgment Calls

The interesting work here was not typing the code, it was the product decisions.

  • Invite-only, not a marketplace. An earlier direction pushed toward a two-sided marketplace where clients browse and pick firms. I pulled it back to a pure invite-only portal, because a tax firm's clients are its own book of business, not leads to be matched. That single decision simplified the security model, the onboarding, and the entire pitch.
  • White-label as the wedge. Bigger incumbents put their own brand in front of the firm's clients. Making the firm's brand the default, and the client experience feel like the firm's own site, is the reason a small practice would switch.
  • Free for clients. A portal only reduces phone calls if clients actually adopt it. Charging them would kill adoption, so firms pay and clients never see a paywall.

Outcome

FairFyn is live at fairfyn.com as a working product that a tax firm can sign up for, brand, and start inviting clients into the same afternoon. It replaces insecure email document exchange with an encrypted, invite-only workspace, and it turns the endless "where is my return" call into something the client can answer themselves. It is the most complete system in this portfolio: a multi-tenant, security-first SaaS taken from an empty database to a deployed product by one person.

Next.jsReactTypeScriptSupabase (Postgres + RLS)StripeResendTailwind CSSPlaywrightVercel

More in this category