Five phases. Twenty minutes.
FallForge is a 5-phase pipeline that turns your existing online footprint into a fully-configured FallHub instance. Here's what happens under the hood.
Read your online footprint.
FallForge fetches your landing page and up to five signal pages (about, prices, reviews, contact, FAQ). It extracts the text, follows the internal links, extracts social handles (Instagram, Facebook, Twitter, LinkedIn, TikTok) and OTA IDs (Airbnb room number, Booking hotel slug).
The vertical is auto-detected via keyword fingerprinting — a scored match against ~40 keywords per vertical. If the top match's confidence is above 35% you proceed; below, FallForge asks you to pick.
Local mode: browser fetches directly. Some hosts block cross-origin — for those, FallForge falls back to the hosted Cloudflare Worker (if you opted in) or asks you to override.
// what Discover produces { "url": "https://rivendell-cottage.co.uk", "text": "1,200 words of extracted content...", "links": [12], "socials": { "instagram": "@rivendell_cottage", "airbnb": "12345" }, "detected_vertical": { "top": "hospitality", "confidence": 0.87 } }
Turn evidence into a grounding kernel.
The raw evidence goes into your chosen frontier LLM (Claude Opus 4.8 by default under the 80/20 blend). The system prompt instructs the model to populate the vertical's kernel schema — every fact into the right slot, and critically, populate the not_present list to prevent future hallucination.
The model is told: if a field isn't mentioned, leave it null. Do not invent. You get a kernel that's sparse where your site is sparse and dense where your site is rich.
Voice tone extracted from any visible reply patterns. Banned phrases picked out from what you've explicitly avoided.
// what Kernel produces { "property": { "name": "Rivendell Cottage", "sleeps": 6, "amenities": ["wifi", "log burner"], "not_present": [ "hot tub", "swimming pool", "sauna" ] }, "voice": { "tone": "warm", "banned_phrases": [ "at your earliest convenience" ] } }
Package the FallHub install as a ZIP.
FallForge assembles a bundle:
kernel.json— the distilled facts with your router config baked inbom.json— bill of materials · what was picked and whyREADME.md— human-readable summary for youINSTALL.md— step-by-step deploy guidemodules-to-install.txt— list of recommended estate modules
The ZIP downloads to your machine. If you provided a GitHub PAT, FallForge also pushes to a fresh public repo (auto-init'd) — you then enable Pages from the GitHub UI.
// recommended modules per vertical { "hospitality": [ "botler", "fallsecurity", "fallaccount", "fallreach" ], "trades": [ "botler", "fallsecurity", "fallaccount", "fallcrm-elite" ], ... }
Autopilot tuning · runs on your instance.
To keep FallForge sovereign-first, autopilot calibration runs after you deploy — on your instance. You open sim.html, run a wave of fake customers, and the calibrator watches:
- How you edit AI drafts vs the raw drafts (informs voice refinement)
- Which types of message you always send yourself (raises escalation thresholds)
- Which drafts you send unchanged (validates auto-send thresholds)
- How long you spend on each reply (informs urgency scoring)
After ~30 messages of practice, the calibrator writes a suggested guardrail config into your kernel. You review, apply, or ignore.
You get the keys.
The final screen shows what was installed, the router blend chosen, the modules recommended, and the download button. If GitHub push succeeded, your live URLs are shown. If not, you get the ZIP + instructions to deploy on any static host.
Open source · MIT.
Every piece of FallForge is in one GitHub repo: github.com/sjgant80-hub/fallforge
forge/discover.js— fetch + text extractionforge/verticals.js— keyword fingerprintingforge/kernel-distil.js— LLM-driven kernel populationforge/wire.js— ZIP assembly + optional GitHub pushforge/router-config.js— the five blendsforge/adapter.js— BYOK LLM adapter across 6 providersforge/forge.js— the 5-phase orchestratorworker/— optional Cloudflare Worker for hosted mode
Fork it. Modify it. Run it. Add your own vertical. Publish it back to the estate.