All Resources
Feature Spotlight 9 min read July 14, 2026

Why We Replaced PandaDoc with AegisDoc

PandaDoc charged per envelope, went down when we needed it most, and locked us into someone else's roadmap. So we built our own document engine. Here's what it cost, what it saves, and how easy it is to create a new document now.

A 5-truck moving company generates a lot of documents. Receipts at the end of every job. Invoices for every booked move. Estimates for every quote. Customer satisfaction releases at the end of every job. Add it up and you’re at 40–60 envelopes a week, 200+ a month, 2,400+ a year. At PandaDoc’s per-envelope pricing, that’s thousands of dollars a year for a small operator — money spent on the ability to hand a customer a piece of paper and get a signature.

That was the starting problem. It got worse from there.


What PandaDoc Was Doing for Us

PandaDoc handled three document types for us: receipts, invoices, and estimates. The flow was familiar: a MoveRight user clicked “generate,” our server called the PandaDoc API, PandaDoc rendered the document, and the user downloaded it or sent it for signature.

For e-signatures, PandaDoc was the whole pipeline. Customer signed, crew signed, PandaDoc stored the signed copy, we retrieved it. No signing service of our own. Every signature flowed through a third party.

This worked. It also cost us in three ways that stopped being acceptable.


Why We Built AegisDoc Instead

Per-envelope fees. Every receipt, every invoice, every estimate, every customer satisfaction release — each one was a billable envelope. For a 5-truck operation doing 50 jobs a month, that’s 200+ documents a month just for the core financials. Stack customer satisfaction releases on top and you’re paying for the privilege of closing your own jobs.

Outages. When PandaDoc went down, we couldn’t generate documents. No receipts meant crews couldn’t close jobs on site. No invoices meant accounts receivable stalled. No estimates meant sales stalled. A third-party outage in our document pipeline was a third-party outage in our customers’ operations. We don’t accept that for dispatch or scheduling — we shouldn’t accept it for documents.

Roadmap lock-in. We wanted a branded invoice for a new franchise. PandaDoc’s template builder required a round trip through their API, their editor, their field mapping. We wanted a tax breakdown that matched a specific jurisdiction. PandaDoc’s conditional logic didn’t quite fit. We waited on their roadmap for features we could have built in an afternoon.

So we built AegisDoc — our own document generation engine, running on our own infrastructure.


How It Works (in Plain English)

AegisDoc renders documents on our own servers. When a user clicks “generate receipt,” the request never leaves our system. We build the document from a template, produce a PDF, and hand it back to the user. No third-party API call. No per-document fee. No outage that we don’t own and can’t fix.

The templates are written in the same framework we use for the rest of MoveRight — a developer opens a template file, edits the layout, ships it in a single merge request. The receipt template, the invoice template, and the estimate template all share styling constants, so a change to the brand look propagates across every customer-facing financial document at once.

For receipts, the rendering happens entirely server-side. For invoices and estimates, the architecture is engine-agnostic — see below.


E-Signatures, Built In

We didn’t want to replace PandaDoc’s document generation and then keep paying them for signatures. So we built signatures into AegisDoc.

A signature block can have multiple roles — customer and crew, for example, on the same document. The signer can draw their signature on screen or upload a photo. The server verifies the signature and writes a cryptographic audit trail: who signed, when, from what role, with what method. No separate signing service. No additional per-envelope fee.

When a document is fully signed, AegisDoc sends the signed PDF copy to every signer role and to the job’s watchers — the dispatcher, the sales agent, the account manager. Everyone who needs the signed record gets it automatically.


Engine-Agnostic Migration: Zero Risk

Here’s the part we’re proudest of. We didn’t force anyone to switch.

AegisDoc is engine-agnostic. Each zone can run Aegis or PandaDoc, and the zone admin can flip between them in one click from the document settings page at /business/documents. The settings page shows per-document-type generation counts — how many receipts Aegis generated this month vs. how many PandaDoc generated — so you can watch the migration happen in real numbers.

A new zone comes online on Aegis. An existing zone stays on PandaDoc until the operator is ready. A zone that hits an edge case can flip back to PandaDoc in one click while we fix it. There is no migration event. There is no cutover risk. There is just a settings page and a toggle.

The new ymm-invoice.tsx template matches the legacy PandaDoc invoice layout line for line. Customers don’t see a difference. The accounts receivable team doesn’t see a difference. The only thing that changes is the line item on the invoice from PandaDoc.


How Easy Is It to Create a New Document?

This is where AegisDoc pays for itself in a way PandaDoc never could.

AegisDoc templates are .tsx files — the same file format our engineers use to build every other screen in MoveRight. To create a new branded invoice for a new franchise, a developer opens a template, writes the layout, and ships it in a single merge request. No PandaDoc template builder. No API round-trips. No waiting on a third party’s editor to load.

On July 17, merge request !2189 shipped exactly this: a Vancouver Island invoice for YMM with its own branded layout, a payment-terms notice, and conditional tax breakdowns that matched the jurisdiction. One merge request. One franchise. One invoice template that would have been a week-long back-and-forth in PandaDoc.

That’s the difference. The document engine is part of the codebase. The roadmap is our roadmap. The templates are files we own.


Document Settings Page

The /business/documents settings page is the control panel for all of this. It shows:

  • Per-document-type generation counts — Aegis vs. PandaDoc, per month
  • Inline engine switching — flip a document type between Aegis and PandaDoc without a support ticket
  • Template URL editing — point a document type at a specific template file

A zone admin can see exactly how many documents Aegis generated this month, how many still went through PandaDoc, and switch the remaining ones over when they’re ready. No guessing. No “trust us, it’s working.” The numbers are on the page.


View As: Employee or Customer

Every document in AegisDoc has a View As toggle: see the document as an employee sees it, or see it as the customer sees it. The customer view strips internal notes, pricing internals, and crew-side fields. The employee view shows everything.

This sounds small. It isn’t. In PandaDoc, previewing the customer-facing version of a document required generating a test envelope — a billable envelope, incidentally — and opening it in a separate viewer. In AegisDoc, it’s a toggle on the same page.


Consistent Branding Across Receipts, Invoices, and Estimates

We redesigned the Estimate and Receipt templates to match the Invoice look. All three customer-facing financial documents now share styling constants — fonts, spacing, color palette, logo placement, footer layout. A customer who receives a receipt on Monday, an invoice on Wednesday, and an estimate on Friday sees three documents that obviously came from the same company.

Under PandaDoc, each document type lived in its own template builder with its own styling. Drift was inevitable. AegisDoc’s shared constants make drift impossible — change the brand color once, and it changes everywhere.


PandaDoc vs. AegisDoc

PandaDocAegisDoc
Pricing modelPer envelopeNo per-document fees
Outage riskThird-party outage stops all documentsRuns on our own infrastructure
E-signaturesIncluded, per-envelope feeBuilt in, no per-document fee, multi-role, cryptographic audit trail
Template creationTemplate builder, API round-trips.tsx file, one merge request
Per-doc cost for a 5-truck opThousands per year$0
MigrationAll-or-nothing cutoverEngine-agnostic, one-click swap per zone

What This Means for Moving Company Owners

If you run a 5-truck operation, you were paying PandaDoc thousands of dollars a year to produce your own receipts, invoices, and estimates. You were also one PandaDoc outage away from not being able to close jobs.

AegisDoc removes both problems. No per-document fees. No third-party outages in your document pipeline. Branded documents that match across receipt, invoice, and estimate. E-signatures built in with a full audit trail. And a template system that lets us ship a new branded invoice for a new franchise in a single merge request.

MoveRight is the moving company CRM that handles dispatch, scheduling, estimates, invoices, and now documents — without renting your core operations back from a third party.

If you’re paying per envelope for documents that should be a feature of your CRM, that’s an answerable problem.

See AegisDoc in action


References:

MR

MoveRight Team

MoveRight

aegisdoc pandadoc documents e-sign engineering

Ready to put this into practice?

Start a 5-day free trial and see how MoveRight handles this in your business.