Chapter 02
One template.
400 pages.
bord doesn't write sites. bord runs a factory. One Next.js template, programmatic page generation, AI writes the copy, agents deploy. Day one to live in under 24 hours.
The stack

The template
Every site is a Next.js 15 + React 19 + Tailwind v3 monorepo entry under sites/<domain>. The reference template is plombiersgeneve.ch — Swiss quality, real interactive map, 8–12 brand partner logos, phone-first CTA, trust badges, payment icons in footer. Black, white, neutral grays. No blue, no purple unless brand-specific.
Programmatic pages
One site is not one page. It is service × location × language. Geneva alone has 22 neighborhoods. 10 services × 22 zones × 2 languages (FR + RU) = 440 unique pages, each with its own H1, meta description, schema, internal linking and 1500 words of localized copy. AI writes them. Agents deploy them.
- 01Define the service list10 verticals: emergency plumbing, leak repair, drain unblocking, boiler service, hot water, etc.
- 02Define the city zones22 Geneva neighborhoods scraped from open street map.
- 03Spin the cross-productservice × city = the URL slug. Flat, no folders.
- 04AI generates one page per cellEach page is contextual: name of the neighborhood, distance from city center, typical price, response time.
- 05Agents write imagesRealistic-photo generator (Gemini) for service photos. Wikipedia images for landmarks. No stock library.
- 06Sitemap built and submittedGSC API submits the sitemap.xml within an hour of deploy.
Russian /ru/
Geneva has a real Russian-speaking population, mostly Eastern European migrants and Russian expats. Nobody localizes for them. Every CTP site duplicates content under /ru/ with full Russian copy, same structure. That is +30% organic traffic most competitors leave on the table.
The cheapest +30% traffic in any local market is the language nobody else bothers with. In Bali it's Indonesian. In Geneva it's Russian. In Milan it's Romanian.
Brand partner logos
Every site has 8–12 brand partner logos in a strip near the top. Real logos, not text cards. Wikipedia for major brands, official brand sites for niche, seeklogo.com / freebiesupply.com / cdnlogo.com as fallback. Saved as PNG/SVG in public/images/brands/. Used with next/image + object-contain.
This element does more than it looks like. It is the cheapest trust signal that exists. Customers don't verify the partnership; they just see the logos and infer legitimacy.
Deploy
One git push to main. Vercel auto-deploys. Cloudflare DNS already pointing. SSL by default. Sitemap submitted. Analytics wired (GA4 + Microsoft Clarity + GSC). Mailgun routes set for info@<domain>. Done.
The factory is the door at scale. Adding the 117th site is the same command as the 116th. That's the unit economic.