Project Forge is a long-lived code generator and project manager for Go web apps. It produces a complete Go codebase (with no runtime dependency on Project Forge) and keeps it evolvable: regenerate as your schema, modules, or targets change and keep custom code intact. Project Forge is itself managed by Project Forge; the tooling is continuously exercised in real apps.
Project Forge is a tool for Go-first web apps with predictable latency, minimal JS, and a codebase that can evolve without rewriting foundations. You get a standard Go project that compiles fast, ships everywhere, and stays yours.
https://projectforge.dev/download
https://github.com/kyleu/projectforge
- Lifecycle-aware generation, not a one-time scaffold; updates improve your codebase on your schedule
- Performance-first runtime: quicktemplate HTML, zero-JS baseline, small payloads, aggressive caching
- Modular architecture: enable only what you need and ship a minimal or full-stack build
- Fast HTTP server with MVC helpers and content negotiation (HTML, JSON, CSV, TOML, YAML, XML)
- Quicktemplate rendering for type safety, debugging support, and speed
- Stateless sessions, menu/breadcrumb hierarchy, and consistent request state
- ETag and Cache-Control support with request-aware rendering
- Embedded assets and SVG icon system with symbol reuse
- UI works without JavaScript; progressive enhancement via TypeScript + ESBuild
- Optional JSX engine for lightweight component scripting without heavy frameworks
- Clean, accessible HTML/CSS with light/dark theming based on user preference and an optional theme catalog
- Client bundles and source maps included for fast debugging
- Sub-second feedback loops and live reload for Go, templates, and client assets
- Debug builds that step through Go, quicktemplate files, and TypeScript
- Template debugging with breakpoints and test workflows
- Rich CLI and a web UI for project health, diagnostics, and admin tooling
- Web, desktop, iOS, Android, WASM, and notarized macOS targets; ~60 build targets when fully enabled
- Self-contained ~25MB binaries with embedded assets, providing a rich CLI and web API
- CI/CD via GitHub Actions, GoReleaser packaging, optional Docker publishing
- Auto-upgrade via GitHub Releases (optional)
- OpenTelemetry tracing, Prometheus metrics, and structured Zap logging
- Admin UI utilities for profiling, system stats, sitemaps, and debugging
- Custom, lightweight desktop webview apps (Windows/macOS/Linux, ARM64/AMD64)
- iOS and Android webview apps
- WASM client library and WASM server (an offline service-worker running your Go server)
- macOS notarization support
- Database abstraction with PostgreSQL, MySQL, SQL Server, SQLite, and read-only replicas
- Migration engine and database admin UI
- Schema-driven export/codegen (Go + TypeScript)
- JSON Schema engine, rich type hierarchy for reflection-free introspection
- High-precision numeric types for Go and TypeScript
- OpenAPI/Swagger UI integration
- WebSocket support with reconnection, queueing, and admin observation
- Secure HTTP proxying
- GraphQL APIs with embedded GraphiQL UI
- HTTP Archive (HAR) parsing and tooling
- OAuth 2.0 providers (dozens), permission system, stateless sessions
- User framework (filesystem or database-backed)
- Audit trails for changes and actions
- Filesystem abstraction for local, embedded, remote, and browser storage
- Search system with UI and indexers
- ripgrep integration
- Git automation and repo workflows
- Process manager with real-time output streaming
- Task engine, queue system, and scheduler
- Reactive values and observer pattern
- CEL expression engine with caching
- Server-side JavaScript execution
- Sandbox module for experimentation
- Settings framework for file-backed config
- Markdown renderer and doc browser with embedded help
- Syntax highlighting via Chroma
- Rich editor components with progressive enhancement and JSON fallback
- Icon packs via simple-icons (brand icons)
- UI components: menus, forms, arguments, tables, tabs, modals, accordions, load screens, flash messages, tag editor, autocomplete, link augments, DOM utilities
- Playwright E2E testing harness
- Notebook integration (Observable Framework)
- Plotting and data visualization (Observable Plot)
- Marketing site module with multi-port architecture and download UX
- Model Context Protocol server integration
-
Rituals.dev (GitHub): Work with your team to estimate work, track your progress, and gather feedback.
- It's a full websocket-driven rich client application, but also works fine without JavaScript
-
TODO Forge (GitHub): Manages collections of todo items.
- Almost entirely generated using Project Forge, this is a "stock" application
-
Load Toad (GitHub): A tool for uploading HTTP Archives (
.harfiles) and running load tests.- Also supports client-defined JavaScript, executed in-process on the server
-
Admini (GitHub): A database management application, basically. It does other stuff too.
- This one is weird, it tried to build a user-defined admin app, but it just ended up looking like a 1990's web portal
-
NPN (GitHub): Basically Postman, it helps you explore and test HTTP services with a focus on speed and correctness.
- This uses a Vue.js-based rich client application, and a websocket to handle communication
-
Solitaire (GitHub): An example game, not really anything right now.
- It mainly exists as a testbed for me, and to show the features of Project Forge projects
More examples coming soon...
The Project Forge application is released under MIT license, and all modules and generated code are CC0. Code used in your project is your own, and should be licensed accordingly.