Designed & built Case study Live

TerraGreetings

A subscription platform for printable outdoor-themed greeting cards — built end to end with auth, payments, an admin CMS, and a browser-side duplex PDF print engine.

Project
TerraGreetings
Role
Founder, Designer & Developer
Timeline
2025–Present
terragreetings.com
TerraGreetings homepage headlined 'Outdoor Cards Made Simple', showing a row of seasonal card designs

Original outdoor cards, printed at home

Greeting cards hold their value in the message and the moment, while the way you get one has stayed the same for decades: drive to a store, pick through a rack, pay five dollars, mail it.

TerraGreetings offers a different route for people who love the outdoors — original nature artwork, personalized online, printed at home the moment it’s needed. Two problems stood between the idea and the product: building a catalog of hundreds of original cards on a solo budget, and making a home-printed card feel like a real card.

A catalog built from a controlled vocabulary

The artwork is generative, and the structure around it is what makes it work. I built a prompt system with composable dimensions — characters, national parks, moods, occasions — so each card concept assembles from a shared vocabulary.

That does two things. Visual consistency holds across hundreds of cards because every concept draws on the same descriptive language. And the catalog grows by combination: adding one national park or one occasion multiplies against everything already defined, instead of starting a new creative brief.

The prompt builder lives in the admin panel, alongside a standalone Prompt Lab for developing card concepts outside the production system.

Making a printed sheet behave like a card

A card is a single sheet that folds into four panels, with artwork on the right faces and the message reading correctly once folded. That means duplex printing with the back face rotated, fold guides that help without printing over the design, and reliable margins on consumer printers nobody can control.

I generate the print file in the browser with jsPDF, laying out the fold geometry directly. The PDF is produced on the user’s machine from the same asset the preview shows, so what they saw is what prints — and there’s no server-side rendering pipeline to run or pay for. Card art is served in two variants from a CDN: a light one for browsing, full resolution for output. Browsing stays fast and printing stays sharp.

The platform underneath

  • Accounts and subscriptions — Clerk for identity, Stripe for checkout, with subscription state resolved against user profiles to gate premium cards
  • Data layer — Supabase Postgres covering cards, collections, categories, profiles, subscriptions, shared cards, FAQs and promotions, with role-based access control
  • Admin CMS — I run the whole catalog through an admin panel I built: cards, categories, collections, promotions, FAQs, users and the prompt builder
  • Sharing — cards can be sent as links as well as printed
  • Editorial — an MDX-based content section with 22 posts

Why it belongs here

I designed the concept, built the generative art pipeline, solved the print engineering, implemented authentication and payments, modeled the database, and built the admin tooling that runs it — then shipped it and kept iterating.

The transferable part isn’t the cards. It’s that the instincts behind a working enterprise knowledge base — controlled vocabularies, structured metadata, consistent presentation, and tooling that lets a non-engineer maintain the content — are exactly what made a few hundred greeting cards manageable for one person.

Inside the build

2
terragreetings.com
The Explore Cards catalog page with search, category filters and collection banners for Happy Trails, National Parks and Pursue Life Outdoors
The catalog is browsable by occasion, park and collection — the same controlled vocabularies that generate the artwork also organize it.
terragreetings.com
Greeting card artwork: a desert canyon at sunset with a tortoise and an owl, titled 'Desert Hearts in Bloom'
Card art is assembled from controlled vocabularies — park, character, mood, occasion — which is what holds the visual language together across the catalog.

Questions about this work?

Happy to go deeper on any of it — the decisions, the trade-offs, or what I'd do differently.