Treatdeck hero background image
Treatdeck project screenshot
Next.jsPrismaStripeNextAuth2025

Treatdeck

The Challenge

Creative agencies spend an embarrassing amount of time managing links. A pitch deck lives on Google Drive, the treatment is on Dropbox, the mood board is a WeTransfer that expires in a week, and the client has somehow saved the wrong version of all three. By the time you've tracked everything down and resent it, you've lost an hour you didn't have.

Treatdeck's founder had a clear vision: one clean, branded URL per project that agencies could share with clients — and update without resending anything. The client always has the right link. Simple.

From Prototype to Production

This project took an unusual path. The client built a working prototype using Base44, an AI-powered vibe coding platform, before approaching us. It wasn't production-ready — but it didn't need to be. It had working screens, defined user flows, and enough detail to make the brief almost write itself.

We took that prototype and rebuilt it properly: stable architecture, real authentication, secure data handling, and subscription billing. Using the vibe-coded prototype as our spec rather than starting from scratch cut the build significantly — more than two thirds off what a ground-up approach would have cost.

It's a good model. The client got to validate the idea quickly and cheaply before committing to a full build. We got a clear brief with no ambiguity about scope. Everyone wins.

Our Approach

The stack is Next.js with the App Router, deployed on Vercel — the obvious choice given Treatdeck's reliance on subdomain routing (each project gets its own your-project-name.treatdeck.link URL).

Prisma handles the database layer with PostgreSQL, managing users, decks, collaborators, and the link redirect logic. We built a clean schema that supports the free plan (5 active projects) through to team and custom pricing tiers.

Authentication runs on NextAuth.js, keeping login straightforward without unnecessary friction for agency users who just want to share a link and get on with their day.

Stripe powers the subscription management — plan upgrades, billing cycles, and the webhook handling that keeps account states in sync. We used Stripe's customer portal to offload most of the billing admin, so the client doesn't have to build or maintain any of that themselves.

The UI is built on shadcn/ui components with Tailwind, which gave us a polished, consistent interface quickly. The original Base44 prototype had already established the design language — we refined it rather than reinvented it.

The Results

Treatdeck launched to its first users as a properly stable, scalable platform — not a prototype with crossed fingers. The subdomain routing works cleanly, billing is solid, and the core promise holds up: share once, update anytime.

The founder got to launch faster and for significantly less than a traditional build would have cost, with a product they'd already validated. And the vibe-coded prototype that kicked it all off is now a regular talking point about how to use AI tools sensibly — as a discovery tool, not a finished product.