Artisan PDF Studio
Build plan · drafted 2026-09-16 · artisanpdfstudio.com
Sheet 01 · The idea

Well-made PDF templates, made yours.

A studio of designed PDF templates. You see the real page, try a colour, type your name onto it, and pay a few dollars for the finished file in Letter and A4. The plain version of every template is free. The customization is the product.

30templates at launch, 7 categories
$4 / $7 / $12three price tiers, stated up front
1 filerenders the preview and the PDF
Certificate of
Completion
Presented to
Avery Lane
for finishing the Spring Letterpress Workshop
InstructorDate
SEAL
Plain version free

This is the site's whole trick, working: the same HTML is the preview and the PDF. Make the name too long and the button refuses, because the site will not sell a page it cannot fit.

Sheet 02 · Free and paid

The plain version is free. Yours costs money.

Search intent behind "printable weekly planner" is free-seeking, and Pinterest traffic bounces off a paywall. So the default design, in one theme, on Letter, with a one-line credit at the foot, is a free static file. It earns the links and the saves, and the credit line on every copy is the cheapest advertising the site will have.

Money changes hands when the page carries the visitor's name, dates, colours, logo and wording, in both paper sizes, with no credit line and a link that works for a year. Templates whose whole point is personalization (an invoice, a certificate, an invitation) lose nothing to a free sample with someone else's name on it.

No email gate on the free download. The moment it starts, one offer: the paper set free and one new template a month, which builds the list. Email drives about 42% of sales on Gumroad against 23% from social, so the list is a channel, not a nicety.

Plain, freeMade yours
The design, one theme, Letteryesyes
Your text, names, dates, logonoyes
All themes, including light inknoyes
Letter and A4Letter onlyboth
Credit line at the footsmallnone
Re-download link, one yearnoyes
Licensepersonalpersonal + small business
Price$0$4 / $7 / $12; bundles $15 to $29
Sheet 03 · How a PDF gets made

One HTML file, five steps, no build.

A template is a folder of plain HTML and CSS plus two small JSON files (what the customizer exposes, and catalogue data). You can design every template yourself in the language you already know. The same file is the live preview, the free PDF, the paid PDF, the preview image, the share card and the pin.

Customize

The template loads in an iframe. A shared script writes your words into marked places and swaps the colour theme as you type. Overflow disables the buy button.

Pay

A Vercel function validates the values, saves the order, and opens Stripe Checkout. The price comes from the template's own file, never from the browser.

Render

Stripe's webhook says "paid". The function sends the same HTML plus your values to Cloudflare Browser Run and gets PDF bytes back. Twice: Letter and A4.

Store

Both PDFs go to a private Supabase bucket. Links are signed and short-lived, minted fresh on every visit for a year.

Deliver

The success page shows two buttons. Resend sends the same two buttons by email. A failed render shows a real message, never a spinner.

The stack, and what each piece is for

  • Vercel serves the static site and runs six small Node functions from an api/ folder. No framework. Pro plan the day live keys go in (Hobby is non-commercial by its terms).
  • Supabase holds orders and the finished PDFs. No visitor accounts in v1.
  • Stripe Checkout takes the money. Stripe Tax if turned on.
  • Cloudflare is DNS, Turnstile in front of the two open forms, and Browser Run for the paid PDFs ($5 a month, ten browser-hours included).
  • Resend sends receipts, re-download links and the monthly "new this month".
  • Anthropic API powers "Write it for me" on long-text fields and a hand-run copy drafting script. Never in the money path. The word "AI" appears nowhere on the site.

What makes it hard to copy

  • The preview is the file. Marketplaces show a JPEG and hope.
  • It refuses to sell a broken page. Canva will happily export a certificate with the name cut off.
  • Two paper sizes from one purchase, because @page makes it free for us.
  • A real, stated free version with a credit line, so free traffic works for the paid product.
  • Licensed fonts, named on the page, logged in an append-only file.
  • Twelve indexable month pages a year from one calendar source: honest volume.
  • No billing tricks. The largest competitor advertises $1.99 and bills a year; its review score shows what that costs.
Sheet 04 · The look

The site is a working print studio. The page is a desk; the templates are sheets on it.

Paper is white, always, because that is what comes out of the printer. The site around the paper is a putty-grey worktop, so the sheets read as objects with crop marks and a shadow. One accent, pressman's red, and it only ever means "act": price, buy, proof, selected. The process colours appear in one small bar and nowhere else. This page is built on exactly those rules, so you are looking at the direction, not reading about it.

Palette

--desk#e8e5de
the ground
--sheet#ffffff
paper
--ink#17181a
registration black
--pencil#6b6f76
meta, crop marks
--accent#b3261e
price, buy, proof
--kraft#c9a97a
the free tag

Type

Newsreader, self-hosted
System sans for everything you read. About 65 characters a line.
ui-monospace for every number: $7.00 · 8.5 × 11 in · 12 / 40 · order 3F9A

One display face is the budget, latin subset, preloaded, OFL beside it. Never a Google Fonts link on the live site (this plan page is allowed one because it is not the site). Every template carries its own type system, at most two faces, so the collection reads as different things made by one studio.

Devices

  • The sheet frame: true aspect ratio, crop marks, two-layer shadow, lifts 4px on hover. Used everywhere a template appears.
  • The live sheet: not a picture of the template, the template, with theme chips wired.
  • The proof: a diagonal PROOF over the customizer at 8% red. Honest, on-brand, and it makes a screenshot worth less than $7.
  • Theme chips drawn as paint chips. Stamps: FREE on cards, PROOF in the customizer, Ready on the success page.
Sheet 05 · The launch catalog, in build order

Thirty templates. The first four set the pattern.

The invoice goes first because it exercises every field type (logo, repeating line items with computed totals, a show/hide section). The weekly planner is the volume play. The certificate is the customization play and the first "Write it for me" field. The 2027 monthly calendar is the one that scales: month-by-month calendar phrases carry the largest search volume in the whole category, and one source emits twelve indexable month pages a year. Letters are keyboard shortcuts, the way they are on measureandbuy.

BBusiness & money $12 tier

  1. Invoice#1 reference
  2. Gift certificate#9 · $7
  3. Quote / estimate#14
  4. Receipt (3-up)#15 · $7
  5. Letterhead#16
  6. Timesheet#23 · $7
  7. Price list#24

PPlanners & trackers $7 tier

  1. Weekly planner#2
  2. Habit tracker#5 · $4
  3. Monthly budget#6
  4. Meal planner + grocery#7
  5. Daily planner#8
  6. Cleaning checklist#21 · $4
  7. Packing list#22 · $4
  8. Workout log#27 · $4

AAwards & certificates $7 tier

  1. Certificate of completion#3
  2. Certificate of achievement#13
  3. Certificate of appreciation#29

CCalendars dated

  1. Monthly calendar 2027 + 12 month pages#4 · $7
  2. Yearly calendar 2027, one page#25 · $4

EEvents & celebrations $12 tier

  1. Birthday invitation (2-up)#10 · $7
  2. Wedding invitation#18
  3. RSVP card (4-up)#19 · $7
  4. Menu#20

HHome & classroom $4 to $7

  1. Chore chart#11
  2. Recipe card (2-up)#12
  3. Lesson plan#17 · $7
  4. Reading log#26
  5. Sign-in sheet#28

NPaper & notes $4

  1. Lined, graph and dot-grid set#30

Bundles at about two and a half singles: Planner set $19, Business set $29, Wedding suite $29, Certificate set $15, Classroom set $15. Résumés are the biggest keyword deliberately left out: they reflow, and the fixed-box runtime cannot promise a fit. Wave 2, with a second runtime, if the numbers justify it.

Sheet 06 · Phases

Prove one template end to end, then let the system make the rest.

Phase 0

Accounts and scaffold

You create the accounts and keys in SETUP.md (about an hour). One session bootstraps the repo, DNS, Vercel, the Supabase migration, the shell, the design system, the homepage hero on a placeholder template, the legal four, two help articles. Live at www with nothing to buy yet.

Phase 1

The invoice, end to end

Runtime, customizer, checkout, webhook, render, storage, email, success page, free PDF, page generator, share images, the sweep.

Done means: a test-mode purchase from your phone, fonts embedded in Letter and A4, the email inside a minute, the link still working the next day, a refund marking the order.

Then extract the new-template skill, the way new-tool came out of paint.

Phase 2

The roster and the surface

Templates 2 to 30 through the skill, one per session. Category pages, six help articles, sitemap, Search Console, GA4, Pinterest with a pin per template, the list and the first broadcast. Live Stripe keys. This is where "PDF farm" happens, through the system rather than by hand.

Phase 3

Growth, with the eight-week read in hand

"Write it for me" everywhere it fits. Bundles. Next year's calendars from the same source. Accounts by magic link, "my downloads", the all-access pass on Stripe Billing.

Phase 4

Only if the numbers say so

A4-first pages for the UK, Australia and Europe. Seasonal collections. A second runtime for flowing templates, which unlocks résumés.

Sheet 07 · What needs your hands

Before session one

  • Lovable: disconnect GitHub in the project settings before anything touches main. Leave it published; it serves the domain until cutover.
  • GitHub: the repo exists, brentspore/artisan-pdf-studio. Merge the rebuild branch into main once the plan is approved.
  • Vercel: the project exists, preset "Other", no build. No www domain until cutover; the plan subdomain is the only one for now.
  • Cloudflare: Workers Paid for Browser Run, an API token, the account ID. A Turnstile widget.
  • Supabase: reset PDF Farm. Rename it, delete its twelve old functions, make a new secret key; the migrations in the repo do the rest.
  • Stripe test keys, branding set to the studio. The webhook is created once the site is live.
  • Resend domain verified (three DNS records), an API key, a contact list.
  • Anthropic API key with a $25 monthly limit. GA4 property. Pinterest waits for Phase 2.
  • All keys into Vercel as environment variables; the names are in SETUP.md.

Decisions, one word each

  1. Free version: yes (recommended) or strictly paid.
  2. Tiers $4 / $7 / $12, bundles $15 to $29 (recommended).
  3. Tagline: "Well-made PDF templates, made yours." (recommended). Alternates: "Pick a design. Make it yours. Print it." and "Templates worth printing."
  4. Name on receipts and footer: Synergy, per the house rule.
  5. Stripe Tax at launch: on if any UK or EU sales are likely.
  6. Cookie consent: Phase 2, together with the Pinterest tag.
  7. First four: invoice, weekly planner, certificate, 2027 calendar.

Where the plan lives

repo brentspore/artisan-pdf-studio, branch plan · every document is readable under Documents
SPEC.md · source of truth, with section 0 on what exists today
SETUP.md · accounts, keys, first prompts, the cutover order
ARCHITECTURE.md · flow, data model, routes, security
DESIGN.md · identity, tokens, customizer
CATALOG.md · the thirty, with research
.ai/memory/ · filled from the plan; merging the branch replaces the app
studio/ · specs for the first four templates · docs/ · copy, SEO, help, QA, risks
spikes/render/ · the proof: Letter and A4 from one file, fonts embedded, fit guard working
Mockups · homepage, template page, customizer, success, email, two alternates
Sheet 08 · What is there today, and the cutover

Nothing in the old build needs saving, so the replacement is clean.

A consolidation of the earlier PDF farm attempts into one relaunch. Checked 2026-09-16 from the repo, the Lovable workspace, the Supabase org and DNS; nothing else by any related name exists. The old site renders PDFs in the browser with react-pdf, so preview and file were two different pieces of code. Both of its databases hold zero rows. The domain is the only thing with value, and it stays.

PieceTodayWhat happens
Repo artisan-pdf-studioLovable export: Vite, React, shadcn, eight react-pdf templates, accounts, admin, $2 premiumKept as the repo, replaced as the code. Merge the rebuild branch after disconnecting Lovable.
Lovable projectPublished; hosts the domain (both records point at Lovable's IP)You delete it at cutover, after DNS moves, with any Lovable attachment to PDF Farm
Its SupabaseLovable-managed, invisible to the Synergy org; profiles, templates, purchases, rolesGoes away with the Lovable project
"PDF Farm" Supabase2025 attempt in the Synergy org; eight empty tables, twelve stale functions, already paid forKept. Reset in place by two migrations, renamed, new secret key. Becomes the site's database.
Stripe, domain, CloudflareAccount, zone, recordsKept. Two DNS records change; old products archived.
Eight designs, four preview JPEGsreact-pdf components; never printedNot carried over. Every subject is in the catalog; the contract is excluded on purpose.

Cutover, when Phase 1 is done

  1. Add both domains to the Vercel project. They show as pending.
  2. Change the two Cloudflare records to the values Vercel shows, grey cloud.
  3. Confirm www serves the new site and the apex redirects to it.
  4. Delete the Lovable project (yours to do), disable PDF Farm's legacy keys, archive the old Stripe products.
  5. The old paths already redirect from vercel.json, so nothing indexed lands on an error.

Until then the old site stays live on the domain. A shell with nothing to download would be a step down from the four free templates that are there now.