Overview
-
- The owner sees
- Nothing
- You do
- Name, email, filings, bank, Stripe, agreement
- Draft or tool
- §0
- Done when
- Each row done before it's needed
-
1 Finding
- The owner sees
- Nothing
- You do
- Sweep by trade and town; score
- Draft or tool
leads-template.csv- Done when
- A scored row
-
- The owner sees
- Nothing
- You do
- Health check, or a demo
- Draft or tool
/health-check; §2- Done when
- Check verified, or demo up
-
- The owner sees
- You at the counter, an email or a call
- You do
- Walk in, write or call; follow up
- Draft or tool
- §3 drafts
- Done when
- A reply, or the last note sent
-
- The owner sees
- 30 minutes with you
- You do
- Ask, show, name the price
- Draft or tool
sales-playbook.md§5- Done when
- Walk-through booked, or a no
-
- The owner sees
- A link, a short video, a numbered list
- You do
- Send the demo; run the change loop
- Draft or tool
/change-list- Done when
- A yes to a list
-
- The owner sees
- The proposal, the agreement, a payment link
- You do
- Walk through it; send the agreement and deposit link
- Draft or tool
/proposal; DocuSeal; Stripe- Done when
- Signed, deposit cleared
-
- The owner sees
- A setup call, then their site live
- You do
- Accounts, build, DNS, launch checks
- Draft or tool
delivery-runbook.md;/qa --launch- Done when
- Live, balance paid, mail tested
-
8 Handover
- The owner sees
- The handover packet
- You do
- Hand over, lower your access, ask for a review
- Draft or tool
delivery-runbook.md§9- Done when
- Packet delivered, review asked
-
- The owner sees
- Fixes for 30 days, then a quote for any change
- You do
- Fix, quote, change
- Draft or tool
/change-list- Done when
- Each request done and paid
-
10 Legal
- The owner sees
- Nothing
- You do
- Keep the checklist true
- Draft or tool
- §10
- Done when
- Each line done before its stage
Lead sheet stages (sales-playbook.md §1): Listed after 1, Contacted and Check delivered in 3, Discovery at 4, Proposal through 6, Won at the deposit, Live at launch.
0. Before the first outreach
In this order: rows 1–7 before the first cold email, 8–12 before the first deposit.
| # | Step | Cost | Why, and the detail |
|---|---|---|---|
| 1 | Choose the studio name | $0 | The old name is out: its .com belongs to someone else. Screen each finalist with node tools/name-check.mjs <name> and the checks in name-check.md, including the live USPTO, Secretary of State and county FBN searches, and say it aloud to five people who haven't seen it written. The domain, studio email, FBN, bank account, Stripe, cards and signage all wait on this row. |
| 2 | Domain | About $10.46 a year for a .com at Cloudflare | Register it once row 1 is settled; add a backup domain as a redirect if the name is easy to mishear (name-check.md). |
| 3 | Studio email | $7 a month (Google Workspace Business Starter, yearly) | A hello@ address on the new domain, From name "Jasper Meller," with SPF, DKIM and DMARC. Skip Gmail's free "Send mail as": Google plans to end it for third-party accounts in January 2027, possibly including this use (research/07-client-ops.md). |
| 4 | Mailing address | PO box or private mailbox; price not checked | Every sales email needs a postal address (research/08-client-legal.md §2). |
| 5 | Phone | $0 | iPhone (iOS 18) and Pixel 9 or newer announce a recording and save a transcript; older Android phones record audio only, so transcribe with Buzz on Windows. Spell the studio name in your voicemail greeting. |
| 6 | Demo host | $0 | Your own Cloudflare account, demos on subdomains of the studio domain (commercial use allowed), or Vercel Pro at $20 a month. Never Hobby, which is non-commercial (research/07-client-ops.md). |
| 7 | Lead sheet | $0 | leads-template.csv in a Google Sheet; 150 scored businesses in week 1 (PLAN.md). |
| 8 | EIN and county FBN | EIN free; FBN $47, plus $2 for an emailed copy; $49 to publish in the Independent (confirm that covers four weeks) | Required for a name that doesn't include your surname. File within 40 days of first doing business, then publish (business-setup.md items 2–4). |
| 9 | City business tax certificate and Home Occupation Affidavit | About $29–$104 with the $4 state fee; affidavit free | Required for a home-based business in the city; confirm the category with Neumo (research/08-client-legal.md §6). |
| 10 | Bank account | $0 a month at Novo, Found or Relay | Bring the certified FBN, photo ID and the EIN (research/07-client-ops.md). |
| 11 | Stripe and DocuSeal | ACH 0.8%, capped at $5; card 2.9% plus $0.30; DocuSeal free for 10 signatures a month | ACH by default. The first payout lands 7 to 14 days after the first charge. |
| 12 | Agreement | One attorney review | From contracts.md: copyright assigned on final payment, and no "work made for hire" wording, which can make a client your employer under California law. |
1. Finding clients
Where to look. Google Maps first, one trade in one town per session ("landscaping Goleta"), noted by hand; scraping breaks Google's terms (sales-playbook.md §2). Then the same businesses on Yelp, the South Coast Chamber directory, the city's monthly new-business list and new FBN notices (research/05-santa-barbara-market-and-admin.md §2). Walk State Street, Milpas, Haley and the Funk Zone, Calle Real and Hollister in Goleta, and Linden Avenue in Carpinteria. Referral partners get two coffees a week from the start (sales-playbook.md §3).
Qualifying in five minutes. Score the ten checks in sales-playbook.md §2: four or more points makes a health-check lead, no website a one-page-site lead.
The lead sheet. One row per business before first contact. Mark "Do not contact" the moment someone asks, and check it before every visit, call or email.
2. Preparing a lead
Run /health-check on every lead that scores, and verify each finding before anything goes out.
| The lead | Lead with |
|---|---|
| No website, a full Google listing, and a chance to show it in person | A demo: 90 minutes at most, from the nearest template |
| Anyone else | The health check (30–40 minutes) |
Alternate demo weeks and no-demo weeks; after week 8, keep demos only if they booked twice the conversations (PLAN.md decision 4).
Setting up a demo
- Public facts only: name, hours, address, phone, services. Photo slots stay placeholders, since a photo belongs to whoever took it, even on Google (
research/08-client-legal.md§8). No logo unless you ask. - Footer: "Concept by [studio name], not affiliated with [Business]." Add
noindexin the page and in the response headers. - Deploy it as its own project at
[business].[studio domain], an address that survives redeploys and a change of host. Never send a per-deploy URL. - No login in front of it: Vercel Authentication sends outside visitors to a Vercel sign-in page, so a protected Vercel demo needs a Shareable Link (
research/07-client-ops.md). - Note the address and date in the lead sheet's "Demo shown" column.
Taking it down. After 30 days without interest, the day they pass, or when they ask: delete the project and the subdomain's DNS record, and note the date. If they sign, it stays up until their site launches.
3. First contact
| Order | Channel | Best for | How |
|---|---|---|---|
| 1 | Walk in, with the check or demo on your phone | A counter or front desk: auto repair, lumber, taquerias, salons, dentists, vets | Under two minutes, owner asked for by role; times in sales-playbook.md §3 |
| 2 | Trades with no counter, like landscapers, and every follow-up | Hand-written, one thing you checked, under 80 words | |
| 3 | Phone | No counter and no email address | Hand-dialed to the Google profile number, 8 am to 9 pm; for a cell number, check the Do Not Call registry first (sales-playbook.md §4) |
No cold texts. Under the TCPA a marketing text to a cell number needs consent first, and each one can cost $500, or $1,500 if willful (research/08-client-legal.md §3). Text only people who asked you to.
Walk-in. Scripts: sales-playbook.md §10. For a demo-first lead, the offer line becomes: "I made a sample homepage for [Business]. Can I show you on my phone?"
Phone call and voicemail. If they say no, mark the row and don't call again.
Hi, is this [first name]? This is Jasper Meller. I build websites here in Santa Barbara. Did I catch you at a bad time? [If not] I looked up [Business] on Google this morning, and [the one thing you checked: there's no website on your listing]. I wrote up a free one-page check of what customers see when they look you up. Can I email it to you, or drop it off on [day]?
Hi [first name], this is Jasper Meller. I build websites in Santa Barbara. I looked up [Business] on Google, and [the one thing you checked]. I wrote up a free one-page check of what customers see, and I can email it to you. I'm at [phone]. Again, that's Jasper, at [phone].
Audit-first email. sales-playbook.md §10, with its follow-ups.
Demo-first email. The footer goes on this email and on every follow-up.
Subject: A sample homepage for [Business] Hi [first name], I build websites for local businesses in Santa Barbara. I made a sample homepage for [Business] from your Google listing: your hours, your phone number and [one more public fact]. The photos are stand-ins. Only you have this link, and Google won't show it: [link] If it's worth ten minutes, I can walk you through it by phone or in person on [day] or [day]. Jasper Meller [studio name], Santa Barbara [phone] · [studio email] This is a sales email from [studio name], [postal address]. If you'd rather not hear from me, reply "no thanks" and I'll take the sample down and won't write again.
Follow-ups, in the same thread. On day 7, stop by or call instead: "Did you get a chance to look at the sample?"
Hi [first name], I wasn't sure about one thing on the [Business] sample: [do you still do irrigation repair, or only new installs]? If I got it wrong, tell me and I'll fix it. [link] Jasper [footer]
Hi [first name], If you wanted the sample live on your own domain, it would be $400, with no monthly fee, and the domain, hosting and Google listing all in your name. The sample is still here: [link] Jasper [footer]
The last note, day 21
Hi [first name], I'll stop writing about the sample so I'm not filling up your inbox. Should I keep it up for you, or take it down? Jasper [footer]
4. The first conversation
Shape. 30 minutes, at the business if they'll have you, otherwise by phone. The agenda and the 23 questions are in sales-playbook.md §5; question 8, whose name the domain is in, decides most of §7.
Recording. Ask before you start: "Mind if I record this so I get your words right when I write the site?" Record only after a spoken yes, noted in the lead sheet; otherwise take notes. California requires every party's consent (Penal Code §632; research/08-client-legal.md §1).
What to show. Their demo or health check first, on your phone. Then two templates, the one nearest their trade and one other, introduced as samples for made-up businesses; keep all ten on the demo host at one noindex address. The MedCenter comes out only with that practice's permission, with the family connection said up front (PLAN.md).
Price. Say it before they ask: "A one-page site is $400. Up to five pages is $700. You pay once, and there's no monthly fee. Which is closer to what you had in mind?" Use their numbers in the proposal, such as what a job is worth, and never supply your own.
Next step. Book the proposal walk-through before you leave, within 3 business days.
Turning a lead down. Pass on anyone who wants guaranteed rankings (contracts.md #14), health details taken through a web form (delivery-runbook.md §4), or the same scope for less money, or who's tied to a marketing contract for months yet. Tell them within a day:
Subject: Your website Hi [first name], Thanks for your time on [day]. I don't think I'm the right fit for [Business]: [the reason in one sentence, e.g. you need an online store with 400 products, and I build small sites]. [One useful pointer, e.g. call me again in [month], when the [vendor] contract ends.] The fixes on the website check still apply if you want to make them yourself. Jasper
5. Sending the demo and collecting changes
Before the deposit, make one pass on the demo with what they told you, inside the original 90 minutes. The included rounds start after the deposit.
The email, with a one-minute screen recording from your phone or Loom (free for 25 videos).
Subject: [Business] sample, with what we talked about Hi [first name], Here's the sample again with the changes from [day]: [link]. This one-minute video walks through it on a phone: [video link]. Reply, text or call [phone] with anything you'd change. I'll send it back to you as a numbered list, and I won't touch the site until you've said yes to it. Jasper
The change loop
- However the reply comes in, run
/change-liston it with the client folder. A recorded call needs the spoken yes from §4. - It writes a numbered list by section of the page, in the owner's words, flags questions and anything that would invent a fact, and drafts the confirmation email. You send it.
- When the owner says yes, to all of it or to some numbers, run
/change-listagain with their reply. It makes only the confirmed changes, checks the page and drafts a short note. You deploy, then send the note. - An owner who'd rather point at the page can mark it up in Pastel: free for one review at a time, and the owner needs no account, which Vercel Comments requires (
research/07-client-ops.md).
A round is one list from one person (offer-and-pricing.md). Past the included rounds, a change order says what, the price and the effect on the launch date, and gets signed before you start.
6. Saying yes
Prices (offer-and-pricing.md). Paid once, with no monthly plans for now.
| Offer | Price | Includes |
|---|---|---|
| One-page site | $400 | Two rounds of changes; live within 10 business days of getting everything |
| Up to five pages | $700 | Two rounds of changes; for a business with a site, its accounts moved into the owner's name and old pages redirected |
| Changes after launch | $60 an hour | Quoted flat before you start; free for the first 30 days if something doesn't work as agreed |
Both undercut Santa Barbara Web Design's $599 for one page and $999 for five (research/05-santa-barbara-market-and-admin.md §1.1). Hosting is free in the owner's own Cloudflare account and the domain renews on their card, so nothing needs a subscription. Revisit the prices and monthly plans at the 90-day review (PLAN.md).
The proposal and agreement. Draft with /proposal, walk through it live, and send the agreement through DocuSeal that day (terms: contracts.md).
The deposit. Half the price, through a Stripe Payment Link that takes ACH and card. A Payment Link adds no fee; a hosted Stripe invoice adds 0.4%, capped at $2. On a $200 deposit, ACH costs you $1.60 and a card $6.10. Don't ask a new client for Zelle: a completed payment can't be disputed, which is what a careful owner worries about with someone new (research/07-client-ops.md).
Subject: [Business]: deposit to hold [start date] Hi [first name], Thanks for signing. The deposit is $[amount], half the price, and it holds [start date] for you: [payment link]. A bank account or a card both work. Once it comes through, I'll send times for the setup call, where we open the accounts in your name. Jasper
If the deposit doesn't come. Nothing starts until it clears. On day 3, one line: "Checking the payment link reached you. I'm still holding [start date]." On day 14 the proposal expires: release the date and ask, "Should I close this out, or update it?" (sales-playbook.md §8).
What's due when (offer-and-pricing.md).
7. Build and launch
Intake. At the business, before any copy: client-intake.md, then /new-client.
The setup call. 30 minutes, the owner's screen shared and their phone in hand for two-factor (delivery-runbook.md §1). Never take a password.
- Cloudflare. The owner signs up with their own email (Cloudflare's terms bar you from doing it for them) and invites you as Administrator. They also make a free GitHub organization and invite you to a private repo.
- A new domain. The owner registers it in that Cloudflare account on their own card, auto-renew on: about $10.46 a year for a .com. You never hold a billing role.
- A domain they already have. The registration stays put; you only need DNS access in Cloudflare, and the owner changes the nameservers on a short call at cutover. A GoDaddy owner can add you through Delegate Access instead, at a level without purchase rights; test a nameserver change together (
research/07-client-ops.md). - Google Business Profile. The owner stays primary owner and adds you as Manager: More, Business Profile settings, People and access, Add. Managers can't remove users or the profile. If the owner has to take ownership back first, allow 7 days.
Hosting and email, by what the owner already has
| The owner has | Hosting | Email at cutover |
|---|---|---|
| No website or domain | Cloudflare Free in their account | Nothing to move. For an address at the domain: Google Workspace ($7 a user a month), or Cloudflare Email Routing (free; receives and forwards only) |
| A domain only | Nameservers move to their Cloudflare account | Copy every record first. Squarespace and former Google Domains forwarding stops when the nameservers move; replace it with Email Routing |
| A regular host (cPanel or FTP) | If they're keeping it, upload the built files there with a separate FTP login made for you; if not, Cloudflare | Kept: DNS and email don't change. Leaving: if the MX record points at the host, the mailbox lives there and ends with the plan, so move the mail first |
| Wix, Squarespace or GoDaddy's builder | Rebuild on Cloudflare. A Wix domain can't change nameservers: transfer it out first (60-day lock after a purchase or transfer) | Re-add MX and DKIM at Cloudflare: Wix says so after a transfer, and Squarespace email stops on custom nameservers. A mailbox billed through GoDaddy or Squarespace ends with that product |
| WordPress they edit themselves | Rebuild, with Pages CMS if they want to keep editing hours, menus or prices | As with a regular host: find where the MX record points first |
| A previous designer holding the domain | No launch date until the domain is in the owner's name. Find the registrant, have the owner ask for it in writing, and budget the time | Export every record from the designer's DNS before the move |
| An owner who wants no accounts | Open their Cloudflare account on the setup call anyway. Don't host the site on your own Vercel team: its terms bar serving a third party, and there's no monthly plan to pay for it | As in the row above that fits |
Moving DNS (delivery-runbook.md §3). Copy every record into Cloudflare, MX and other email records included, and compare line by line. Lower the TTL 24 to 48 hours ahead, turn off DNSSEC at the old host, and keep the old site up until the new one resolves. Then test mail in and out, leave the old zone for 14 days, and never cancel mail.
Launch checks, then the balance. On the preview: node tools/slop-lint.mjs [client folder]/index.html --launch at 0 errors, node tools/qa.mjs [client folder]/index.html --launch with no FAIL and the screenshots checked, and the owner's approval of every page and fact. Then send the balance as a Payment Link, and point the domain only after it's paid.
If the owner goes quiet. Anything 10 business days late moves the launch date; 30 days of silence pauses the project and invoices the work done (offer-and-pricing.md; contracts.md #4).
Hi [first name], I'm waiting on [the truck photos / your yes to the change list] before I can keep going on [Business]'s site. Could you send it by [day]? If a call is easier, I'm at [phone]. Jasper
Subject: Pausing [Business]'s site Hi [first name], I haven't heard from you since [date], so I'm pausing the site, as our agreement says. [If the work so far comes to more than the deposit: the invoice for the difference is here: [link].] The site and every account stay in your name, and I'll pick it back up when you reply. Jasper
The launch email
Subject: [Business] is live at [domain] Hi [first name], The new site is live: [domain]. The domain, hosting, analytics and your Google listing are all in your name. I'm added to each so I can help, and the handover packet I'll bring on [day] shows how to remove me. Please open it on your phone and try [the call button / the booking link]. If anything looks wrong or doesn't work the way we agreed, reply or call [phone]. For the next 30 days I fix those free. Jasper
8. Handover and final payment
Payment and access. The balance came in before the domain moved (§7). Have the owner lower your Cloudflare role to Workers Platform Admin plus DNS (only they can), and stay a Business Profile manager only if they want you making changes there (delivery-runbook.md §1).
The handover packet, as a PDF and on paper (delivery-runbook.md §9):
- each account: who owns it, the login email, where the backup codes are kept
- a DNS zone export and a ZIP of the site's code at launch
- the copyright assignment, signed at final payment or already in the agreement (
contracts.md) - font, photo and other licenses, from
CREDITS.md - how to ask for changes, and what they cost after the first 30 days
- how to remove the studio from Cloudflare, GitHub, the Business Profile and Search Console
- two or three videos under five minutes: asking for a change, updating Google hours, where everything lives
Reviews and referrals. The review ask on day 7, the referral ask and case-study permission on day 30: "After launch" in sales-playbook.md §10.
9. After launch
The first 30 days. Anything that doesn't work as agreed gets fixed free, as the launch email says.
Changes after that. There are no care plans or monthly fees for now. Quote each change flat at $60 an hour before you start, and send a Payment Link when it's done (offer-and-pricing.md). Requests come by email, text, call or Pastel, and go through /change-list (§5).
Renewals. The domain renews on the owner's card with auto-renew on, and Cloudflare Free sends no bill. Ask clients with a .com domain to renew before November 1, 2026, when the wholesale price rises 7%.
Your access. Keep it only as long as the owner wants your help. When they'd rather you step away, they remove you from each account as the handover packet shows, and you confirm it by email.
10. Legal checklist
Not legal advice; 08 marks what needs a lawyer.
Before first outreach
| Item | Source |
|---|---|
| Every sales email: a postal address, an opt-out line, a subject that matches, sent from your own domain | research/08-client-legal.md §2 |
| One do-not-contact list across channels; opt-outs honored within 10 business days | sales-playbook.md §4; 08 §2 |
| Ask the attorney whether cold calls need California's $50 telephonic-seller registration; never take payment details by phone | 08 §3 |
| Whether Santa Barbara, Goleta or Carpinteria require a permit for walk-in selling (unverified) | sales-playbook.md §3 |
| §0 row 1: the USPTO, Secretary of State and county FBN name searches | name-check.md |
| Three quotes for general liability and tech E&O insurance | 08 §10 |
Before the first deposit
| Item | Source |
|---|---|
| §0 row 8: FBN filed, no later than 40 days after first doing business, and its notice booked; proof of publication filed within 45 days of the last run | business-setup.md items 3–4; 08 §5 |
| §0 row 9: city business tax certificate and Home Occupation Affidavit | business-setup.md items 5–6; 08 §6 |
Per client
| Item | Source |
|---|---|
| A spoken yes before any call is recorded, noted in the lead sheet | Penal Code §632; 08 §1 |
Demo sent only to that business, noindex, placeholder photos, taken down on request | 08 §8 |
| Agreement signed: copyright assigned on final payment, no "work made for hire" wording, WCAG 2.2 AA named, no overlay sold or implied | contracts.md; 08 §9 |
| Cloudflare account opened by the owner, never for them | delivery-runbook.md, "Act on these now" |
| No health details through a website form for dental, vet or urgent-care clients | delivery-runbook.md §4 |
| A privacy policy page on any site with a contact form; its content is the owner's call | 08 §4 |
| Written permission from anyone recognizable in a photo | delivery-runbook.md §7 |
| Invoices for design work only; selling anything physical, like printed cards, needs a seller's permit first | 08 §7 |
| Every client asked for a review, with nothing offered in return | sales-playbook.md §4 |
Ongoing
| Item | Source |
|---|---|
| Calls hand-dialed, 8 am to 9 pm, with no dialers, prerecorded messages or cold texts | sales-playbook.md §4; 08 §3 |
| City certificate renewed by December 31 (late from February 1); FBN renewed every 5 years | 08 §5–6 |
| No CCPA compliance work sold to a client under its thresholds | 08 §4 |
| Never tell a client a cure period protects them from an accessibility suit: none is law | 08 §9 |