ForgeKitFORGEKIT

Build Log

MedinaCHF Template Extraction + ForgeKit Site Reposition

August 12, 2026

Templatized MedinaCHF into a reusable community-org scaffold, then rebuilt the public site around 'ForgeKit is a local software studio, assurance is how it builds' instead of leading with assurance as the product.

ForgeKit WebsiteMedinaCHFTemplate ExtractionPositioning
2
Anvil/Strike pairs recorded — template-vs-engine evidence bar, assurance-as-method reposition
8
reusable patterns harvested into Pattern Registry
5
real config-layer bugs found by independent architecture review, all fixed
3
production deploys to forgekits.build this session

Timeline

Start
MedinaCHF template review
Audited MedinaCHF for template-extraction viability; initial recommendation was to wait for a second customer
Reframe
Zeb overrides the wait-for-two-consumers call
First live production app is itself the signal to extract, not a reason to wait — Anvil/Strike recorded
Build
packages/templates/community-org/ scaffolded
Copy of MedinaCHF, zero risk to the live app — config layer, brand tokens, patterns harvested
Review
Independent architecture review + fixes
Found config declared-but-not-wired in 5 places (dues, membership requirement, brand tokens, manifest, welcome messages) — all fixed, tsc clean
Pivot
Site reposition Charge
Zeb brought an external analysis arguing assurance should be the studio's method, not its market category
Ship
Homepage, Nav, Footer, /labs, /medinachf, /design-partners rebuilt
Deployed to production 3x, each verified live before moving on
Close
Concurrent-session discovery
Found real in-progress medinaCHF work from another session mid-commit; left it untouched throughout per concurrency rules

What shipped

packages/templates/community-org/ — a genericized copy of products/medinaCHF, config layer (lib/config/), brand tokens driven from config at render time, real .env.example and README

8 reusable patterns added to forgekit-os/patterns.md (intent-vs-outcome tracking, audit-logged intake, tiered auto-response, ack-tracked broadcast, photo-upload component, chip-select, diff-two-sets query idiom, plus the plain-Clerk auth pattern already tracked)

app/manifest.ts (Next.js native route) replacing a broken static manifest.json with literal unsubstituted placeholder tokens

forgekit-website: full homepage rewrite (5-question structure: what do you do / is this for me / what could you build / have you done this / why ForgeKit)

forgekit-website: new /medinachf product page — MedinaCHF as the studio's live proof point

forgekit-website: Nav, Footer, /labs reframed to match the new positioning

forgekit-website: /design-partners fully rewritten (was still targeting 'technology-risk and internal-audit leaders', missed in the first reposition pass)

forgekit-website: unified CTA copy site-wide ('Tell us what's held together with duct tape')

forgekit-website: short first-person founder note (Zeb's own words, interviewed live in-session, not drafted then attributed)

Two Anvil/Strike pairs recorded in forgekit-os/journal/anvils.md and strikes.md