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.
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