Transform your gaming screenshots into mighty-fine artwork for your space.
Overview
Upload a screenshot, choose a poster, canvas or framed print, and SoopaNova takes care of the rest. Prints are made by Prodigi and delivered to your door in the UK, EU or US.
SoopaNova started life in 2023 on the CanvasPop API, mostly as an excuse to try out the then-new App Router. This version is a rebuild from the ground up, with Prodigi for printing, Stripe Checkout for payments, live pricing for each country and order tracking. It's built, tested end to end and launching soon.
My role
It's my own project, so all of it: product, design, development and running it. That covers the checkout and order pipeline, the print catalogue and pricing, upload moderation, the order emails, and the terms and policies that come with selling physical products across borders.
Key decision: never print twice, never sell at a loss
Money moves through one system (Stripe) and prints are made by another (Prodigi), so the hard part is keeping the two in step when something fails halfway.
- Retries are safe. A paid checkout becomes an order through Stripe's webhook, which Stripe retries until it succeeds. Every step can run again safely: the print session is claimed once in a database transaction, the order picks up where it stopped, and Prodigi gets the order ID as an idempotency key, so a retry returns the existing print order rather than printing it twice.
- A margin guard. Print costs, shipping, VAT and card fees all vary by product and country, so every checkout is checked against the latest costs before payment. If a sale would fall below a minimum margin, checkout is refused and I get an alert, rather than selling at a loss. Before launch, I quoted every EU size and option to all 27 countries to make sure none trips it.
- Room to change your mind. Prodigi holds each order before production, so customers can cancel within 90 minutes for a full refund.
Print quality
Every screenshot is checked before it can be printed. Uploads are moderated with Google Cloud Vision (via Firebase Cloud Functions), and each print size is graded on pixel density, from Great to Too low, so you know it'll look sharp on your wall before you pay.
Outcome
SoopaNova is built to run without me in the loop. An order goes from upload to payment to the print lab, with tracking and emails along the way, and I only hear about it when something needs attention, like a refused checkout or an issue Prodigi raises. The whole flow, cancel and refund included, has been tested end to end in the Stripe and Prodigi sandboxes.
Build
Next.js (App Router, with Cache Components), Tailwind CSS and shadcn/ui (on Base UI), with Clerk for accounts, Firebase for uploads and moderation, Stripe for payments, Prodigi for printing and Resend for order emails. The print catalogue and prices live in Vercel Global Config, refreshed daily from Prodigi.
It's still my favourite playground for taking the latest Next.js features out for a spin, and it's still hella-fun!
