All projects

Personal Project · 2024

Digital Products Bureau

What if a design service felt like a product? Subscription pricing, async delivery, zero admin. Design-as-a-service built from scratch.

Digital Products Bureau hero visual

My Role

Designer & Developer

Timeline

3 months to launch

Platform

Next.js · Vercel · Stripe

ToolsNext.jsTypeScriptStripeLinear APIVercelTailwind CSS

The Idea

Traditional freelance design is a friction machine. Proposals, scope negotiations, hourly tracking, invoice chasing, status-update emails. The actual design work is surrounded by process overhead that serves nobody well.

I wanted to build the opposite. A design service that runs like a SaaS product: flat monthly subscription, async request queue, automatic billing, no meetings unless the client wants them. The client gets a designer. I get to focus on the work. The administration disappears.

>_key insight

The best service is one where the client doesn't have to think about the process. Just the output.

DPB product principle

// design_process

  1. 01

    Subscribe

    Client picks a plan and pays via Stripe Checkout. No contract. No proposal. Active the same day

  2. 02

    Onboard

    Stripe webhook triggers: Linear project created, welcome email sent, client portal access provisioned. Zero manual steps.

  3. 03

    Request

    Client submits design requests directly in Linear, as specific or as open-ended as they need. Attachments, references, context all welcome

  4. 04

    Design

    Work delivered to a shared Figma workspace. Async daily updates. Typical turnaround: 1–3 days per request

  5. 05

    Iterate

    Client reviews in Figma, leaves comments. Revisions included. No round limits, no change requests, no renegotiation.

  6. 06

    Ship

    For web deliverables: optional build and deploy to Vercel. Client gets a live URL, not just a file

Digital Products Bureau — the difference vs traditional freelance
Traditional freelance vs DPB: same design output, zero overhead

The Automation Stack

The entire client lifecycle is automated. When a Stripe subscription activates, a serverless function on Vercel fires: the Linear project is created, the client portal is provisioned, and the welcome sequence begins. No human involvement required.

A Vercel cron job polls Linear's API every 15 minutes and syncs request status to the client dashboard so clients have live visibility into progress without needing a Linear account. Billing, dunning, and cancellation all flow through Stripe webhooks to the same serverless layer.

The marketing site and client portal are a single Next.js app on Vercel. Every pull request gets a preview deployment. The entire infrastructure costs less than a lunch per month.

0

hours of admin work per client per month

0 days

average request-to-delivery turnaround

0

active clients at launch, zero paid marketing

0%

retention rate in the first 6 months

What This Project Taught Me

Building this solo across design, frontend, backend, infrastructure, copy, and pricing confirmed something I suspected: the line between design and engineering is a professional convention, not a cognitive one. The subscription model, the async workflow, the onboarding sequence: these are design decisions as much as the UI is.

The project also proved that automation is the highest form of UX. The best interaction is the one that doesn't need to happen. Every admin task I eliminated was a decision the client never had to make.