Complete Guide

Everything you need to run a flawless client handoff

This guide walks you through every feature in SmoothHandoff — from registering your agency to completing your first handoff. Bookmark it, share it with your team, and refer back whenever you need it.

Overview

SmoothHandoff is a white-label client portal built specifically for web agencies. It gives you one central place to deliver everything a client needs at the end of a project — credentials, files, deliverables to sign off, invoices to pay, training materials, and a direct messaging channel. Clients access everything through a single magic-link URL with no account creation required.

There are two sides to every project: your agency dashboard where you manage and upload everything, and the client portal where your client views, approves, and pays. This guide covers both.

Agency Dashboard

Your workspace. Create clients, projects, upload everything, send invoices, message clients, track approvals. Only your team can access this.

Client Portal

Your client's view. Branded with your logo and colour. Accessible via a secure magic link — no password, no account creation required.

Step 1

Agency Setup

Before you can create any clients or projects, you need to configure your agency. This takes about two minutes and determines how your brand appears throughout the client portal.

1

Register your account

Go to /register and enter your name, email, and agency name. You'll be asked how many active client projects you typically manage — this determines which plan is recommended, but you can change it at any time.

After registering you'll be taken through a brief onboarding flow to select your subscription plan. A 14-day free trial starts immediately — no credit card required.

2

Upload your agency logo

Navigate to Settings → Agency Details. Upload your logo (PNG or SVG recommended, square format works best). This logo appears in the top-left of every client portal you create.

If you don't upload a logo, your agency name is displayed as text instead — still branded, just text-based.

3

Set your brand colour

In the same Agency Details section, enter your primary brand colour as a hex code (e.g. #1A56DB). This colour is applied throughout the client portal — navigation underlines, active states, badge backgrounds, and button accents.

Your clients will see your agency's colour, not SmoothHandoff's default blue. The effect is subtle but professional — it feels like your own product.

4

Update your account details

Under Settings → Account, you can update your display name and email at any time. Your email is the address you'll use to log in and receive notification emails when clients message you or take actions in the portal.

Pro tip

Complete the onboarding checklist that appears on your dashboard home — it walks you through the five most important first steps and disappears once everything is done.

Step 2

Adding Clients

A Client in SmoothHandoff represents a company or individual you work with. Clients are the top-level container — each client can have multiple projects. You manage clients from Clients in the sidebar.

1

Create a client

Click Add client on the Clients page. You'll enter:

  • Name — the company or person's name (shown in the portal header)
  • Email — used when sending portal invitations and invoice notifications
  • Notes (optional) — internal notes visible only to your agency, never shown to the client
2

View and manage a client

Click any client card to open their detail page. Here you can see all projects linked to that client, edit their details, or create a new project. The client's email is shown as a clickable mailto link so you can contact them instantly.

Agency view only

Clients are an internal concept — your client never sees a "client list" or knows they're one of multiple clients in your account. Each client only ever sees their own project portal.

Step 3

Creating Projects

A Project is the work item you're handing off. Everything else — credentials, files, deliverables, messages, invoices, training — lives inside a project. One client can have multiple projects (e.g. "Website Redesign" and "SEO Retainer").

1

Create a project

From a client's detail page, click New project. Enter a project name and an optional description. The description appears on the client portal overview page as context for what the project covers.

2

Project status

Every project has a status that you control from the project overview page. The statuses are:

  • In Progress — active work underway
  • Awaiting Approval — deliverables submitted, waiting for client sign-off
  • Approved — client has signed off on all deliverables
  • Complete — project fully wrapped up

Status is visible to the client in their portal — it gives them a clear sense of where things stand without needing to message you.

3

Project overview dashboard

The project overview page shows a summary card for each section (Credentials, Files, Deliverables, Messages, Outstanding balance, Training). Each card shows a count and links directly into that section. This is your control centre for the project.

4

Finding projects quickly

The Projects page in the sidebar lists all projects across all clients in one view — sorted by most recently created. Use this when you're managing multiple clients and need to jump between projects without navigating through each client individually.

Step 4

Credential Vault

The credential vault stores every login, API key, and access detail the client needs to take over and maintain their own site. All passwords are encrypted with AES-256 before being stored in the database — even we can't read them.

1

Add a credential

Navigate to a project, then click Credentials in the project tabs. Click Add credential and fill in:

  • Category — Hosting, CMS, Domain, Email, Social, Analytics, Payment, or Other
  • Label — a clear name (e.g. "WordPress Admin", "cPanel Login", "Cloudflare API")
  • Username — the login username or email
  • Password — stored encrypted, never shown in plain text by default
  • URL — the login URL so the client can click straight through
  • Notes — extra context (e.g. "2FA is enabled on this account — check your email")
2

How encryption works

When you save a password, it is encrypted client-side using AES-256 before leaving your browser. The encrypted string is stored in the database. When a client requests to reveal a password, the server decrypts it and serves it back over HTTPS — it is never stored or logged in plain text anywhere.

3

Edit or delete credentials

Hover over any credential row to reveal the edit (pencil) and delete (trash) icons. Edits open the same form pre-populated with existing values. Deletes require confirmation and are permanent.

What the client sees

Credentials appear grouped by category. Passwords are hidden by default behind a "Reveal" button — the client must actively click to see them. URLs are shown as clickable links. Notes appear inline. Nothing is shown that you didn't enter.

Step 5

File Delivery

The file delivery section is where you upload source files, exported assets, design files, and any other deliverable files. Files are stored in Supabase Storage and accessed only via signed URLs — there are no permanent public links, which means files can't be shared or indexed without authorisation.

1

Upload files

Navigate to Files in the project tabs. Click Upload files to open the upload panel. You can select multiple files at once. Each file shows an upload progress indicator — wait for all files to reach 100% before closing the panel.

2

Organise into folders

When uploading, you can assign files to a folder. Type any folder name — if the folder doesn't exist, it is created automatically. Files in the same folder are grouped together in the client view. Use folder names like "Design Files", "Source Code", "Brand Assets", "Exported Images" to keep things organised.

3

Signed download URLs

When a client clicks to download a file, the system generates a short-lived signed URL on the fly. This URL is valid for a limited time and then expires. This means files cannot be bookmarked or shared — each download request is authenticated. Files are never exposed to the public internet.

4

Delete files

Hover over a file row to reveal the delete button. Deleting removes both the file from storage and the database record. This action cannot be undone — make sure you have a local copy if needed.

What the client sees

Files are displayed grouped by folder, with each folder showing the file count. Files show the filename, size, and a download button. Clicking download immediately triggers the signed URL generation and the browser download prompt — no intermediate page.

File size limits

Maximum individual file size is determined by your hosting plan. For most use cases (design files, zip archives, PDFs) this is more than sufficient. For very large video files, consider linking to an external host and adding the link as a training item instead.

Step 6

Deliverables & Sign-offs

Deliverables are the formal checklist of items you've agreed to deliver. Each item requires explicit client sign-off — creating a timestamped paper trail of what was approved, when, and by whom. This protects you legally and gives the client a clear sense of progress.

1

Create deliverables

In the Deliverables tab, click Add deliverable. Each deliverable has:

  • Title — the name of the item (e.g. "Homepage design", "Logo files", "CMS training video")
  • Description (optional) — additional context about what's included
  • Due date (optional) — shown to the client as a target date

Add all the deliverables you expect the client to sign off on before the project is considered complete.

2

Reorder deliverables

Deliverables can be reordered by drag and drop. Grab the drag handle on the left of any row and drag it to the desired position. The order is saved automatically and immediately reflected in the client portal. Present deliverables in a logical sequence — typically top-to-bottom in the order a client would review them.

3

Client approves a deliverable

When the client views their portal, each pending deliverable has an Approve button. Clicking it records an approval with a timestamp and the client's name. The deliverable immediately moves to "Approved" status on both sides. You receive no notification for this (it's a passive action) but you can see the updated status in real time.

4

Client requests a revision

If the client isn't happy with a deliverable, they can click Request revision and optionally leave notes explaining what needs to change. The deliverable status changes to Revision Requested and you receive an email notification with their notes. Address the revision and the client can re-approve when you're ready.

5

Progress tracking

The deliverables page shows a progress bar tracking how many items have been approved out of the total. Once all deliverables are approved, a banner prompts you to mark the project as Complete. This is also surfaced on the project overview card and in the dashboard sign-offs count.

What the client sees

Clients see all deliverables listed with their status (Pending, Approved, Revision Requested). Approved items are greyed out and stamped with the approval date. Pending items show both Approve and Request Revision buttons. Revision-requested items show the notes they submitted.

Best practice

Create deliverables before sending the portal invite. That way, the client opens their portal to a fully populated checklist rather than an empty page. First impressions matter — a complete portal signals professionalism.

Step 7

Project Messaging

Every project has a single, threaded message channel shared between your agency and the client. It replaces the scattered back-and-forth of email chains — everything related to the project is in one place, attached to the project itself.

1

Send a message

In the Messages tab, type your message in the text box and press Send. Messages are timestamped and labelled with the sender's name. Your messages appear on the right; the client's appear on the left. The thread is sorted chronologically, oldest at the top.

2

Email notifications

Every time you send a message, the client receives an email notification with the message content and a link directly to their portal. They don't need to check the portal regularly — they'll be notified as soon as you write to them. The reverse is also true: when a client sends a message, you receive an email notification.

3

Unread badge

If the client has unread messages from you, a numeric badge appears on the Messages tab in their portal navigation. This ensures they notice new messages even if they navigate to another section of the portal first.

One thread per project

There is one message thread per project. This is intentional — it keeps all context in one place and prevents fragmented conversations. If you manage multiple projects for the same client, each project has its own separate thread.

Step 8

Invoicing

SmoothHandoff has built-in Stripe-powered invoicing. You can create an invoice, send it to the client through the portal, and the client can pay online via card or bank transfer — all without leaving the portal experience. Payment status updates automatically via Stripe webhooks.

1

Create an invoice

In the Invoices tab of a project, click Create invoice. Enter:

  • Amount — in your currency (supports USD, GBP, EUR, and others)
  • Description — what the invoice is for (e.g. "Final project balance", "50% deposit")
  • Due date (optional) — shown to the client as the payment deadline
2

Send the invoice

After creating the invoice, click Send to client. This triggers an email to the client with the invoice details and a link to their portal. The invoice status moves from Draft to Pending. The client now sees the invoice with a Pay Now button.

3

Client pays via Stripe Checkout

When the client clicks Pay now in the portal, they are redirected to a Stripe Checkout page. This is Stripe's hosted, PCI-compliant payment page — the client enters their card details there, not in your portal. SmoothHandoff never touches card data.

After payment, the client is redirected back to the portal and the invoice status updates to Paid automatically.

4

Automatic status updates

Payment confirmation happens via Stripe webhooks — Stripe sends a real-time event to SmoothHandoff the moment a payment clears. The invoice status updates from Pending to Paid without any manual action on your part. You'll also receive an email confirming the payment.

5

View all invoices

The Invoices page in the sidebar shows all invoices across every project and client — including amount, status (Pending/Paid/Cancelled), due date, and a direct link into the relevant project. Use this to track outstanding payments agency-wide without drilling into each project individually.

What the client sees

Invoices appear in the portal Invoices tab with a description, amount, due date, and status. A badge in the portal navigation shows the count of unpaid invoices so they're never missed. Paid invoices remain visible for the client's records.

Stripe setup required

Invoicing requires a Stripe account connected to SmoothHandoff. If Stripe is not connected, the Create Invoice button will be unavailable. Connect Stripe from Settings → Billing.

Step 9

Training & Documentation

The training section is where you leave everything the client needs to run their site independently after you hand it over. Think of it as a permanent knowledge base attached to the project — accessible any time, long after the handoff is complete.

1

Add a training item

In the Training tab, click Add training item. Choose a type:

  • Video — paste a URL (Loom, YouTube, Vimeo, or any embeddable video link). The video is embedded inline in the portal — the client watches without leaving the page.
  • Document — paste a URL to an external document (Google Doc, Notion page, Dropbox Paper). Displayed as a clickable link.
  • Guide — write instructions directly in the text area. Supports plain text with line breaks. Use this for step-by-step written walkthroughs.
2

Reorder training items

Like deliverables, training items can be drag-and-drop reordered. Put the most important or most frequently referenced items at the top. A logical sequence might be: CMS overview → adding pages → updating images → managing blog posts → contact form responses.

3

Edit and delete

Hover over any training item to reveal the edit and delete controls. Edits open the full form pre-populated. Titles and content can be updated without removing and re-adding the item.

Best practice

Record short Loom screenshares walking through common CMS tasks and embed them here. A 2-minute Loom video showing "how to add a blog post" saves you from fielding that question by email for the next two years. Clients love it.

Step 10

The Client Portal

The client portal is the client-facing side of SmoothHandoff. It's accessed via a secure magic link — a unique URL that authenticates the client automatically. No username. No password. No account creation. They click the link and they're in.

1

Send the portal invitation

From the project overview page, find the Client Portal card at the bottom. Click Invite [client name]. This generates a unique token, creates a secure session, and sends an email to the client's email address containing:

  • A personalised message explaining what the portal contains
  • A direct link to their portal
  • Your agency logo and name
2

Copy the portal link

Once the invitation has been sent, the portal card shows the portal URL and a Copy link button. You can paste this link into any other message (Slack, WhatsApp, email) if the client misses the invitation email. The same link works every time.

3

Resend the invitation

If the client can't find the original email, click Resend invitation on the portal card. This re-sends the same link to the client's email address. The token does not change — the same URL remains valid.

4

Last seen tracking

The portal card shows when the client last accessed the portal. If it shows "Not yet accessed" after a few days, it's a cue to follow up and make sure they received the invitation and know how to access it.

5

What the client sees in the portal

The client's portal has a horizontal navigation bar with tabs for each section:

  • Overview — project name, status, and a summary of what's in each section
  • Credentials — all logins with masked passwords and reveal-on-click
  • Files — all uploaded files grouped by folder with download buttons
  • Deliverables — the sign-off checklist with approve/revision controls
  • Messages — the shared message thread with your agency
  • Invoices — all invoices with Pay Now for outstanding ones
  • Training — all training videos, documents, and written guides

Token security

Each portal token is unique to a project session. Tokens expire automatically — if a token expires, the client sees a friendly "link expired" message and is prompted to contact your agency for a new link. You can resend the invitation at any time to refresh access.

Step 11

White-Label Branding

White-labelling means your clients never see "SmoothHandoff" anywhere in their portal. They see your agency name, your logo, and your brand colour. It looks like software you built yourself.

1

What gets branded

  • Portal header — shows your logo (or agency name if no logo) on every page
  • Navigation active state — underlines and highlights use your brand colour
  • Invite email — sent from SmoothHandoff's mail system but shows your agency name and logo
  • Invoice email — your agency name in the subject line and body
  • Badge colours — unread message and unpaid invoice badges use your brand colour
2

What is not branded (yet)

The Stripe Checkout page is hosted by Stripe and shows your Stripe account name. The SmoothHandoff domain is used for portal URLs unless you are on the Agency plan with a custom domain configured. Email is sent from a SmoothHandoff sending domain.

Consistent branding

Use the same hex colour from your main brand. If your website uses #E63946 as your primary red, enter that same value in settings. The portal will feel cohesive with the rest of your brand presence.

Step 12

Full Workflow — End to End

Here's what a complete, smooth handoff looks like from start to finish using SmoothHandoff:

1

Project wraps up

You've finished the build, design is approved, everything is ready to hand over.

2

Create the client (if new)

Add them to SmoothHandoff with their name and email.

3

Create the project

Name it clearly. Add a description so the portal overview is informative.

4

Add all credentials

Hosting, CMS, domain, email, social — everything they'll need.

5

Upload all files

Source code, design files, brand assets, exports — organised into folders.

6

Create deliverables checklist

List every item you agreed to deliver and expect sign-off on.

7

Add training materials

Loom walkthroughs, written guides, document links for ongoing site management.

8

Create final invoice

Enter the outstanding balance with description and due date.

9

Send portal invitation

One click sends the branded email with their portal link.

10

Client reviews and approves

They sign off on each deliverable, download their files, access their credentials, watch training videos.

11

Client pays invoice

They click Pay Now in the portal, complete Stripe Checkout, status updates to Paid automatically.

12

Mark project complete

Once all deliverables are approved and the invoice is paid, mark the project Complete.

Ready to run your first handoff?

Set up your agency in under 5 minutes. Your first 14 days are free — no credit card required.

Create your free account