Private Client Project

A financial operating system for a solo private practice.

A web dashboard and native iOS companion app that turn billing, deposits, expenses, taxes, and closeout into one calm, trustworthy operating system.

Practice OS gives a solo practice owner one trustworthy place to understand what is scheduled, what has been billed, what has been deposited, what still needs a receipt, and what should be reserved for taxes. It was built as a custom product rather than assembled from a template or extended spreadsheet.

Identifying details, project information, and user data have been modified to protect client privacy.

ProjectPractice OS: A Financial Operating System for a Solo Private Practice
CategoryProduct Design · Financial Systems & Automation · Web Application · Mobile Application · Business Operations
ClientPrivate Client Project
My roleProduct strategy, UX and workflow design, UX writing, visual design, front-end development across web and native surfaces, database architecture, native iOS integration, responsive and regression testing, deployment, and ongoing product iteration.
TechnologyVanilla JavaScript · HTML · CSS · Expo · React Native · Supabase · PostgreSQL · Row Level Security · Swift · WidgetKit · Vercel · EAS Build
iPhone-frame screenshot of a mobile app screen titled Today showing a greeting header for a fictional practice, three quick-add action buttons, and a list of three sample therapy sessions with status tags.
The mobile app's Today screen — the default landing view, showing the day's sessions, quick workflow shortcuts, and one-tap status updates.
Desktop browser-window screenshot titled Good morning, Willow & Stone with a sidebar navigation, a Practice Assistant summary card describing weekly billing and reconciliation status, four stat tiles, and a Financial Autopilot cadence list showing Sunday, Friday, and month-end tasks.
The dashboard Overview screen, with the Practice Assistant's plain-English weekly brief and the Financial Autopilot cadence.

Overview

Two surfaces share one backend and one definition of the business.

The browser dashboard is where deeper financial work happens: bank reconciliation, expense management, receivables, delegated bookkeeper access, and weekly or month-end closeout. The mobile companion is where the owner lives day to day: checking sessions between clients, logging a payout when it lands, reviewing reports, or glancing at a home-screen widget before the day starts.

The two surfaces remain coordinated through a non-destructive sync model. Dashboard-managed records remain authoritative, local changes are merged carefully, and neither surface silently overwrites the other.

The Challenge

The back office was fragmented across tools that understood only part of the work.

Solo practice ownership combines service delivery with an entire financial and operational business. Scheduling tools do not usually model tax reserves. Spreadsheets do not reconcile a bank deposit to the service week it covers. Generic budgeting products do not distinguish an owner contribution from a deductible expense or grant a bookkeeper meaningful access without exposing information outside the financial workflow.

The challenge was to replace that patchwork with a system rigorous enough for reconciliation and delegated access, yet fast enough to use between sessions on a phone.

The Solution

A coordinated system built around the full financial lifecycle.

The dashboard manages allocation, bank reconciliation, expenses, recurring costs, subscriptions, vendors, assets, mileage, review queues, weekly closeout, and team access. The mobile app organizes the owner’s daily work into Today, Week, Finance, Reports, and Settings.

A deterministic Practice Assistant translates authenticated operational data into plain-language priorities. It can identify and explain what needs attention, but it does not call an external AI service or silently match, categorize, allocate, delete, deploy, or move money.

Surface One · Web Dashboard

Designed for reconciliation, review, delegation, and closeout.

Desktop browser-window screenshot titled Financial Operations Center with a tab bar, three summary tiles, a transactions table with fictional vendors and receipt status, and a subscriptions list.
The Financial Operations Center — expense transactions, receipts, and subscriptions in one review surface.
Desktop browser-window screenshot titled Deposits & Bank Reconciliation showing two Smart Auto Match suggestions with confidence percentages and Approve/Skip buttons, a table of canonical bank deposits with their session allocations, and a list of unmatched bank transactions.
Deposits & Bank Reconciliation — Smart Auto Match proposes matches with a confidence score; nothing is applied without explicit approval.
Desktop browser-window screenshot titled Weekly Closeout & Automation Center showing a readiness checklist with status badges, a tax reserve estimate card, and a Download Closeout Package button.
The Weekly Closeout & Automation Center — an operating-readiness checklist and a planning-only tax reserve estimate.
Desktop browser-window screenshot titled Team Access with a roles table showing fictional team members and their access levels, and a list of what a Bookkeeper role can never see, including consultations and the full client roster.
Team Access — delegated Owner, Bookkeeper, and Financial Viewer roles enforced by Row Level Security, not just hidden buttons.

My Role

I led the product across strategy, design, architecture, implementation, and release.

01

Product strategy

Defined the financial and operational model, the delegated bookkeeper workflow, and the deliberate boundary excluding clinical data and unsupervised financial automation.

02

UX and workflow design

Designed the dashboard information architecture and the mobile Today, Week, Finance, Reports, and Settings structure around real operating questions.

03

Visual design and UX writing

Created the shared lavender-and-ink design language and the calm, plain-language microcopy used for priorities, safeguards, review states, and financial planning.

04

Development and architecture

Built the modular dashboard, native mobile shell, shared data relationships, authentication boundaries, secure sync, and native iOS integrations.

05

Testing and release

Managed responsive testing, regression suites, Vercel deployment, EAS builds, TestFlight preparation, isolated demo data, and ongoing point releases across both surfaces.

Product and Workflow Strategy

The most important design decisions were structural.

01

Model canonical financial events

A real bank deposit remains one authoritative record. Service-week allocations live beneath it rather than becoming duplicate payout events.

02

Separate operational states

Scheduled, completed, documented, billed, paid, deposited, allocated, and reconciled each describe a different condition and therefore a different next action.

03

Detect and prepare, never silently act

Automation may calculate, forecast, prioritize, and prepare a match or export. Sensitive financial changes always require explicit review.

04

Design each surface for its context

Desktop supports comparison, tables, and deep review. Mobile supports quick status updates and financial actions. The widget supports a calm glance.

05

Keep clinical content outside

No progress notes, diagnoses, treatment plans, assessments, intake forms, or therapeutic messages are stored on either surface.

Surface Two · Native Mobile Companion

Built for the decisions that happen between sessions rather than behind a desk.

iPhone-frame screenshot of the Practice Assistant panel with four question buttons, a sample answer about a deposit with an exact bank candidate, an Open deposit review action button, and a note stating the Assistant is read-only and business-operations only.
The read-only Practice Assistant on the mobile Today screen — four plain-language business questions, answered from the same authoritative finance logic as the dashboard, each deep-linking into the exact existing workflow.

Mobile 2.3.4 · Practice Assistant

Decision support without invisible decision-making.

The Assistant answers four focused business questions: what needs attention, which deposit needs review, which receipt is missing, and what should be closed out. Each response is generated from the same authoritative bank-match and allocation relationships used by the product’s canonical finance history.

It is deliberately read-only. It may explain and deep-link into the correct workflow, but it cannot approve, edit, delete, allocate, submit, sync, or access clinical content—and it makes no external AI service call.

iPhone-frame screenshot of a screen titled Week showing a weekly summary of scheduled, completed, and cancelled sessions with a projected total, and a day log of sample sessions with quick status-change buttons.
The mobile Week screen — Sunday-through-Saturday session planning with one-tap status updates and week-level stats.
iPhone-frame screenshot of a screen titled Finance showing a large net-cash summary card, a four-tile money snapshot, and a list of sample payouts each tagged to the service week it covers.
The mobile Finance screen — payouts matched to the service week they cover, with a monthly net-cash summary and money snapshot.
iPhone-frame screenshot of a screen titled Reports showing year-to-date financial totals, a revenue source breakdown list with fictional categories and amounts, and a monthly report export button.
The mobile Reports screen — year-to-date totals, revenue source breakdown, and a one-tap monthly export for the bookkeeper or CPA.
iPhone-frame screenshot of a screen titled Settings showing account information, a Demo Workspace Controls panel with a Reset Demo Data button, a Cloud Sync panel marked Synced, and a Privacy Tools panel with a data export option.
The mobile Settings screen — account, the isolated demo workspace controls, cloud sync, and privacy tools.

Operational Journey

The system follows the work from the first daily glance through weekly closeout.

  1. 01Orient

    Review today’s schedule, weekly progress, and the Practice Assistant’s plain-language brief.

  2. 02Advance

    Update session, documentation, billing, and payment states without collapsing them into one status.

  3. 03Reconcile

    Review Smart Auto Match suggestions and connect real bank activity to canonical deposit records.

  4. 04Resolve

    Address missing receipts, ambiguous expenses, receivables, or allocation gaps through exact review queues.

  5. 05Close

    Review readiness, reserve planning, recurring costs, and a downloadable closeout package.

Privacy, Security, and Financial Safety

The permission model was designed around what each person must never see.

Neither surface stores clinical information. Every record is scoped to its owning account through Supabase Row Level Security. A restricted database function gives a bookkeeper only the business-financial session fields needed for billing and reporting, while consultations, the full roster, clinical scheduling, and therapeutic content remain outside that role.

Sensitive corrections require owner approval. Mobile access supports Face ID and an always-available local passcode. Configuration values and database credentials remain outside both clients and do not appear in source, logs, screenshots, or release notes.

An isolated demo workspace provides fictional seeded data for testing and App Store review, with a protected reset action that cannot run against production.

iPhone-frame screenshot of a sign-in screen with a monogram logo, the heading Sign in to Practice OS, email and password fields, a primary Sign In button, and chips indicating Face ID is optional and a local passcode is always available.
The mobile sign-in screen, showing account-isolated authentication and the optional Face ID / passcode security model.

Visual and Interaction Design

A financial system can be rigorous without looking punitive or clinical.

Calm visual hierarchy

Lavender establishes continuity, white cards organize density, and deep purple anchors action without turning every exception into an alarm.

Plain-language operations

The interface answers questions such as what needs a receipt or whether billing is ready rather than displaying raw records and expecting the owner to infer the conclusion.

Visible safeguards

Review queues, confidence scores, owner approval, tax-estimate labels, and demo-workspace status make the product’s boundaries part of the interface.

Responsive and Cross-Platform Design

The widget was designed in three compositions, not scaled into three sizes.

The small, medium, and large iOS widgets share the same hierarchy but allocate information differently. Each focuses on today’s session count and projected value while intentionally excluding attention-needed counts from the more public home-screen surface.

Tapping the widget deep-links into Today, where the owner can move from a glance to the full operational context.

Three iOS home-screen widget mockups on a purple gradient background, labeled Small, Medium, and Large, each showing today’s session count and projected revenue, with a DEMO badge indicating sample data.
The iOS home-screen widget in its three supported sizes — small, medium, and large — each redesigned for its own layout rather than a scaled copy of the others.

Technical Approach

A shared backend supports distinct web, mobile, and native iOS experiences.

The dashboard uses modular vanilla JavaScript, HTML, and CSS deployed through Vercel. The mobile companion uses an Expo and React Native shell with a purpose-built single-page application rendered inside a native WebView.

Native iOS capabilities provide secure storage, Face ID, notifications, shared app-group data, and a Swift/WidgetKit target. Supabase provides PostgreSQL, authentication, and Row Level Security, connected through a non-destructive dirty-record merge rather than whole-database replacement.

HTMLCSSVanilla JavaScriptReact NativeExpoWebViewSupabasePostgreSQLRow Level SecuritySwiftWidgetKitVercelEAS BuildTestFlight

Iteration and Problem Solving

Edge cases revealed which parts of the product needed stronger structure rather than more decoration.

01

Canonical deposit reporting

Service-week allocations were nested beneath the bank deposit they belong to so one deposit could no longer appear as several independent payouts.

02

Review-first automation

Matching, categorization, allocation, record removal, deployment, and money movement remained explicit human actions even when the product prepared a recommendation.

03

Role boundaries at the database layer

Bookkeeper and Financial Viewer access was designed through Row Level Security and restricted functions rather than interface visibility alone.

04

Secure mobile interruptions

App-lock behavior was refined to protect the interface during short interruptions without forcing unnecessary sign-in loops.

05

Isolated demonstration data

The demo workspace became a first-class product environment for testing and review rather than an improvised copy of production.

Outcome

A fragmented back office became one coordinated financial operating system.

Practice OS now provides one source of operational truth across sessions, deposits, allocations, expenses, delegated financial work, reporting, reserve planning, and closeout. The dashboard supports the work that requires depth, while the mobile app and widget support the decisions that occur throughout the day.

The project’s most important outcome is structural rather than numerical: it models the financial relationships correctly, makes review and permission boundaries visible, and gives the owner a calmer way to understand what requires action next.

Key Takeaways

What the product reinforced.

  • Operational clarity depends on modeling the relationship between records, not simply placing them in one interface.
  • Financial automation earns trust when it prepares and explains before it acts.
  • Cross-platform consistency comes from shared hierarchy, language, and data rather than identical layouts.
  • Permission boundaries should be enforced where the data lives.
  • A precise next action is more useful than a large collection of undifferentiated alerts.
  • Demo environments, regression tests, release checklists, and approval gates are part of product quality.

Does your workflow need more than another spreadsheet?

I design custom digital products that respect both the complexity of the work and the people responsible for carrying it.