SnapPDFSnapPDF
← back to showcase
EXAMPLE BUILD — illustrative architecture, not a published case study

Aurora DTC

Black Friday invoicing at 2,400 per second.

DTC e-commerce · $20M ARR · 18 engineers

The build

Peak-season invoice pipeline for a DTC brand. Moved from Puppeteer-on-Lambda (capped at 300 req/s) to SnapPDF Pro (absorbed 2,400 req/s peak).

Stack

  • · Next.js
  • · Stripe
  • · Shopify
  • · AWS Lambda
  • · SnapPDF Pro

Architecture

your app/fill-formSnapPDF/mergeSnapPDF/compressSnapPDFdelivery

Ops used: /fill-form → /merge → /compress

How they use SnapPDF

Aurora DTC sells premium home goods. Black Friday 2024 nearly broke them: 180k orders in four hours, and the invoice generation pipeline (Puppeteer on Lambda) topped out around 300 req/s before Lambda concurrency limits started throttling. 11% of orders got delayed invoice emails. The support team took a week to work through the complaints.

For 2025, they wanted headroom. Custom Puppeteer scaling required a full rearchitecture — stateful containers, warm-pool management, cold-start mitigation. Estimate: 8 engineering weeks.

Alternative: SnapPDF Pro. Migration took 11 days. The peak-hour architecture: SQS queue → Lambda consumer → SnapPDF (fill-form + merge + compress) → SendGrid. On Black Friday 2025, SnapPDF absorbed 2,400 req/s for a 23-minute peak without any throttle errors.

The numbers that matter: 99.99% of invoices delivered within 30 seconds of order confirmation (up from 89.3% the prior year). Zero support tickets about delayed invoices during the Black Friday window. Total cost for the peak: one-month Pro plan ($79) plus the overage (settled at $310 — they exceeded their 50k ops budget for that one burst).

Aurora's head of engineering summarized it in a company all-hands: "We spent 11 days migrating and saved 8 weeks of custom infra work. The ROI wasn't the SaaS bill — it was the two sprints we got back."

Outcomes

Peak throughput
300 → 2,400 req/s
On-time delivery
89.3% → 99.99%
Eng weeks saved
~8
Black Friday support tickets
0 invoice-related

Integration pattern

A simplified excerpt showing the core SnapPDF calls.

// apps/aurora-billing/src/lambdas/issue-invoice.ts
import { SnapPDF } from '@snappdf/sdk';
import { SQSEvent } from 'aws-lambda';

const snap = new SnapPDF({ apiKey: process.env.SNAPPDF_KEY! });

export async function handler(event: SQSEvent) {
  await Promise.all(event.Records.map(async (record) => {
    const order = JSON.parse(record.body) as ShopifyOrder;

    const { pdf: filled } = await snap.pdf.fillForm({
      file: INVOICE_TEMPLATE,
      values: {
        order_number: order.name,
        customer_name: order.customer.first_name + ' ' + order.customer.last_name,
        line_items: order.line_items.map(li => `${li.quantity}× ${li.title} — ${li.price}`).join('\n'),
        subtotal: order.subtotal_price,
        tax: order.total_tax,
        total: order.total_price,
        order_date: order.created_at,
      },
      flatten: true,
    });

    const { pdf: merged } = await snap.pdf.merge({
      files: [filled, TERMS_PDF_URL, RETURN_POLICY_URL],
    });

    const { pdf: small } = await snap.pdf.compress({
      file: merged, level: 'high', stripMetadata: true,
    });

    await sendgrid.send({
      to: order.customer.email,
      from: 'orders@aurora-dtc.example',
      subject: `Thanks for your order — ${order.name}`,
      attachments: [{ content: small.toString('base64'), filename: `${order.name}.pdf`, type: 'application/pdf' }],
    });
  }));
}

Start building like this

Free tier gives you 100 ops/month — enough to prototype any of the flows on this page. No card required.

Other builds