Build and Sell Websites to Local Businesses With Claude Code
Find a local business opportunity, build a tailored website demo with Claude Code, present the offer, and launch the approved site professionally.
Roadmap & resources
Find a Good Website Opportunity
Find a Business
Pick one local service business you could genuinely help. Either path works, and the rest of the guide is the same.
Option A — Use Local Business Finder
Search by business type and area, then look at the businesses with no website or a weak one.
Open Local Business Finder
Profit Studio's free tool for finding local businesses and their website status.
Free tool
/business-finder
Option B — Use a Business You Found Yourself
A business you already know, a referral, someone in your network, or a local business you came across on your own.
Signs of a real opportunity
Look for an improvement the owner would understand:
No website at all
A site that is hard to use on a phone
Services that are unclear or missing
No clear way to call, request a quote, book or get in touch
A broken contact form or outdated phone, hours or address
A layout where nothing important stands out
Not a reason on its own
An old-looking site can still work well. Skip a business when the only reasons are that the design isn't to your taste, it runs on WordPress, Wix or Squarespace, AI could make something prettier, or you want a portfolio piece.
Audit the Opportunity
Before building anything, let Claude Code check whether this business is worth a demo.
Create an empty folder for this client, open it in Claude Code, fill in the two lines at the top of the prompt, and send it.
Audit the Client Website Opportunity
Let Claude identify the few website improvements that would matter most to the business and its customers.
Audit this local business as a potential website client. This is research only: do not build, create or change any files. Business: [business name, city, and any public listing link] Current website: [URL, or "none"] Use only the information I give you and what you can verify from public sources, such as the business's own website and its listings. If you cannot open a page, say so instead of guessing. Never invent reviews, ratings, awards, years in business, certifications, prices, service areas, customer counts, guarantees or testimonials. Mark anything you cannot verify as unknown. 1. The business - what it sells - its likely customer - the main action a customer should take: call, request a quote, book, visit or contact - the important services visible from public information 2. The current website (skip if there is none) - what already works. Be fair; do not criticize for the sake of it. - only the meaningful problems, such as an unclear offer, weak hierarchy, a poor phone experience, an unclear call to action, a confusing contact flow, missing service information, outdated or inconsistent details, or obvious trust gaps 3. The opportunity Pick only the 3-5 improvements most likely to make the website more useful to this business and its customers. This is not an SEO audit. Reply in exactly this format: CLIENT WEBSITE OPPORTUNITY Business: Current website: What already works: Main problems: Top improvements: Recommended primary CTA: Pages actually needed: Information still missing: Private demo scope: End with exactly one of these lines: GOOD DEMO OPPORTUNITY WEAK OPPORTUNITY If it is a WEAK OPPORTUNITY, add two sentences on why a speculative demo may not be worth the effort, for example because the current site already works well or the improvement would not matter to the business.
Continue only with a GOOD DEMO OPPORTUNITY. If Claude returns WEAK OPPORTUNITY, go back and pick another business.
Plan the Client Website
Prepare the Client Brief
Collect only what the demo needs. Anything you can't confirm stays blank, and Claude uses a placeholder instead of inventing it.
Ask Claude Code to save its audit in this file, then add the brief below it. Every later prompt reads it.
client-brief.md
Business name and type
Services, in the business's own words
Location or service area
Phone number and preferred contact method
The main customer action: call, quote, book, directions or contact
Opening hours, if they matter
Logo and brand colors, if the business already has them
Facts that set them apart, only from the business or a verified source
Their domain, if they have one
IMPORTANT
Don't copy text from the business's current website or reuse its photos just because they are public. Write original copy from the facts, and use approved assets, licensed or generated images, or clear placeholders. The demo must never present itself publicly as the business's official site.
Customize the Demo Prompt
Fill in the three fields, copy the prompt, and send it to Claude Code in the client folder.
Build the Private Client Demo
Build a polished private website concept around the business's real needs instead of generating a generic local-business template.
I want to build a PRIVATE website concept for a potential local-business client. Business type: {{BUSINESS_TYPE}} Business name: {{BUSINESS_NAME}} Main website opportunity: {{WEBSITE_OPPORTUNITY}} Read client-brief.md first. It holds the approved Client Website Opportunity audit and the Client Brief. If it is missing, ask me for both before building. PROJECT - Inspect the current folder first. - If it is empty, create the smallest suitable website project: a React + Vite website that builds to static files. - If a project already exists, keep its stack and its working structure. FACTS - Use only facts from client-brief.md and the details above. - Never invent reviews, testimonials, ratings, awards, certifications, years in business, prices, service areas, customer counts, guarantees or statistics. - Where a fact is missing, use a clearly marked placeholder such as [Confirm: opening hours] and list it at the end. - Write original, concise copy. Do not copy text or photos from the business's current website. Use the business's logo or photos only if client-brief.md lists them as approved assets; otherwise use properly licensed images or neutral placeholders. SCOPE Build only enough to demonstrate the value clearly: - homepage - services - an about or trust section, only where real information supports it - a contact or quote call to action - responsive navigation and footer Add another page only if the business genuinely needs it. If you add pages, make sure each one also loads when its URL is opened directly or refreshed. Do not add a blog, login, database, admin dashboard, payments, booking system, AI chatbot or customer portal unless the approved scope in client-brief.md includes it. DESIGN The site should feel professional, specific to this business, premium but believable, clear, fast and excellent on phones. Avoid generic AI-site styling: no neon, cyberpunk, heavy gradients, heavy glassmorphism or large decorative animations. Prioritize clear hierarchy, trustworthy typography, readable services and a visible call to action. CALL TO ACTION Use the business's real primary action from the brief: Call, Request a Quote, Book, Get Directions or Contact Us. Every button and link must do something real: a tel: or mailto: link, a working section link, or a form. Never a button that does nothing. If a form has nowhere to send submissions yet, tell me instead of showing a fake success message. PRIVATE CONCEPT This is a concept for the owner to review, not their official website. - Add a small, discreet "Website concept" note in the footer. - Add a robots meta tag set to noindex, nofollow to every page so search engines skip it. - Do not connect any domain, do not present it as a replacement for the current site, and do not state or imply that the business approved it. When you finish, run the production build and fix any errors. Then reply with: - pages built - primary call to action - key improvements implemented - assets used - placeholders and missing information - what must be confirmed before launch
What type of business is this?
Roofing company, car detailer, cleaning service...
Business name
Summit Roofing
What should the new website improve?
Clearer services, stronger quote CTA, better mobile design...
Build a Private Demo
Review the Demo Like a Client
Look at it before the business ever does.
Open the local preview Claude Code gives you. Click every link and button on desktop and in your browser's phone view, and check the contact details against the brief. Then send this prompt.
Review This Client Demo
Review the concept as the business owner would, and fix only what would embarrass you in front of a real client.
Review this website as if you were the owner of the business, not as a developer. Check only: - Is the business offer immediately clear? - Is the primary customer action obvious? - Does the site feel specific to this business rather than generic? - Is the mobile experience professional? - Are there claims or details we cannot verify from client-brief.md? - Are there unnecessary sections? - Are there visible blockers that would make this embarrassing to show a real client, such as broken links, leftover placeholder copy or a generic AI-site feel? Fix only obvious presentation blockers. Do not add new features. End with exactly one line: CLIENT DEMO READY or NEEDS ATTENTION
Continue when Claude returns CLIENT DEMO READY.
Prepare the Private Demo Link
Put the concept on a temporary address the owner can open, separate from their current website and domain.
Push the Demo to a Private GitHub Repository
Claude Code puts the project in one private repository without touching the website itself.
Put this project in a private GitHub repository so I can deploy it. - First check Git status, remotes and .gitignore. - Make sure .env files, secret keys, node_modules, build output and other private or generated files are not committed. - If this project already has a GitHub remote, use it. Do not create a duplicate repository. - Otherwise create a new private repository: use the GitHub CLI if it is installed and signed in; if not, ask me to create an empty private repository on GitHub and paste its URL. - Use the main branch, make a clean commit and push. - Do not change the website's code or design. When you finish, tell me the repository name and what was pushed.
Get Hostinger Web App Hosting
Choose a plan that includes Node.js Web Apps. Already have one? Continue below.
USED IN TUTORIAL
Hostinger Websites Create website Web App
Choose a temporary domain, never the client's domain Choose Import your Git repository Continue with GitHub and authorize Hostinger if asked Select the demo repository Keep the build settings Hostinger detects and deploy Open the temporary URL on your phone and check it again
Hostinger may ask these as questions from its assistant instead of showing a form. The choices are the same.
That temporary URL is your private demo link. Every time Claude pushes a change to GitHub, Hostinger redeploys it automatically.
Present the Offer
Define the Offer
Decide these before you contact anyone, and add them to client-brief.md. Clear answers now prevent most problems later.
Scope: exactly which pages and features are included
Price: your project price and when it is paid
Revisions: how many rounds are included, for example two
Hosting and domain: whose accounts they live in and who pays the renewals
After launch: the project ends, the client pays for updates when needed, or a simple monthly update arrangement
Pricing
There is no standard price. Base yours on the scope, the time it takes, your local market and the support you include. AI doing part of the work is not a pricing argument either way: the client pays for a finished website that works.
Ownership
Keep the client in control. The domain should be registered in the client's own account. Agree where the hosting lives, whether they get the source code, and how they could move the site elsewhere later. Never use the domain or hosting to lock a client in.
Contact the Business Personally
One personal message about the real demo, by email, a contact form or in person. No bulk sending and no automation.
Outreach Example
Hi [Name], I came across [Business] and noticed a few areas where the website could make it easier for customers to [main goal]. I built a private concept to show what I mean: [Demo link] This is only a concept. Nothing on your current website has been changed. If you like the direction, I can finish and launch it for you. [Your name]
When they reply
Respond to each outcome like this:
Interested: confirm the scope, price, payment timing, ownership, revisions and what you need for launch before finishing the site
Wants changes: check whether each change fits the proposed scope before doing substantial extra work
Not interested: thank them and move on, without arguing
IMPORTANT
Treat it as client work only after you have both agreed in writing, even by email, on scope, price, payment timing, ownership, revisions and any maintenance. Don't keep doing unpaid revisions. This guide is not legal advice; if you want a contract, use one that fits your country.
Finish and Launch the Website
Apply Approved Client Changes
Collect the approved details and assets, add them to client-brief.md, then send this prompt.
Finish the Approved Client Website
Replace placeholders with approved details, remove the concept setup, add basic launch SEO, and run the final check.
The client approved the website concept. Turn it into the final website. Read client-brief.md for the approved details, assets, scope and final domain. 1. APPROVED CONTENT ONLY - Replace every placeholder with the confirmed information. If a detail is still missing, stop and list it; do not fill it in yourself. - Use only approved copy, services, contact details, location, images, logo, brand colors, calls to action and business details. - Never invent testimonials, reviews, statistics, awards, certifications, guarantees, years of experience or service areas. - Apply only the changes the client approved. Do not add new features. 2. REMOVE THE CONCEPT SETUP - Remove the "Website concept" note and anything else that labels this a demo. - Remove the noindex robots meta tag so search engines can index the site. 3. BASIC LAUNCH SEO - a unique page title and meta description for each page, naming the business, its main service and its area where known - one clear H1 per page and a sensible heading order - the business name, phone, address and hours exactly as in the brief - useful alt text on meaningful images - the client's favicon or logo, if provided - important pages reachable through normal links - canonical URLs on the final domain, if the project uses canonical tags Stop there. This is not a full SEO project. 4. FINAL CHECK BEFORE DEPLOYMENT Check and fix: - desktop and phone layouts - navigation and every link - every call to action, phone link and email link - forms: confirm where submissions are delivered, and never show a fake success message - business facts against the brief - no placeholders, concept labels, localhost or development URLs - no invented claims - reasonable image sizes and loading speed - no errors in the browser console - the production build passes Reply with what changed, anything you could not verify, and anything I must test by hand.
Send a test through the form and tap the phone link yourself. Claude can't place a call or receive an email.
Deploy on Hostinger
Publish the approved version, connect the client's domain, and test the live site.
Push the Approved Website
Check for private files, then push to the same repository. Hostinger rebuilds automatically.
Publish the approved website. - Check that no .env file, secret key, password or private client file is tracked by Git. If one is, stop and tell me before doing anything else. - Commit the approved changes and push them to this project's existing GitHub repository and branch. Do not create a new repository. - Confirm the push succeeded.
Hostinger rebuilds the Web App from the push. If you agreed that the client owns the hosting, create the Web App in their Hostinger account the same way as in Step 3 and import the same repository.
Connect the client's domain
Open the Web App in Hostinger and connect the domain:
Hostinger Your Web App Connect domain
Enter the client's domain and follow Hostinger's connection flow If the domain is registered somewhere else, sign in to that registrar with the client and add the DNS records Hostinger shows Wait for the connection to finish; Hostinger installs SSL automatically
IMPORTANT
Don't delete DNS records you didn't create. The client's email and verification records live there too, and removing them can stop their email.
DNS changes can take up to 24 hours to reach everyone. When the domain loads, test the live site:
The domain opens over HTTPS
Desktop and phone layouts look right
Every page works, including when its URL is opened directly
Call, quote, booking and contact actions reach the business
Business name, phone, address and hours are correct
Page titles and descriptions are the final ones
No concept label, placeholder, localhost link or unapproved claim remains
Hand Off the Client Project
Complete the Client Handoff
Give the owner one short, plain-language summary they can keep.
What the client should own
Before you send anything, make sure these belong to the client or are shared with them as agreed:
The domain, in their own registrar account
The hosting account, or clear access to it if you host the site
The GitHub repository or a copy of the source code, as agreed
Any email, form or analytics accounts set up for the business
How future changes will work
A Claude Code website is easy for you to update, but it doesn't give the client a dashboard to edit it themselves. Choose one arrangement and add it to client-brief.md:
Few changes expected: the client asks you, and you make occasional updates
Ongoing help: a simple paid update or maintenance arrangement with a clear monthly scope
Frequent self-editing: the site needs a proper content-management workflow, which is a separate project
Write the Client Handoff Summary
Draft a one-page handoff for a non-technical owner from the project and client-brief.md.
Write a short handoff message for the owner of this website. They are not technical, so use plain language and no developer jargon. Read client-brief.md for the business details and what we agreed. Include only: - Live website: the final URL - What you own: the domain, the hosting arrangement, and source code access as agreed. Write [fill in] wherever I must add account details. - Your website's information: which business details appear on the site, so they know to tell me when any of them change - How to request changes: the update arrangement from client-brief.md - Your accounts: the logins that belong to them, without any password - Renewals: what must be renewed, such as the domain and hosting, and who pays for it Keep it under one page. Do not include passwords, API keys or technical setup details the owner does not need.
IMPORTANT
Never send passwords by email or chat. Use a password manager's sharing feature, or let the client set their own passwords.
Create the Repeatable Workflow
Save what worked so the next client takes less time.
A blank client-brief.md template
The audit, demo, review, finishing and handoff prompts
Your offer: scope, revision limit and update options
Your outreach message, rewritten for each business
The live-test checklist
The loop
Find → Audit → Private Demo → Personal Offer → Approval → Finish → Hostinger → Handoff
Repeat it one business at a time. Each client gets its own audit and its own demo, never a cloned site with a new name.
AI shortens the build. It doesn't bring clients, trust or good communication, and results depend on the opportunities you find, your design, your pricing and how you work with people. What the client pays for is the outcome: someone who understood the business, built the right website, launched it correctly and supports it as agreed.