Stripe + Gelato + Supabase

Print-on-Demand Kit

Let users buy a real printed poster or canvas of what they make in your app, charged with Stripe, printed and shipped by Gelato. No manual fulfilment.

Get the kit — €19 Instant download

✓ Real production code  ·  ✓ Drop-in  ·  ✓ Setup guide included  ·  ✓ Single-project commercial use  ·  ✓ 30-day money-back guarantee

Print-on-Demand Kit cover

The mistake everyone makes once.

The first version creates the print order before the payment clears, and Gelato rejects it over a single field name. This kit has the steps in the right order and the field names right.

What you get

The full pipeline

Three Supabase Edge Functions: print-checkout, the Stripe webhook that creates the Gelato order only after payment, and a status-sync webhook.

Render at print resolution

A client helper rasterises your SVG or canvas at 4x and uploads it where Gelato can fetch a stable URL.

Ships from the webhook

The Gelato order is created server-side after Stripe confirms payment, never from the browser, so you never ship for a payment that did not clear.

The two gotchas, fixed

shipTo.countryIsoCode (not country) and the long exact-string product UIDs that cost the most time, handled for you.

Migration + bucket

The print_orders table with row-level security and the public print-queue storage bucket.

Full setup README

Accounts, secrets, webhook registration, and the client wiring, step by step.

From the writeup, packaged · just €19

Skip the rabbit hole. Ship it.

The exact, working implementation, generalised so you drop it into your own project and move on.

Get the kit — €19

Instant download · single-project commercial use  ·  ✓ 30-day money-back guarantee