Skip to content

kyleu/projectforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Project Forge helps you build applications with Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •