Forge Framework Comparison Matrix
Purpose: Assess how Forge compares to established frameworks (Rails, Spring Boot, LAMP, Django) Status: Draft for external review Date: December 2025
Executive Summary
Forge is an opinionated toolchain for AI-assisted development, not a traditional web framework. This document assesses where Forge hits and misses the mark compared to frameworks that achieved industry adoption.
Quick Verdict
| Dimension | Rails | Spring Boot | LAMP | Django | Forge |
|---|---|---|---|---|---|
| Convention Strength | A | B | C | A | A |
| Scaffolding/Generators | A | B+ | D | A | D (planned) |
| Learning Curve | B | C | A | B | B- |
| Community/Ecosystem | A | A | A | A | F (new) |
| Production Readiness | A | A | A | A | D (unproven) |
| AI-Friendliness | C | C | B | C | A (core thesis) |
| Documentation | A | A | B | A | B+ |
Bottom line: Forge has strong conventions and AI-alignment but lacks the tooling, ecosystem, and production track record that made Rails/Spring successful.
Dimension 1: Convention over Configuration
What Made Rails Successful
Rails defined the "convention over configuration" paradigm:
- File placement determines behavior (
app/models/user.rb→Usermodel) - Naming conventions auto-wire components (
UsersController→userstable) - Generators enforce conventions (
rails g scaffold User) - "The Rails Way" is documented and enforced
How Forge Compares
| Aspect | Rails | Forge | Assessment |
|---|---|---|---|
| File-based routing | Yes (config/routes.rb + conventions) |
Partial (Go handlers, manual wiring) | MISS - No auto-discovery |
| Naming conventions | Strong (User → users table) |
Weak (sqlc requires explicit mapping) | MISS - Manual mapping |
| Configuration defaults | Zero-config start | Zero-config start | HIT - Similar philosophy |
| "One way to do it" | Strong opinion | Strong opinion | HIT - Clear stack choices |
| Convention documentation | Extensive | Growing | PARTIAL - Needs more examples |
Gap Analysis
FORGE CONVENTION GAPS:
┌────────────────────────────────────────────────────────────────┐
│ 1. No automatic route generation from file structure │
│ 2. No model-to-table naming convention (sqlc is explicit) │
│ 3. No automatic handler-to-template wiring │
│ 4. No "forge convention" documentation equivalent to Rails │
└────────────────────────────────────────────────────────────────┘
Recommendations
- Define explicit naming conventions (e.g.,
handlers/tournament.go→templates/pages/tournament.templ) - Create convention validation tool (
forge lintchecks convention compliance) - Document "The Forge Way" as comprehensively as Rails Guides
Dimension 2: Scaffolding & Generators
What Made Frameworks Successful
| Framework | Generator Command | What It Creates |
|---|---|---|
| Rails | rails g scaffold Post title:string body:text |
Model, migration, controller, views, routes, tests |
| Django | python manage.py startapp blog |
App structure, admin, views, models |
| Spring Boot | Spring Initializr | Project with dependencies, structure |
| Laravel | php artisan make:model Post -mcr |
Model, migration, controller, resource |
How Forge Compares
| Aspect | Rails | Forge | Assessment |
|---|---|---|---|
| Project scaffolding | rails new |
forge new (planned) |
MISS - Not implemented |
| Resource generation | rails g scaffold |
None | MISS - Critical gap |
| Migration generation | rails g migration |
None (manual SQL) | MISS - No automation |
| Test generation | Automatic with scaffold | None | MISS - No test scaffolding |
Gap Analysis
FORGE SCAFFOLDING GAPS:
┌────────────────────────────────────────────────────────────────┐
│ CRITICAL - Must have for adoption: │
│ • forge new <app> - Project scaffolding │
│ • forge g resource <name> - Handler + template + SQL + test │
│ • forge g migration <name> - SQL migration file │
│ • forge g island <name> - Svelte island boilerplate │
│ │
│ NICE TO HAVE: │
│ • forge g handler <name> - HTTP handler only │
│ • forge g templ <name> - Template only │
│ • forge g query <name> - SQL query only │
└────────────────────────────────────────────────────────────────┘
Recommendations
- Implement
forge newas Phase 3 priority - Design generator output before implementing (what files, what content)
- Use Go templates for generation (not AI) - deterministic scaffolding
Dimension 3: Developer Experience (DX)
What Made Frameworks Successful
| Framework | DX Highlights |
|---|---|
| Rails | Console, hot reload, error pages, migrations |
| Django | Admin panel, shell, debug toolbar |
| Laravel | Artisan CLI, Tinker REPL, Telescope |
| Spring Boot | DevTools, Actuator, starter dependencies |
How Forge Compares
| Aspect | Industry Standard | Forge | Assessment |
|---|---|---|---|
| REPL/Console | Rails console, Django shell | None | MISS |
| Hot reload | Built-in | Air (external tool) | PARTIAL |
| Error pages | Framework-provided | Manual | MISS |
| Debug tools | Framework-provided | Manual | MISS |
| CLI | Comprehensive | Planned | MISS |
| Admin panel | Django admin | None | MISS (not in scope) |
Gap Analysis
FORGE DX GAPS:
┌────────────────────────────────────────────────────────────────┐
│ HIGH IMPACT: │
│ • No REPL for testing queries/handlers interactively │
│ • No development error pages with stack traces │
│ • No built-in request logging/debugging │
│ │
│ MEDIUM IMPACT: │
│ • No forge CLI (currently using make/scripts) │
│ • No database console integration │
│ • No visual route inspection │
│ │
│ LOW IMPACT (OK to skip): │
│ • No admin panel (not Forge's focus) │
│ • No visual query builder │
└────────────────────────────────────────────────────────────────┘
Recommendations
- Development error middleware - Catch panics, show formatted errors
- Request logger middleware - Log all requests with timing
- Implement
forgeCLI - Even if just wrapping make commands initially
Dimension 4: Learning Curve
Framework Learning Curve Comparison
| Framework | Time to Hello World | Time to CRUD App | Time to Production |
|---|---|---|---|
| LAMP | 30 min | 2 hours | 1 week |
| Rails | 15 min | 1 hour | 1-2 weeks |
| Django | 20 min | 1.5 hours | 1-2 weeks |
| Spring Boot | 30 min | 3 hours | 2-3 weeks |
| Forge | ? | ? | ? |
Forge Learning Prerequisites
FORGE LEARNING REQUIREMENTS:
┌────────────────────────────────────────────────────────────────┐
│ MUST KNOW: │
│ • Go basics (functions, structs, interfaces) │
│ • SQL (not an ORM - you write real queries) │
│ • HTML (templates are HTML, not JSX) │
│ • HTTP fundamentals (methods, status codes, headers) │
│ │
│ SHOULD KNOW: │
│ • HTMX concepts (hx-* attributes) │
│ • Templ syntax (Go-flavored templates) │
│ • Svelte basics (for islands) │
│ │
│ CAN LEARN AS YOU GO: │
│ • sqlc specifics │
│ • SSE patterns │
│ • Island mounting │
└────────────────────────────────────────────────────────────────┘
Assessment
| Aspect | Rails | Forge | Assessment |
|---|---|---|---|
| Language barrier | Ruby (new for many) | Go (growing adoption) | SIMILAR |
| Prerequisite knowledge | Lower (Rails teaches patterns) | Higher (assumes SQL, HTTP) | MISS |
| "Magic" to understand | High (must learn Rails way) | Low (explicit patterns) | HIT |
| Getting started guide | Excellent | None | MISS |
| Tutorial quality | Industry best | Not started | MISS |
Recommendations
- Create "Forge in 15 Minutes" tutorial
- Provide pre-built example app (rally-hq serves this purpose)
- Document prerequisite knowledge explicitly
Dimension 5: Community & Ecosystem
Framework Ecosystem Comparison
| Framework | Age | GitHub Stars | Packages/Gems | Books | Courses | Jobs |
|---|---|---|---|---|---|---|
| Rails | 20 years | 55k+ | 170k+ gems | 100+ | 500+ | High |
| Django | 19 years | 75k+ | 4k+ packages | 50+ | 300+ | High |
| Spring | 20+ years | 70k+ | Maven central | 100+ | 500+ | Very High |
| Laravel | 13 years | 75k+ | 30k+ packages | 30+ | 200+ | High |
| Forge | 0 years | 0 | 0 | 0 | 0 | 0 |
Assessment
Forge is at T=0. This is expected for a new framework. The question is: does Forge have the characteristics that enabled other frameworks to build communities?
| Success Factor | Rails Had It | Forge Has It? |
|---|---|---|
| Clear value proposition | Yes (10x productivity) | Yes (AI-friendly) |
| Charismatic creator | Yes (DHH) | No (personal experiment) |
| Early adopter showcase | Yes (Basecamp) | Partial (rally-hq) |
| Compelling demo | Yes (blog in 15 min) | No |
| Corporate backing | Later (37signals) | No |
| Solves real pain | Yes (Java/PHP complexity) | Yes (AI code quality) |
Recommendations
- Don't try to build community yet - Forge is Phase 1-2 (validation)
- Focus on rally-hq as proof - One working app > marketing
- Document learnings publicly - Attract early interest
Dimension 6: Production Readiness
Framework Maturity Assessment
| Framework | Fortune 500 Usage | Known Scale | Security Track Record |
|---|---|---|---|
| Rails | GitHub, Shopify, Airbnb | Millions of users | Established |
| Django | Instagram, Mozilla | Billions of requests | Established |
| Spring | Most enterprises | Enterprise scale | Established |
| LAMP | Facebook (originally) | Web scale | Established |
| Forge | None | Untested | Untested |
Forge Production Readiness Assessment
| Aspect | Status | Assessment |
|---|---|---|
| Core stack (Go + Postgres) | Battle-tested | HIT - Proven technologies |
| HTMX at scale | Growing adoption | PARTIAL - Fewer case studies |
| Templ maturity | Young but stable | PARTIAL - Limited production use |
| sqlc maturity | Well-established | HIT - Used in production |
| Forge conventions | Unproven | MISS - No production validation |
| Error handling | Not standardized | MISS - Needs definition |
| Monitoring/observability | Not defined | MISS - Needs definition |
| Security patterns | Not documented | MISS - Critical gap |
Recommendations
- Rally-hq IS the production test - Document everything
- Define security patterns before production use
- Add observability guidance (structured logging, metrics)
Dimension 7: AI-Friendliness (Forge's Unique Value)
This Is Where Forge Should Excel
| Aspect | Traditional Frameworks | Forge | Assessment |
|---|---|---|---|
| Code generation predictability | Low (complex patterns) | High (simple patterns) | HIT |
| Context window efficiency | Poor (large codebases) | Good (repo maps) | HIT |
| Pattern consistency | Varies | Enforced by convention | HIT |
| Type safety | Varies | Strong (Go + Templ + sqlc) | HIT |
| Client state complexity | Often high | Minimal (server-first) | HIT |
| Security vulnerability rate | ~45% AI-generated code | Target: <10% | UNPROVEN |
AI-Friendliness Comparison
AI CODE GENERATION SUCCESS RATES (HYPOTHESIZED):
┌────────────────────────────────────────────────────────────────┐
│ Framework │ Compile │ Runtime │ Security │ Overall │
│────────────────────┼─────────┼─────────┼──────────┼───────────│
│ React/Next.js │ 70% │ 50% │ 55% │ ~45% │
│ Rails │ 80% │ 70% │ 60% │ ~55% │
│ Django │ 80% │ 70% │ 65% │ ~55% │
│ Go + HTMX (Forge) │ 90% │ 85% │ 80% │ ~75%* │
└────────────────────────────────────────────────────────────────┘
* Target, unproven
Recommendations
- This is Forge's differentiation - Lean into it
- Measure AI success rates with rally-hq development
- Publish results regardless of outcome
Overall Assessment: Hits and Misses
Where Forge HITS the Mark
| Aspect | Why It Works |
|---|---|
| Clear opinion | "Go + HTMX + Svelte islands" is unambiguous |
| Simple mental model | Request → Handler → HTML → Browser |
| Type safety throughout | Go + Templ + sqlc = end-to-end types |
| Minimal client JS | ~25kb baseline is excellent |
| AI-first design | Conventions optimize for AI code gen |
| Good documentation structure | 12-Factor Agents, BUILD-TIME, RUNTIME |
| Escape hatch | Islands for when HTMX isn't enough |
Where Forge MISSES the Mark
| Aspect | Gap | Severity | Fix Effort |
|---|---|---|---|
| No generators/scaffolding | Can't forge new or forge g |
Critical | High |
| No CLI | Using make/scripts | High | Medium |
| No getting started guide | Hard to adopt | High | Medium |
| No community | Expected at T=0 | Medium | Time |
| No production validation | Unproven at scale | Medium | Time |
| No REPL | DX gap vs Rails | Low | Medium |
| No admin panel | DX gap vs Django | Low | N/A (out of scope) |
Comparison to LAMP (The Original Stack)
LAMP became ubiquitous because:
- Zero cost - All components free
- Zero barrier - Shared hosting everywhere
- Zero complexity - Just files in a folder
- Immediate gratification - Edit PHP, refresh browser
Forge vs LAMP Philosophy
| LAMP | Forge |
|---|---|
| Files in folders | Files in folders |
| Edit, refresh | Edit, hot reload |
| PHP as templating | Templ as templating |
| MySQL queries inline | sqlc queries in files |
| No build step | Build step (Go compile, Svelte) |
Key difference: Forge has a build step. This is acceptable for the AI-friendliness benefits but raises the barrier vs LAMP's simplicity.
Comparison to Rails ("Convention over Configuration")
Rails succeeded because:
- 10x productivity - Build apps faster than Java/PHP
- Integrated stack - Everything works together
- Strong defaults - Don't configure, just use
- Generators - Scaffold entire features
Forge vs Rails Philosophy
| Rails | Forge |
|---|---|
| Full-stack framework | Stack definition + conventions |
| Ruby (flexible) | Go (rigid, typed) |
| ActiveRecord (ORM) | sqlc (SQL-first) |
| ERB templates | Templ (typed HTML) |
| Turbo/Stimulus (modern) | HTMX + Svelte islands |
| Magic (auto-discovery) | Explicit (manual wiring) |
Key difference: Rails embraces "magic" that just works. Forge is more explicit—this helps AI but may frustrate developers expecting Rails-like DX.
Recommendations for External Assessment
Phase 1: Self-Assessment (This Document)
- Compare against established frameworks
- Identify hits and misses
- Document gaps with severity
Phase 2: ThoughtWorks Radar Preparation
Steps:
- Create public comparison matrix (this document, published)
- Build demo video showing AI code generation with Forge
- Reach out to ThoughtWorks via their submission process
- Prepare "blip" description focusing on AI-friendliness angle
Timeline: After rally-hq MVP demonstrates thesis
Phase 3: Community Peer Review
Steps:
- Post to AI Native Dev community for feedback
- Share on Hacker News (Show HN) for developer feedback
- Gather feedback, iterate on conventions
- Document feedback in LEARNINGS.md
Timeline: After Phase 2 data collected
Phase 4: Formal Architecture Review (Optional)
When: Only if enterprise adoption becomes a goal
Steps:
- Engage consultancy (VITech, DevCom, or similar)
- Provide all documentation + rally-hq codebase
- Request formal assessment against enterprise criteria
- Incorporate findings
Conclusion
Forge is conceptually strong but tooling-incomplete. It has the right ideas (AI-friendliness, server-first, typed throughout) but lacks the implementation that made Rails/Django successful (generators, DX tools, tutorials).
The honest assessment:
FORGE TODAY:
┌────────────────────────────────────────────────────────────────┐
│ ✓ Strong conventions and clear opinions │
│ ✓ AI-friendly architecture (unique value) │
│ ✓ Good documentation structure │
│ ✓ Solid technology choices (Go, HTMX, sqlc) │
│ │
│ ✗ No tooling (`forge` CLI, generators) │
│ ✗ No getting started experience │
│ ✗ No production validation │
│ ✗ No community │
└────────────────────────────────────────────────────────────────┘
RECOMMENDATION: Forge should NOT seek external validation yet.
Complete rally-hq, extract tooling, then reassess.