DEV3 Technologies home

DEV3 Briefcove – White-Label Agency Client Portal SaaS Laravel Script with Approval Rounds, Pay Links, Custom Domains

A self-hosted white-label client portal for agencies on Laravel 12 and Filament 4: branded subdomains and custom domains, file versions with pin comments and approval rounds, threads, simple invoices with pay links and payouts. Web installer and demo data included. No mobile apps.
by DEV3 TechnologiesVerified Author(0) 0 sales 0 viewsUpdated 10 Nov 2026

Launch Offer: up to 50% off

This item is 50% off: $24.50 instead of $49

Ends in
--
Days
--
Hrs
--
Min
--
Sec

Video tour. Pick a section below to browse 105 screenshots in 9 sections.

App & phone tours

Tap play to watch each app. Nothing downloads until you do.

  • Mobile web0:55

Briefcove is a white-label client portal that agencies run for their clients, built by DEV3 Technologies on Laravel 12 and Filament 4. You run it as the operator: you sell plans to agencies, and each agency gives every client a branded portal on its own subdomain or custom domain to follow projects, review and approve files, talk in threads, read status updates and pay simple invoices.

What it does

  • Approvals with rounds. Every upload becomes a numbered version. Clients open the artwork or PDF in the page, drop numbered pin comments, then approve or ask for changes with a short reason. Rounds can be limited per deliverable; a manager can allow one more. Older versions say they were replaced and link to the current one.
  • Projects the client can follow. Milestones, deliverables, files in folders, weekly status updates written once, requests that the agency accepts or declines, and threads that update live (Reverb, or polling every 10 seconds). Agency-only notes never reach the client.
  • Agency studio. A Filament panel with the Review Tide (open, late and clearing reviews by client), key numbers, project health, a kanban board, tasks, project templates, contractor release before a client sees a file, and an approvals-waiting list with reply deadlines.
  • Simple invoices. Build an invoice from approved milestones or from custom lines, add tax, send a pay link, take partial payments, refund with a reason and chase overdue invoices with reminders. Monthly retainers are billed on a schedule. PDFs come from the same numbers.
  • Your brand, their address. Logo, accent colour and welcome note, a subdomain per agency, an optional custom domain with a verification token and an SSL status, plus a portal in English and right-to-left Arabic, light and dark.
  • Money you can reconcile. Client payments go to your gateway as merchant of record. Each agency has a takings wallet with a payout hold, weekly payout statements and durable pending refunds. A briefcove:check command proves invoices, payments and wallets agree.
  • Operator panel and API. Agencies, plans, subscriptions, platform invoices, client payments, payouts, pending refunds, domains, quarantined files, an outbox, an audit log and audited view-only support sessions. A scoped REST API with an OpenAPI document and signed webhooks.

Quality checks

The release passed seven gates on the final code: Larastan level 6 with 0 errors, 262 Pest tests (6,273 assertions), a build well inside the page budget, migrations and the full demo seed on MySQL 8 and SQLite, a headless smoke test of 118 pages with 39 happy-path checks and eight race groups run on MySQL (parallel approvals of one version, payments and refunds against one invoice, payout runs and more), the installer driven from the zip, and a secret scan. The home page scores 93 for performance and 100 for accessibility on mobile.

What you should know before buying

  • You are the merchant of record. Client payments go to your gateway (simulated by default) and you pay each agency out from its takings wallet. Agencies cannot connect their own Stripe account in this version.
  • Custom domains need your proxy. Point DNS and terminate TLS at your web server or proxy (a Caddy on-demand TLS setup is documented). Domain verification is simulated by default, and SSL status is reported, not issued.
  • Previews cover images and PDF only. Other files download. A video poster frame needs ffmpeg on the server. Storage is local or S3-compatible.
  • Proofing is pin comments on images and PDF pages. There are no drawing or markup tools.
  • Retainers on real gateways are not configured. The simulated driver shows the full flow; a real driver throws recurring_not_configured until you add stored-payment-method support.
  • Not a time tracker. Tasks carry estimate and actual hours as plain fields. Invoices are deliberately simple, and approvals are click-and-comment sign-offs on files, not legal documents.
  • Simulated drivers. Mail, payments, virus scan, DNS and recurring charges all have working simulated drivers; real ones need your own accounts.
  • A cron entry every minute and a queue worker are required. Web only: there are no mobile apps. Node.js is not needed (assets are prebuilt).

How it is different

It starts after the deal is won: delivery, review and payment, with a client-facing portal as the product. It is multi-tenant, with each agency's clients scoped by agency and by client on every query, so it suits an operator who wants to sell a portal to many studios rather than run one internal tool.

Included

Source code, the web installer, a buyer guide with API contract, demo data with fictional agencies, clients and people (design, web and film studios with a year of projects, files, messages and invoices), a cron entry for the scheduler, and six months of support.

How it's built

Architecture, stack, key decisions and the quality gates DEV3 Briefcove passed before release.

The engineering behind Briefcove: versioned approvals that two people cannot both decide, client access scoped on every query, a wallet ledger that reconciles and a SafeHttp layer that pins every hop.

The problem it solves

A client portal looks like a login and a file list until two approvers click at once, a refund lands while a payout runs, or a client opens another client's project by changing an id. Each of those must end in consistent books, and agency-only notes must never reach a client.

Architecture and approach

Briefcove is a Laravel 12 application with Filament 4 studio and operator panels and a hand-built client portal. Client access is scoped by agency and by client in one access class, and tests cover cross-agency and cross-client reads. Approvals go through one engine that takes row locks in a fixed order, so a second decision on the same version is refused rather than lost.

Payments, refunds, payouts and retainer runs are idempotent and write ledger entries that a reconciliation command checks. Refunds that cannot be funded yet wait in a durable queue. Outgoing webhooks go through a client that pins the resolved address on every hop, refuses private ranges and re-checks redirects. Race groups run against MySQL with parallel processes.

Quality gates and results

The release passed seven gates, including a headless smoke test of 118 pages and the race checks on MySQL. The reconciliation command passes on the demo data: nine agencies and a year of projects, files, messages and invoices.

Tech stack

Area Technologies
Application Laravel 12, Filament 4, Blade, REST API
Data MySQL 8, SQLite
Frontend Tailwind CSS 4, Vite
Quality Pest, Larastan level 6, Playwright

Inside the build

The agency view: The studio project workspace sits beside the promise: clients see progress, you stop chasing replies. The agency view — The studio project workspace sits beside the promise: clients see progress, you stop chasing replies.

The client view: The same project as the client sees it on the agency own portal address. The client view — The same project as the client sees it on the agency own portal address.

Guides & articles

Practical guides and engineering write-ups for DEV3 Briefcove.

Client portal software for agencies: 6 things to check before you pick one

Last updated
Client portal software for agencies: 6 things to check before you pick one: DEV3 Briefcove

Clients do not want another login, they want to know what is waiting for them. Here are six things to check before you pick software to give clients a portal, with DEV3 Briefcove as the worked example.

Briefcove home page: the studio project workspace beside the promise that clients see progress and you stop chasing replies

1. Can a client approve without a meeting?

An approval is only useful if it is specific: which version, which round, who decided and why. Briefcove numbers every upload, lets the client drop pins on the artwork, and records approve or request-changes with a short reason. Rounds can be limited per deliverable, and a manager decides whether to allow one more.

A client reviewing artwork with numbered pins and the round count

2. Do you see what is stuck?

A dashboard of tasks does not tell you which client is sitting on a review. The Review Tide shows open, late and clearing reviews by client, and the approvals list carries the reply deadline.

The Review Tide: reviews waiting on each client, with late ones marked

3. Who takes the payment?

Simple invoices are enough for most agencies: lines from approved milestones, tax, a pay link, partial payments and refunds. In Briefcove the operator is the merchant of record, and each agency has a takings wallet that is paid out weekly. Agencies cannot connect their own Stripe account in this version, so say that plainly to your buyers.

Invoice built from approved milestones

4. Does it live on the agency's own address?

Clients trust a portal on the agency's name. Briefcove gives each agency a subdomain and, on suitable plans, a custom domain with a verification token. DNS verification is simulated by default and TLS is terminated at your proxy, with a Caddy on-demand TLS setup documented.

Custom domain settings with the CNAME target and verification status

5. What can it preview?

Images and PDFs open in the page. Other files download, and a video poster frame needs ffmpeg on the server. Proofing is pin comments, not drawing tools. Ask every vendor for this list.

6. What are the limits?

It is not a time tracker, retainers on real gateways need your own driver, drivers for mail, payments, scanning and DNS are simulated until you add accounts, and there are no mobile apps.

The takings wallet with payout holds and statements

Video: a tour of Briefcove from the site to a client approval, a paid invoice and the operator panel

Frequently asked questions

The complete source code (version 1.0.0) as a download from your account, with the setup and usage guides shown on this page. You can modify the code to suit your product.

Buying guides: Laravel scripts with Filament panels and a web installer · Next.js or Laravel for a SaaS script?

Questions about this product (0)

Answers from the DEV3 team and the community.

Ask a question

No questions yet.

Wondering about setup, licensing or customisation? Ask, and the DEV3 team will help.

More from this author

View all

Related in Web Scripts & Software

View all