Changelog

What's new in Handoff

New features, improvements, and fixes — shipped regularly.

v1.5.0New FeatureImprovementBug Fix

Minor Changes and Improvements

Latest

April 2026


Global search

A command palette is now available from every page in the dashboard — press ⌘K (or Ctrl+K on Windows) to open it instantly, or click the Search button in the top bar.

  • Searches across passes, clients, and files in one query — results appear as you type, grouped by type.
  • Fully keyboard-navigable: ↑ / ↓ to move through results, to open, Esc to close.
  • Available on mobile via a search icon in the header alongside the desktop pill button.
  • Query fires at two or more characters; results are cached for 10 seconds to keep things snappy.

Passes

Bulk actions

You can now select multiple passes and act on all of them at once.

  • Check the box on any pass row to select it, or use the select all checkbox at the top of the list to grab everything currently visible — including partial selections shown with an indeterminate state.
  • A floating action bar appears at the bottom of the screen when passes are selected, with three actions: Archive, Set status (Not Started → Complete), and Assign to a team member.
  • Selection clears automatically when you switch between the Active, My Passes, and Archived tabs.
  • The bar shows how many passes are selected and includes a Clear shortcut to deselect without scrolling.

Files

Category filter

The Files page now lets you narrow down to a specific file type without hunting through the full list.

  • A dropdown filter lets you choose from Brief, Draft, Final, Invoice, Contract, Reference, Asset, or Other.
  • Every file row now shows a colour-coded category badge — green for Final, blue for Invoice, violet for Brief, and so on — so the type is visible at a glance even without filtering.
  • A result count and Clear filters link sit in the filter bar so you always know how many files match and can reset with one click.

Reports (Agency plan)

Functional date range picker

The date range control in Agency Reports was cosmetic before — it now actually filters the data.

  • Four presets: Last 7 days, Last 30 days, Last 90 days, and Last 12 months. Click the period label to open the dropdown; it closes when you pick a preset or click away.
  • All four tabs — Overview, Team, Clients, and Revenue — respond to the selected period. Completed pass counts, client activity, and paid revenue all scope to the chosen window.
  • The Team tab card header now reflects the selected period (e.g. "Last 7 days") instead of permanently reading "Last 30 Days".

Time tracking

A new Time page in the sidebar gives you a workspace-wide view of every hour logged across all your passes.

  • Filter by period (same four presets as Reports), team member, specific pass, or billed / unbilled status. Filters combine, so you can ask for "all unbilled hours from a specific person in the last 30 days" in a few clicks.
  • Four summary cards at the top show total time, unbilled time, billed time, and estimated earnings for the current filter — earnings are calculated from per-entry rates, falling back to your workspace default hourly rate.
  • Each row in the table links directly to the pass it was logged on so you can jump to context immediately.
  • Export CSV downloads all visible entries with columns for date, pass, client, team member, note, duration (minutes), hourly rate, earnings, and billed status — ready to drop into an invoice or hand to your accountant. The export runs client-side with no upload or server round-trip.

Dashboard overview

Revenue at a glance

Two new stat cards sit below the pass stats on the Overview page — no extra data fetching, they're bundled into the same request that already powers the other cards.

  • Revenue This Month shows the total value of invoices marked as paid in the current calendar month, in green.
  • Outstanding shows the combined value of all sent or overdue invoices, highlighted in amber when non-zero.
  • Both cards are clickable and link through to the Revenue page for the full breakdown.

Client satisfaction

A satisfaction summary panel now appears at the bottom of the Overview page whenever your clients have submitted scores.

  • A 1–5 star distribution chart visualises how your scores cluster — each bar is colour-coded from rose (1) through emerald (5) and scales to the highest bucket so differences are easy to read.
  • The panel header shows your all-time average and a separate 30-day average side by side so you can spot whether satisfaction is trending up or down.
  • The five most recent scores are listed below the chart, each with the client name, project name, and any comment the client left — clicking a row goes straight to that pass.
  • The panel renders only when at least one score exists and stays hidden otherwise so it doesn't create empty-state clutter.

Under the hood

A handful of correctness and performance fixes shipped alongside the features above.

  • SortIcon inline component in the Clients page was defined inside the parent component, causing React to treat it as a new type on every render. Moved to module scope.
  • BrandKitTab state initialisation in the Clients page replaced a useEffect that synced server data into local form state (an anti-pattern that can cause stale-state flickers) with a lazy useState initialiser. A key prop on the tab ensures the form resets cleanly when switching between clients.
  • Unused code — a dead tabLabels constant in the Reports page and an unconnected date-range-label string in the Team tab have been removed.

Notes

  • Bulk actions and CSV export have no item limit enforced in the UI, but bulk mutations are capped at 100 passes per operation server-side.
  • The Time page and satisfaction panel both appear regardless of plan tier — the underlying data is collected across all plans.
  • Reports (including the date range picker) remains gated to the Agency plan as before.
New FeatureAnnouncement

Mobile App Coming Soon

Handoff — Mobile app

Not released yet. The Handoff mobile app is currently in App Store and Google Play review and is not publicly available for download. This page describes what’s shipping in the first release once stores approve it.


April 2026


Sign-in & device security

Sign in with your Handoff account on the go, with the same security options as the web app — including device MFA so you can approve browser sign-ins from your phone.

Sign-in

  • Email and password sign-in with support for device MFA (push approvals) and authenticator 2FA (TOTP), depending on how your workspace is configured.
  • When both are enabled, device MFA is requested first — then authenticator if needed.
  • Same-device sign-in: if you’re logging in on a phone that’s already enrolled for push MFA, Handoff can recognize the device and skip the redundant approval step.

Approving web sign-ins

  • When someone tries to sign in on the website, you get a push notification with approximate location on a map (when available), client/browser context, and masked IP — so you can approve or deny without being logged into the app.
  • Works even when you’re signed out of the mobile app, using a one-time token delivered with the notification.
  • Recent sign-in requests in Settings → Security lists past attempts; open any row for full detail and map. Pending items can still be approved or denied from the phone when applicable.

MFA enrollment

  • Enroll this device for browser sign-in approvals by scanning a QR code from the website (Settings → Security on the web). The app walks through notification permission (same idea as camera access for QR scanning) so pushes can reach you reliably.

Passes, clients & inbox

Passes

  • Browse your passes, open pass detail, and manage pass settings from a tabbed experience tuned for mobile.

Clients

  • Client list and client detail so you can jump to the right relationship from your phone.

Inbox

  • Notification feed so you don’t miss workspace activity that matters while you’re away from your desk.

Workspace & account

  • Workspace switcher when you belong to more than one workspace.
  • Settings for account and security, including two-factor and device MFA as described above.
  • Connection awareness with an offline indicator when the API isn’t reachable.

Notes

  • Feature availability may depend on your workspace plan and org settings (same as the web app).
  • Store listing, screenshots, and version number will be finalized when the app is approved.
v1.4.0New Feature

Zapier Integration & Onboarding Guide

Zapier Integration (Early Access)

Automate your Handoff workflow and connect with over 7,000+ other apps effortlessly. We've built a massive, full-featured Zapier integration that lets you programmatically run your agency on autopilot.

Connect securely

  • Enable the integration from your Workspace Settings → Integrations tab.
  • Click "Accept Private Invite" to add the Early Access app to your Zapier account.
  • Authenticate securely using our robust native OAuth 2.0 flow directly within Zapier's builder.

26 Powerful Triggers
Instantly kick off workflows in other apps when things happen in Handoff. Every trigger includes rich, structured data payloads.

  • Passes & Projects: Trigger on new passes, status changes, completed passes, and overdue passes.
  • Clients & Comms: Fire off automations when a new client is created, or when new client/team messages are sent.
  • Milestones & Tasks: Hook into specific project progress events like tasks being marked as complete or milestones being reached.
  • Files & Approvals: Act on new files uploaded, change requests, or client file approvals.
  • Contracts & Invoices: Trigger on signed contracts, created/paid/sent invoices, and even overdue invoices.
  • Reviews: Automate follow-ups when a client submits a Satisfaction Score.

8 Action Automation Endpoints
Control Handoff remotely from your other tools using Zapier's Action blocks.

  • Build from afar: Create new Passes, Clients, Tasks, and Milestones dynamically from external CRM data.
  • Update statuses: Programmatically update a Pass's status (e.g., automatically move to "Review" when an external file renders).
  • Communication: Send Team Messages directly to a pass thread.
  • Billing: Upsert invoices automatically generated from an external accounting platform.
  • Searches: Look up and find specific active Passes dynamically by slug or ID.

Onboarding Guide

New users will now be able to be guided through the platform with 6 steps that give a slight overlook to their workspace.

  • Tasks can be ignored and will be marked completed
  • Tasks will auto complete
v1.3.0New Feature

Agency Reports, Client brand kits & Daily Briefing

March 2026


Agency Reports Dashboard

Get a complete picture of how your agency is performing — revenue, team utilization, client health, and project progress — all in one place.

Overview tab

  • At-a-glance KPIs: active passes, revenue collected, outstanding invoices, overdue items, and average project health score.
  • Project health breakdown with color-coded scoring across all active work.

Projects tab

  • Full pass list with health scores, status, assignee, due date, and milestone progress.
  • Filter and sort to quickly surface at-risk or overdue projects.

Team tab

  • Per-member utilization bar showing active pass load against configured capacity.
  • Completed passes, estimated hours logged, and overdue item count per team member.
  • Capacity is configurable per member in workspace Settings → Team.

Clients tab

  • Portfolio summary per client: total passes, active, completed, total invoiced, outstanding balance, and average project completion time.
  • Top clients by revenue chart.

Revenue tab

  • Total revenue, monthly recurring revenue (MRR), outstanding invoices, and overdue count.
  • Invoice aging report with average days outstanding.
  • Revenue breakdown by team member.

Reports are available on the Agency plan only.


Client Brand Kits

Give every client a personalized project experience with their own colors, typography, and logo — directly reflected in their Pass portal.

Brand Kit editor

  • Accessible from the Client sidebar → Brand Kit tab.
  • Set primary color, accent/secondary color, and background color with a live color picker and hex input.
  • Choose from 12 curated Google Fonts (Inter, Poppins, Playfair Display, and more).
  • Add a logo URL and icon URL — the logo replaces the agency logo in the client portal header.

Live preview

  • A mini Pass preview updates in real time as you adjust colors, font, and logo so you can see exactly how it will look before saving.

Applied automatically

  • When a Pass has a client with a configured Brand Kit, the portal renders with the client's colors, font, and logo — no setup needed per pass.
  • Toggle per pass in Pass Settings ("Use client brand kit") if you want to override on a specific project.

Custom client domains (Agency plan)

  • Assign a custom domain like client.youragency.com to a specific client.
  • The domain is registered with Vercel automatically when you save — no manual steps.
  • A real-time DNS status indicator (Active / Pending / Invalid / Proxy detected) appears in the Brand Kit editor with the exact CNAME record to add.
  • Visiting client.youragency.com routes directly to the client's most recent active Pass, with full brand kit applied.

Daily Briefing

A rule-based action checklist that reads your live workspace data and tells you exactly what needs attention — no AI, just smart conditional logic.

How it works

  • Opens automatically at the top of your Passes page in a collapsible "Today" section.
  • Each item shows what happened, why it matters, and a one-click action button to handle it.
  • Dismiss any item for 24 hours — it'll come back if the underlying issue isn't resolved.
  • "Dismiss all" clears the board when you're caught up.

What it surfaces

🔴 Urgent

  • Overdue invoices (14+ days)
  • Pending approvals with no response (5+ days)
  • Deadlines approaching in under 48 hours with incomplete milestones
  • Clients who haven't opened their Pass in 7+ days
  • Unsigned contracts
  • Unpaid deposits

🟡 Action needed

  • Unanswered client messages (24+ hours)
  • Invoices overdue 7–13 days
  • Milestones due today or tomorrow
  • File requests due within 3 days
  • Proposals sent with no response (3+ days)
  • Proposals expiring in 2 days

💡 Suggestions

  • No outbound message sent in 5+ days — nudge to send a progress update
  • All milestones complete but Pass not moved to review

Weekly briefing email

  • Every Monday morning, workspace owners receive a prioritized email digest with all open action items.
  • Toggle on or off in Settings → Workspace → Weekly Briefing Email.
v1.2.0New Feature

Pass Assignment & Reoccurring passes

2026-03-22

Added

Repeating Passes

  • Passes can now be set to recur on a weekly, biweekly, monthly, or quarterly schedule
  • Each recurrence automatically creates a new Pass for the client with the same milestones, tasks, welcome message, and settings — with a fresh message thread and file history
  • New Pass names are auto-suffixed with the current period — e.g. Brand Retainer — April 2026
  • Clients receive a welcome message notification on each new recurring Pass creation
  • Freelancers receive a workspace notification when a recurring Pass is created
  • All Passes in a recurring series are linked — a Part of recurring series label in the Pass header links to the full series history
  • Recurrence can be paused, edited, or cancelled at any time from Pass settings without affecting already-created Passes
  • Supports optional end date or maximum occurrence count per series
  • Powered by Vercel Cron Jobs — runs daily at 8am to check and create due recurrences

Pass Assignment

  • Passes can now be assigned to a specific team member from the Pass creation form or Pass settings
  • Assigned team member receives an email notification when a Pass is assigned to them
  • Each Pass in the list view displays the assignee's avatar for at-a-glance workload visibility
  • A My Passes filter on the Passes list shows only Passes assigned to the currently logged-in user
  • All Pass notifications — new client messages, file uploads, approvals — are routed to the assignee rather than the workspace owner
  • The workspace owner retains full visibility and access to all Passes regardless of assignment
  • The assigned team member is displayed in the Pass sidebar as the point of contact
  • Reassigning a Pass notifies the new assignee and logs the change in the activity feed
v1.1.0New FeatureBug FixImprovement

Update 1.1.0, 03/21

March 2026

Client onboarding checklist

  • Workspace: New Onboarding tab on each Pass to build a kickoff checklist (title, description, item types: acknowledgment, file upload, or action).
  • Link onboarding steps to file requests or actions like contract / deposit where it helps.
  • Reorder items, mark them complete from the team side, and email the client a single reminder listing everything still outstanding.
  • Save and load templates so you can reuse the same checklist across similar projects.
  • Client Pass: When onboarding isn’t finished, clients see a Getting started section at the top with progress (e.g. “3 of 5 complete”) and clear next steps.

Sub-passes

  • Create child passes under a parent from Pass settings; they share the same client context with their own thread and files.
  • Dashboard: Breadcrumb to the parent project when you’re on a sub-pass; list of sub-passes in settings with status (and health hints where available).
  • Client Pass: Projects strip linking into each sub-pass, plus a link back to the parent Pass when they’re inside a sub-pass.

Archive & search

  • New Archive page in the dashboard (sidebar under Revenue) to search archived passes by keyword, client, and date range.
  • Reactivate an archived Pass from the Pass detail page (banner when archived); messaging stays read-only until you bring it back.
  • Client: Archived Pass links still open a dedicated read-only view (messages + files list) so clients can reference past work.

Pass embed (iframe)

  • Share / Embed in Pass settings: turn on embedding, choose light/dark, show or hide messages and files, and optionally restrict which domains may embed the Pass (referrer check).
  • Copy a ready-made <iframe> snippet for your site or client portal.
  • Dedicated /embed/[slug] view: compact status, optional latest message and file list, PIN/deposit handling where required, and Open full Pass to the normal client page.
  • Mobile: Collapsible details in the embed for smaller viewports.

Reliability & polish

  • Duplicate Pass: milestone/task copy aligned with current schema.
  • Invoice installment payment sessions: safer handling of optional Stripe application fees.
  • Pass list health filter: clearer behavior when health data isn’t loaded yet.
  • PIN verification works for archived Passes when a PIN is still required.

Internal-only features (health scores, etc.) are unchanged in how they behave for clients—they remain invisible on the client Pass.

v1.0.0New Feature

First changelog & it's updates!

What’s new

  • A few quality-of-life upgrades for how you review work with clients and how we hear from you.

Preview files without leaving the Pass

  • Open attachments in a full preview modal—pan and zoom so you can read details without downloading first.

We’re listening: Feedback

  • There’s a dedicated Feedback page so you can request features, report bugs, or send a quick note for anything else. Your input goes straight into how we prioritize the product.

File requests, end to end

  • Need something from a client? Request specific files from your side. They upload where it belongs; you preview and download from the same Pass—no more chasing links in email threads.

Shipped with the usual polish and bug fixes behind the scenes.