From bb1fb3a7d6c733fc02fedcb100a41584228bb2bd Mon Sep 17 00:00:00 2001 From: ServaTilis <265587706+nSimonFR-ai@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:42:07 +0200 Subject: [PATCH] perf(api): lazy-load PDF renderer to cut server cold-start (#3244) Co-authored-by: Claude Opus 4.8 (1M context) --- packages/api/src/features/resume/export.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/api/src/features/resume/export.ts b/packages/api/src/features/resume/export.ts index 5570f336e..8125dfd2e 100644 --- a/packages/api/src/features/resume/export.ts +++ b/packages/api/src/features/resume/export.ts @@ -1,7 +1,6 @@ import type { ResumeExportTarget } from "@reactive-resume/resume/export-sections"; import { ORPCError } from "@orpc/server"; import z from "zod"; -import { createResumePdfFile } from "@reactive-resume/pdf/server"; import { getResumeExportData, resumeHasCoverLetter } from "@reactive-resume/resume/export-sections"; import { generateFilename } from "@reactive-resume/utils/file"; import { protectedProcedure } from "../../context"; @@ -30,6 +29,11 @@ export async function createResumePdfDownload(input: CreateResumePdfDownloadInpu const filename = generateFilename(target === "cover-letter" ? `${resume.name} Cover Letter` : resume.name, "pdf"); try { + // Lazy-load the PDF renderer (@reactive-resume/pdf → @react-pdf/renderer + + // phosphor-icons-react-pdf, ~10.6k icon modules) only when a PDF is actually + // exported, instead of at server boot. Slashes cold-start file I/O on + // constrained/slow-disk hosts. See fork perf/lazy-load-pdf. + const { createResumePdfFile } = await import("@reactive-resume/pdf/server"); const body = await createResumePdfFile({ data: getResumeExportData(resume.data, target), filename }); return {