Early access · onboarding pilot teams

Affiliate sites: domain to live.

ForgeSet is a self-hosted control center for networks of affiliate sites. It buys the domain, sets up Cloudflare, writes the pages with AI and ships clean static files to your own server. Hundreds of sites in one table, no platform quotas.

sites.forgeset
harbor-guides.com · EN-GBlive
kompass-ratgeber.de · DElive
mapa-recenzji.pl · PLgenerating_pages
tarifs-clairs.fr · FRwaiting_ns
costa-reviews.es · ESready_for_launch
guide-nord.se · SVlive
6 sites · 3 liveexample data
01

Hundreds of sites, one table

Every site's status in one place, from waiting_ns to live.

02

Your servers, your keys

Self-hosted. No platform quotas on generations or deploys.

03

Domain to live, no manual setup

Domain, Cloudflare zone, DNS, pages and deploy run as one flow.

FIG. 01 — Live architecture

Watch a site go live

Click any node to see what runs there, what you control and what it costs. Or let the trace play.

architecture.forgeset
trace
Pick a mode or click a node
your serversexternal services on your keys
FIG. 02 — The flow · keep scrolling

Five steps,
zero manual chores

01 · Domain

Checked. Free. Bought.

Domain availability shows up right inside the new-site form: free, taken or unavailable. A duplicate site on the same domain can't be created.

02 · Cloudflare

Zone, NS, A-records — handled.

Waiting for NS delegation doesn't block anything: infrastructure and content run as two parallel branches.

03 · Pages

Gemini writes, Gutenberg assembles.

Set the page set and style once. Generation runs on your own Google API key: you pay Google directly, and ForgeSet adds no monthly quotas.

04 · Static export

Export, then rsync to your host.

The site is built into static HTML with a sitemap and shipped over SSH to a separate server. Editing copy is just a redeploy, with no re-provisioning.

05 · Live

Live. Redirects without WordPress.

301, 410 and GoLinks are served by a light entrypoint on the static host. Visitors only ever see static files.

New site
harbor-guides.comavailable
language
English
geo
United Kingdom
page set
review site · 6 pages
style
Modern Minimalist
Infrastructure
domain bought■
Cloudflare zone■
NS delegated□ waiting_ns
A-recordsqueued
Content · in parallel
Home■
Reviewwriting
FAQ…
generating_pagesGemini · your key
/ homedone
/reviewdone
/comparegenerating
/faqgenerating
/aboutqueued
# static export
harbor-guides.com/
├─ index.html
├─ review/index.html
├─ compare/index.html
├─ faq/index.html
└─ sitemap.xml
rsync → static host
6 pages · sitemap
channel: SSH
path: /srv/sites/harbor-guides.com/
livehttps://harbor-guides.com
# entrypoint on the host, no WordPress
301 /old-review → /review/
410 /retired-page
go  /go/partner-a → partner link
Before and after

The chores you stop doing

By hand, for every site
Find and buy a domain
Create a Cloudflare zone, set NS at the registrar
Wait for delegation, then add A-records
Write or generate the pages
Build the site and upload it to the server
Set redirects and affiliate links per domain
With ForgeSet
Fill in one form
Domain, zone, DNS and pages run in parallel
A status table shows what is blocked and where
One deploy to your own static host
Redirects and /go/ links managed in one place
FIG. 03 — Inside

One mechanism
for hundreds of domains

A·01
parallel branches

Two branches. One clock.

While the registrar delegates NS, the content is already being written. Waiting no longer sits idle.

infrastructure
domain
zone
NS wait
A-records
content
home
review
compare
FAQ
B·02
host sizing · not a benchmark
0
+ domains per IP, by configuration

This is what the static nginx is configured for. To be straight: we haven't load-tested hundreds of sites yet, so treat it as a design target, not a measured result.

C·03
blocker statuses
waiting_nswaiting for delegation
waiting_dnswaiting for records
generating_pageswriting pages
ready_for_launchready to ship
liveon air

See which step every site in the network is stuck on — one table, one log.

D·04
language × geo
~80 languages
× ~200 countries
E·05
redirects on the host
# light PHP entrypoint, no WordPress
301 /old-review  → /review/
410 /retired-page
go  /go/partner-a → link

One rules mechanism instead of a .htaccess on every domain.

F·06
your keys, your servers

The platform doesn't cap generations or deploys.

Your costs are your servers, domains and Gemini key (plus Pixabay if you want stock images). No slots, no per-site limit.

FIG. 04 — Two machines

Everything that matters
is yours

The dashboard is a WordPress app in Docker. Static files live on a separate server. Cloudflare sits at the edge and hides your origin.

Dashboard
WP · queue · MariaDB
Static host
nginx · PHP-FPM
Cloudflare
DNS · HTTPS
Visitor
sees static
Dashboard and job queue run on your server (Docker)
Static host is a separate server, serving from /srv/sites/{domain}/
Copy is generated by Gemini on your own key
Cloudflare hides the origin and gives you HTTPS at the edge
Editing text is a redeploy, with no infrastructure re-provisioning
FIG. 05 — Straight talk

What ForgeSet doesn't promise

No. ForgeSet is a control center for networks of affiliate review and comparison sites with brand listings. It is not a general-purpose site builder.

Not yet. Sites are created through a form; repeatability comes from page sets, styles and cloning. CSV import is on the roadmap.

Servers, domains, a Gemini key — and Pixabay for stock images if you need them. The platform doesn’t cap generations or deploys.

Early access. The core is built and we’re hardening the “button to live” flow together with pilot teams.

On your servers. The dashboard and the static host are your own Docker stacks; ForgeSet doesn’t keep your network on its side.

Early access · pilot teams

Launch your
first network
with us

Tell us about your network and we'll reply with pilot terms. Or walk the flow yourself in the demo first.

Open the live demo