←︎ Back to work Brand · Full-Stack Web App

Cloud Clean Laundry

A laundry pickup service that books itself, invoices, and gets paid, all from one app I built.

Year 2026 · Role Brand Designer + Developer · Tools Astro, TypeScript, Drizzle ORM, PostgreSQL, Square API, Resend, Railway · View live ↗︎
Cloud Clean Laundry preview
Cloud Clean Laundry preview
Cloud Clean Laundry preview

The project

Cloud Clean Laundry is a wash-and-fold pickup and delivery service in Charlotte, NC. "We pick up. We wash. You relax." The owner needed more than a website. They needed the whole business to run from one place, so I built it. Customers browse services and request a pickup as a guest, with no account and no friction, and the owner runs everything from a built-in portal that absorbs those requests as leads, confirms bookings, sends invoices, and collects payment. Brand, marketing site, booking flow, and owner portal, all designed and built by me on Astro with a Postgres database, deployed on Railway. No per-seat SaaS, no monthly tool stack, one app the owner actually owns.

The challenge

A wash-and-fold owner did not need a website. They needed the whole business to run from one place: take a pickup, confirm it, invoice it, get paid. No stack of monthly tools, no per-seat SaaS bill, and simple enough for one non-technical operator to run solo.

Cloud Clean Laundry preview
Cloud Clean Laundry preview
Cloud Clean Laundry preview

The approach

One app the owner actually owns. Guests book a pickup with no account, so nothing gets in the way of a new customer. Every request lands in the owner portal as a lead, and the owner runs the whole confirm-to-paid loop from there. Square handles invoices and payment, a webhook marks them paid and updates the booking in real time, and the marketing site, booking flow, and portal are all one codebase.

What I built

  • Full brand identity and marketing site, built around the "We pick up. We wash. You relax." voice
  • Guest pickup booking with no account required, lowering the friction to convert
  • Owner portal that absorbs every booking request as a lead and runs the full confirm-to-paid loop
  • Square Invoices API integration that creates the customer, order, and invoice, then emails a hosted pay page
  • Square webhook that marks invoices paid and updates booking status in real time
  • Deals and promos the owner posts from the portal, surfaced on the marketing site
  • Resend for transactional email: booking confirmations and invoice notifications
  • Astro SSR on Railway with managed PostgreSQL, built for a single operator to run solo

Results

Guest booking, no account required
Confirm-to-paid loop in one owner portal
No per-seat SaaS. One app the owner owns
Next case study
Client Portal

Client Portal

Product Design · Full-Stack Web