Product · the site builder

RAWDOG Sites

Sites writes the whole local website for a client: the home page, a page for each service, and a page for each city that client actually works in.

The screen

Fourteen pages for one plumber, written against the category and the city.

A template with the town name swapped in reads like a template with the town name swapped in, and Google has been able to tell for years. Sites writes each page against the business's GBP category and the specific city it targets, then shows you every page it wrote, the block you are editing, and what it injected into that block.

RAWDOG SitesPage builder · example client Approved design

Generated site · portland, or

Bayline Plumbing

Six service-area pages, four service pages, one home. Every page is written against the GBP category and the city it targets — not a template with the city swapped in.

bayline‑plumbing.com
last deploy 4 min ago · live

Pages live

14

+6 service areas

Words written

11,480

avg 820 / page

Lighthouse

98

perf 98 · a11y 100

Indexed

12/14

2 pending, 6 days

Pages

14
Home820w

Services

Drain cleaning910w
Water heater repair870w
Burst pipe repair760w
Sewer line replacement1,040w

Service areas

Portland840w
Beaverton790w
Tigard780w
Lake Oswego810w
Gresham770w
Milwaukie750w

Company

About620w
Reviews410w
Contact310w
Home / bayline-plumbing.com
DesktopTabletPhone
Bayline Plumbing ServicesAreasReviewsContact (503) 555‑0148

Burst pipe at 2am in Portland? We are already awake.

Licensed emergency plumbers covering Portland and five surrounding cities. No call centre, no dispatch queue — you get the plumber who is coming.

Call (503) 555-0148Book a callback
24/7Live answer, no machine
1,240Jobs completed since 2019
4.9Google rating, 318 reviews
CCB #231884Licensed & insured in OR

Drain cleaning

Camera inspection first, so you pay to fix the blockage you actually have.

Water heater repair

Tank and tankless. Same-day parts for the eight most common failures.

Burst pipe repair

Shut-off, dry-out and repipe handled by one crew in one visit.

Block · Hero

Edited

Layout

LeftCentreSplit

Headline

Burst pipe at 2am in Portland? We are already awake.

Variant 3 of 6 · 52 chars · contains city + emergency intent

Local signals injected

{city} Portland {service} emergency plumbing {phone} (503) 555-0148 {licence} CCB #231884 {radius} 5 cities

Proof row

SourceGBP live
Reviews318 · 4.9
Refreshed6 min ago

Schema emitted

LocalBusiness · Plumber
Service × 4 · AreaServed × 6
AggregateRating · FAQPage

Checks

ContrastPass
Tel: links7 found
Alt text2 missing
The approved design for the Sites page builder, drawn here at full size out of the same stylesheet the app uses. Bayline Plumbing is an example client inside a design render, not a customer — RAWDOG has none yet, and no code has been written for Sites.

What it wires up

The local plumbing is emitted, not left on a checklist.

The parts of a local site that decide whether it ranks are the parts nobody enjoys doing by hand. Sites emits them with the page, and prints what it emitted in the inspector above.

Schema

LocalBusiness for the business and its category. Service for each service page, AreaServed for each city, AggregateRating from the profile and FAQPage where there are questions.

The inspector lists what went out on the block you have open, so you can read it rather than trust it.

NAP

Name, address and phone come off the live Google Business Profile and go into the markup, the header and the footer as one value.

In the render above the hero is holding the phone number, the licence number and the review count as injected tokens, each labelled with where it came from.

Internal links

Service pages and city pages are linked to each other as they are written, so the site ships already wired instead of ending up as fourteen orphans.

Every link is a real page in the tree. There is no build step and nothing to publish twice.

The uncomfortable half

It prints the checks it failed next to the ones it passed.

Look at the bottom of the inspector in the screen above. Contrast passed. Seven tel: links were found. Two images went out with no alt text, and that line sits in the same list, in the same type, at the same size as the two that passed.

A builder that only ever shows you green is the thing you are trying to get away from. You cannot fix what the tool decided not to mention, and you will find out about it from the client.

Bring your own keys

Your keys, your machine, and nothing counting.

Sites runs on the API keys you already pay for. You paste them into the settings screen the first time you open the app, and they stay where you put them.

Stored locally

The keys are written to your own PC. They are never sent to our servers and they are never held in our database, because there is nothing for us to hold them in.

Validated for real

Each key is checked with an actual call, not a format test. When one fails, the app names the key that failed and what to do about it, instead of a red box that says invalid.

Nothing meters you

There is no usage counter, no credit balance and no scan limit anywhere in the product. That is why unlimited is a fact here rather than a fair-use clause.

What exists today · 31 August 2026

Sites is not built yet. Two planning documents, no code.

The screen further up this page is the approved design. It is not a running build, it is not a beta, and there is nothing to download. It is on the page because the design is finished and you deserve to see what you are being asked to wait for.

Sites

Two planning documents. No code yet. Being built.

Stacks

Two planning documents. No code yet. Being built.

Reports

The only one close to shipping. It renders and it delivers, and the PDF carries nothing identifying the vendor.

The store

Not open yet. Nothing on this site can take money today.

Printed at the same size as everything else on the page, because a fact that only appears in small print at the bottom is a fact somebody hoped you would miss.

The price

One price for the agency. Never one per client.

Every competitor bills you per location, so the client you won last week arrives as a new line on your own invoice. Sites installs on your PC. Seats are the only thing that grows the bill.

Sites Solo

1 seat

$59/mo

or $590/yr — ten months, two months free

  • One seat, one PC. The licence binds to that machine.
  • Unlimited clients and unlimited locations. Nothing in the app counts them.
  • Your own API keys. Stored on your machine, never on ours.
  • No usage counter, no credit balance, no scan limit.

Sites Agency

5 seats

$119/mo

or $1,190/yr — ten months, two months free

  • Five seats. Five machines on one account.
  • Everything in Solo. Same software, same limits, which is to say none.
  • Hand a client to Reports. Every app exports in a documented, versioned format the other apps import, so nobody retypes a client.
  • Double the client list and the bill does not move. Hire, and it does.

Sites is also in the Full Kit with Stacks and Reports: $149/mo or $1,490/yr for Solo, $299/mo or $2,990/yr for Agency. Annual is ten months either way. That is the only discount on this site.

The store is not open, so nothing here can take your money today. It opens when Reports ships.