ForgeKitFORGEKIT

Build Log

Railway Production Proof + Game Builder Scaffold

August 1, 2026

Proved Railway as a real, working production runtime for Alloy with live evidence — clean monorepo build, Clerk auth, Neon reads/writes, and a Git-push deploy pipeline all confirmed on a real deployment, plus scaffolded the ForgeKit Game Builder experiment and fixed two live bugs along the way.

AlloyPlatformExperimentOS
5
of 5 Charge-required artifacts delivered — Runbook corrected post-write for a wrong env var name (s2), Portability Audit + Deployment Design corrected post-write for a false Vercel-live-status assumption (s3)
2
real Git-triggered Railway deployments
3
live bugs found and fixed mid-session
2.40-2.95 USD
projected monthly Railway cost

Timeline

Start
Empty scratch-boundary-spike cleanup
Diagnosed a stale VS Code git decoration, removed an empty untracked dir
+30m
Game Builder scaffolded
New experiments/game-builder/ Next.js shell, renamed from placeholder 'playground', wired into workspaces/deploy/PROJECT_INDEX.md/product-registry
+45m
Alloy Commons image + Clerk LAN investigation
Wired game-builder Mission photo into Commons; diagnosed Clerk dev-instance origin restriction blocking phone/LAN access
+1h
Railway Charge received
Large pre-shaped Charge: prove Railway as Alloy's production runtime without touching Vercel/DNS/prod data
+1h30m
Investigation + 3 artifacts written
Portability Audit, Deployment Design, Runbook — all evidence-based, health route added
+2h
Live Railway deploy
First build succeeded — monorepo workspace packages resolved cleanly, zero errors
+2h30m
Full validation pass
Clerk auth, Neon read/write, multi-tenancy, FORGEKIT_ROOT resolution, static assets, 2nd Git-triggered deploy — all confirmed live
+3h
Proof Results + Recommendation written, merged to master
Verdict: adopt Railway. All 5 artifacts committed (2 of the 3 earlier artifacts required a factual correction along the way — see s2/s3), railway-proof branch merged

What shipped

experiments/game-builder/ — Next.js scaffold for the ForgeKit Game Builder Mission (Roblox Studio MCP cockpit), renamed from a placeholder 'playground' folder, wired into root package.json workspaces/deploy scripts, PROJECT_INDEX.md, CLAUDE.md, and forgekit-os/product-registry.json (synced live into Alloy's Neon products table)

products/alloy/components/commons/primitives.tsx — wired the real game-builder.png Mission photo + a real category ('Youth & Creativity') into the Commons card system, replacing the generic icon+gradient placeholder

products/alloy/app/api/health/route.ts — new liveness endpoint for platform health probes, exempted in proxy.ts, live-verified both locally and on Railway

docs/platform/alloy-runtime-portability-audit.md — full Vercel-coupling/portability findings, each classified portable/Vercel-coupled/Railway-specific/architectural-concern/unresolved

docs/platform/railway-alloy-deployment-design.md — proposed Railway architecture (Railpack, repo-root build context, app-subdir build/start commands)

docs/platform/railway-alloy-runbook.md — reproducible Railway setup steps

docs/platform/railway-alloy-proof-results.md — real, tested evidence for every validation area the Charge required

docs/platform/railway-alloy-recommendation.md — verdict: adopt Railway as Alloy's primary runtime

A real, live PROOF deployment of Alloy on Railway (Hobby plan) at alloy-production-08f3.up.railway.app, GitHub-connected, health-checked, tested against real Neon/Clerk — validates the approach; not yet hardened as a long-term production target (Node version pin unresolved, no permanent domain, secrets set ad hoc through the dashboard rather than a durable source)

holy shit the deploy was succesful!

Zeb, on the first Railway build clearing the #1 predicted risk (monorepo workspace resolution) with zero errors