Skip to main content

๐Ÿš€ Building a Zero-Cost, 24/7 Always-On Enterprise Serverless E-Signature Platform (E-Sign Desk)

Author
Frank Zhang
Exploring AI, Network, Insurance, and Life.

Abstract: This article presents a complete guide on building a 100% cloud-hosted, enterprise-grade e-signature platform rivaling DocuSign and Adobe Sign from scratch using Cloudflare Workers, Cloudflare KV, pdf-lib, @signpdf, and an Actalis commercial-grade PKCS#12 digital certificate. The system features 24/7 sub-second global responsiveness, 2048-bit RSA cryptographic tamper-proof signatures, automated Certificate of Completion audit trail generation, custom passcode locks, and instant email delivery capabilitiesโ€”all at zero infrastructure cost.


๐Ÿ“Œ 1. Project Background & Pain Points
#

In modern commercial operations and highly regulated industries (such as insurance, finance, taxation, and legal sectors in North America), electronic signature of contracts and policies is a core requirement. However, relying on mainstream commercial e-signature platforms (e.g., DocuSign, Adobe Sign, OneSpan) poses several key challenges:

  1. High Per-Envelope Subscription Fees: Commercial e-sign vendors charge heavy per-envelope or annual subscription fees (often thousands of dollars per year).
  2. Data Privacy & Governance: Sensitive client information, contract texts, and signature images are stored on third-party servers, making data localization and autonomous control impossible.
  3. Unreliability of Self-Hosted Local Servers: Self-hosting Node.js/Express servers locally requires NAT traversal / tunneling (like Ngrok) and keeping a local Mac/Linux machine powered on 24/7. Any network drop, power outage, or system sleep halts the entire signing workflow.

To solve these problems, we engineered this 100% Cloud-Hosted Serverless E-Signature Platform.


๐Ÿ—๏ธ 2. Overall Architecture & Technical Selection
#

The system utilizes an Edge Computing architecture. The frontend uses a responsive, lightweight UI, while the backend runs entirely across Cloudflare’s 300+ global edge nodes.

graph TD
    User[User / Signer] -->|HTTPS Access| Domain[docusign.your-domain.com]
    Domain -->|Cloudflare Routing| Worker[Cloudflare Worker / Hono Framework]
    
    subgraph Cloudflare Serverless Edge Environment
        Worker -->|Read/Write Data| KV[(Cloudflare KV - ESIGN_KV)]
        Worker -->|Read Certificate| KVCert[ACTALIS_P12 2048-bit RSA]
        Worker -->|Read Secrets| KMS[KMS Secrets - P12_PASSWORD / RESEND_API_KEY]
    end
    
    Worker -->|PDF Synthesis & PKCS#7 Signing| PDFEngine[@signpdf + pdf-lib]
    Worker -->|Transactional Email| Resend[Resend API / Domain Authenticated]
    Resend -->|Delivery| Recipient[Recipient Gmail / Outlook Inbox]

๐Ÿ› ๏ธ Technology Stack
#

  • Edge Runtime: Cloudflare Workers (powered by Google V8 Engine)
  • Web Framework: Hono.js (lightweight, high-throughput Edge web framework)
  • Database / Persistence: Cloudflare KV Namespace (ESIGN_KV)
  • PDF Rendering & Processing Engine: PDF.js (frontend dynamic rendering) + pdf-lib (backend PDF manipulation and page injection)
  • Cryptography & Digital Signatures: @signpdf/signpdf + @signpdf/signer-p12 + node-forge
  • CA Digital Certificate: Actalis Commercial PKCS#12 (S/MIME Public CA 2048-bit RSA + SHA-256)
  • Email Delivery Engine: Resend REST API (authenticated domain noreply@your-domain.com)
  • Frontend UI: HTML5 + Tailwind CSS + HTML5 Canvas Signature Pad

๐ŸŒŸ 3. Core Features & Highlights
#

1. โœ๏ธ DocuSign-Grade Guided Signing Desk
#

  • Pre-assigned Field Guidance: When signers open the link and click the ๐Ÿš€ START button, the page smooth-scrolls and highlights fields (๐Ÿ–Š๏ธ Signature / ๐Ÿ”ค Initials / ๐Ÿ“… Date) sequentially, reducing user friction.
  • Free Placement Mode: If the sender did not pre-assign fields, signers can click anywhere on the PDF or click a button to drop a signature block directly.
  • Multi-device Adaptability: Fully supports PC mouse drawing, smartphone/tablet touchscreen signatures, typed cursive text conversion, and image signature uploads.

2. ๐Ÿ” Triple Cloud Security & Custom Access Passcode Lock
#

  • Master Passcode Lock: An inline IIFE obfuscation layer intercepts DOM loading at millisecond zero, preventing any rendering before unlocking. Includes a one-click ๐Ÿ”’ Lock button on the header for instant lock testing.
  • Hardware-Level Encryption (Cloudflare KMS Secrets): Certificate passphrases (P12_PASSWORD) and API credentials (RESEND_API_KEY) are secured via Cloudflare KMS hardware-grade encrypted secrets, ensuring zero plaintext credentials in repository code.

3. ๐Ÿ“œ Legal-Grade Tamper Proofing & Audit Trail Certificate#

  • Meets strict compliance standards from top North American financial institutions (e.g., Canada Life, Sun Life, Manulife):
    • Automated Certificate of Completion Generation: Appends an audit trail page detailing each signer’s Name, Email, IP Address (Cloudflare Connecting IP), UTC Timestamps, and complete chained event logs.
    • PKCS#7 2048-bit RSA Cryptographic Signing: Embeds a digital certificate signature hash into the final PDF. Any post-signing alteration, page modification, or saving-as triggers an explicit tamper alert in Adobe Acrobat Reader.

4. ๐Ÿ”— Sequential Chain & Witness Support
#

  • Supports index-based routing (Recipient Index 0 โž” 1 โž” 2). Once the previous party signs, the system automatically fires email notifications and activates the access link for the next party.

๐Ÿ› ๏ธ 4. Engineering Insights & Pitfalls Overcome
#

Transitioning from a traditional Node.js (Express) local server to a Cloudflare Worker edge architecture required tackling several real-world engineering hurdles:

Pitfall 1: Mailchannels / Resend Sender Domain Verification & 401 / 403 Errors
#

  • Issue: Calls to the email sending endpoint returned 401 Authorization Required or 403 validation_error.
  • Root Cause & Solution:
    1. Mailchannels enforced Domain Lockdown, requiring a _mailchannels TXT record (v=mc1 cfid=your-account.workers.dev) in DNS to verify Workers ownership.
    2. Resend’s default test sender onboarding@resend.dev only allows sending to the registered account owner, returning 403 when emailing external Gmail addresses. Upgrading to a custom authenticated domain E-Sign Platform <noreply@your-domain.com> achieved instant 200 OK delivery.

Pitfall 2: Cloudflare WAF Bot Shield Interception & Just a moment... API Errors
#

  • Issue: Frontend clicks on Resend or /api/envelopes returned <!DOCTYPE html><html...Just a moment..., causing JSON parse failures.
  • Solution: Configured a WAF Custom Skip Rule in Cloudflare Dashboard:
    • Rule condition Hostname equals docusign.your-domain.com โž” Action Skip (bypassing WAF Managed Rules, Bot Fight Mode, and Security Level), successfully unblocking API traffic.

Pitfall 3: FormData Parsing Bug Triggering No number after minus sign in JSON
#

  • Issue: Submitting a signature triggered a JSON syntax error.
  • Root Cause: Frontend submitted payloads formatted as multipart/form-data, starting with boundary hyphens --------------------------12345.... The backend inadvertently called c.req.json(), causing V8’s parser to interpret the leading - as an invalid number.
  • Solution: Refactored /api/sign/:id to inspect Content-Type headers dynamically and switch between application/json and c.req.parseBody(), delivering 100% compatibility.

Pitfall 4: Frontend vs. Backend Field Name Mismatch Hiding Pre-assigned Fields
#

  • Issue: Senders placed signature fields during prep, but recipients saw No pre-assigned fields found.
  • Root Cause: The prep frontend stored field ownership under recipientIndex, while the Worker backend only checked signerIndex, resulting in filtered empty arrays.
  • Solution: Updated Worker backend filtering logic to check both recipientIndex and signerIndex, ensuring 100% accurate field rendering.

๐Ÿš€ 5. Quick Deployment & Setup Guide
#

1. Configure wrangler.toml
#

name = "esign-platform"
main = "worker.mjs"
compatibility_date = "2026-08-28"
assets = { directory = "./public", binding = "ASSETS" }

[[kv_namespaces]]
binding = "ESIGN_KV"
id = "YOUR_CLOUDFLARE_KV_NAMESPACE_ID"

2. Upload Certificate & Cloud Secrets
#

# 1. Upload Actalis P12 binary certificate to KV
npx wrangler kv key put --binding=ESIGN_KV "ACTALIS_P12" --path=actalis.p12 --remote

# 2. Set certificate passphrase and Resend API key
echo "YOUR_P12_PASSWORD" | npx wrangler secret put P12_PASSWORD
echo "YOUR_RESEND_API_KEY" | npx wrangler secret put RESEND_API_KEY

3. Deploy to Edge
#

npx wrangler deploy

๐Ÿ“Š 6. Conclusion & Roadmap
#

By migrating 100% of the platform to Cloudflare Workers, we achieved a true $0-cost, 24/7/365 uninterrupted serverless operating model, while exceeding commercial standards in security, compliance, and global latency.

Future Roadmap
#

  • Integrate native DigiCert / GlobalSign AATL HSM hardware signing endpoints to display automatic green trust checks upon opening in Adobe Acrobat.
  • Add smart OCR field detection and automatic policy number auto-filling.

Feel free to share your thoughts or discuss Serverless architecture and PDF PKCS#7 digital signature implementation details in the comments below!