Private dashboard — authorised access only.
Incorrect password. Try again.
| Business | Category | City | Phone | Status | Demo URL | Notes |
|---|
| Business | Category | City | Phone | Address | Quality | Maps |
|---|
Find a local business with no website → build a tailored demo in 24h → deploy it live → contact the owner with a link → sell it.
Use the clientsearch tool to find businesses in a city and category that have no website.
python3 /Users/martingest/WebDesign/clientsearch/main.py --category "barbershop" --city stockholm
Results are saved as CSV in clientsearch/results/{country}/{city}/{category}/
Create the demo folder from the CSV. The script picks the right template and fills in tokens automatically.
python3 /Users/martingest/WebDesign/demos/manage.py new --from-csv ../clientsearch/results/sweden/stockholm/barbershop/2026-04-10.csv --row 0
Then open the generated index.html and customise the copy, services, and colours for the specific business. Translate to Swedish for Stockholm leads.
python3 /Users/martingest/WebDesign/demos/manage.py deploy sweden/stockholm/barbershop/my-slug
Gets a live URL at https://{slug}.pages.dev — completely free on Cloudflare.
Reach out with the link. Keep it short and personal.
Subject: I built [Business Name] a website Hi, my name is Martin — I run a small web design studio in Stockholm. I noticed [Business Name] doesn't have a website, so I went ahead and built one for you. It's live right now at [URL]. Take a look — no obligation. Martin · Gest Studio · [email protected]
Ämne: Jag har byggt en hemsida till [Företagsnamn] Hej, jag heter Martin och driver en liten webbyrå i Stockholm. Jag såg att [Företagsnamn] inte har någon hemsida, så jag byggde en åt er. Den är live just nu på [URL]. Ta en titt när du har en stund. Martin · Gest Studio · [email protected]
"Hi, is this [Business Name]? My name is Martin, I run a web design studio. I noticed you don't have a website so I went ahead and built one for you — it's already live. Can I send you the link? No cost to look, no obligation." If hesitant → "I'll just text you the link, you can check it whenever."
"Hej, är det [Företagsnamn]? Jag heter Martin och driver en webbyrå i Stockholm. Jag såg att ni inte har någon hemsida så jag byggde en åt er — den är redan live. Kan jag skicka länken? Det kostar ingenting att titta." Om tveksam → "Jag skickar länken som ett SMS, ni kan kolla när ni har en stund."
python3 /Users/martingest/WebDesign/demos/manage.py status sweden/stockholm/barbershop/my-slug contacted
If interested, negotiate. If sold, mark it and record the price.
python3 /Users/martingest/WebDesign/demos/manage.py sold sweden/stockholm/barbershop/my-slug 499
The $350 price includes a domain. Buy it yourself through Cloudflare Registrar — it's at cost (~$10/year for .com). Then attach it to their Cloudflare Pages project:
~/.npm-global/bin/wrangler pages domain add <project-name> <domain.com>
Cloudflare handles SSL automatically. The domain shows up in their project within a few minutes.
Go to dash.cloudflare.com → Domain Registration → Register Domains. Search for the business name. Avoid hyphens if possible. Prefer .com for US clients, .se for Swedish (buy .se through Loopia instead — Cloudflare doesn't support it).
For Swedish clients with a .se domain bought on Loopia: in Loopia DNS, add a CNAME record pointing to {slug}.pages.dev. Then run the wrangler command above. SSL still auto-provisions.
If they want to take over the domain themselves, initiate a transfer out from Cloudflare Registrar (or Loopia). Takes ~10 minutes. For most clients this never comes up — they're happy to let you renew it annually as part of a maintenance arrangement.
After adding or updating demos, regenerate the data file and redeploy.
python3 /Users/martingest/WebDesign/portfolio/generate-admin-data.py && source ~/.zshrc && ~/.npm-global/bin/wrangler pages deploy /Users/martingest/WebDesign/portfolio --project-name gest-studio
Select a category and language — copy the script before you call.