projectforge

command module
v1.9.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 3 Imported by: 0

README

Project Forge

app logo

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.

Download

https://projectforge.dev/download

Source code

https://github.com/kyleu/projectforge

Why it is worth using

  • 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

Core runtime

  • 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

Web UI/UX

  • 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

Developer experience

  • 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

Build, deploy, operate

  • 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

Feature inventory (all optional via modules)

Platform targets
Data and schema
API and protocol surface
Auth, users, auditing
  • OAuth 2.0 providers (dozens), permission system, stateless sessions
  • User framework (filesystem or database-backed)
  • Audit trails for changes and actions
Runtime utilities
UI and content system
  • 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
Productivity and QA
AI and tooling

Example Applications

  • 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 (.har files) 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...

Documentation

Licensing

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
app
Package app
Package app
cmd
controller
Package controller - Content managed by Project Forge, see [projectforge.md] for details.
Package controller - Content managed by Project Forge, see [projectforge.md] for details.
controller/cutil
Package cutil - Content managed by Project Forge, see [projectforge.md] for details.
Package cutil - Content managed by Project Forge, see [projectforge.md] for details.
util
Code generated from files in client/src/svg.
Code generated from files in client/src/svg.
module module
tools
desktop module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL