projectforge

command module
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2022 License: MIT Imports: 4 Imported by: 0

README

Project Forge

app logo

Project Forge is an application that allows you to generate, manage, and grow web applications built using the Go language. You control your application's features, provided via "modules" that enable everything from databases to OAuth. A standard Golang project is created, with a ton of utilities and APIs to help you build the application you want, with no compromises.

All projects managed by Project Forge provide an HTTP server based on fasthttp, and use quicktemplate for HTML templates (and SQL, if enabled). An MVC framework is provided (but not required) that handles content negotiation, hierarchical menus, breadcrumbs, OAuth to dozens of providers, stateless user profiles, dark mode support, SVG management, syntax highlighting, form components, and embedded assets.

You're welcome to use any UI framework you'd like, but the included UI renders a JS-dependency-free page, heavily optimized for speed and modern UX. The about page is animated, themed, and responsive, but is only three requests (HTML, CSS, JS) totaling less than 40KB zipped. It serves in less than a millisecond, and renders in Chrome in less than 20ms. Progressive enhancement is provided by an included ESBuild TypeScript project, though all functionality is supported with JavaScript disabled.

Your project can (optionally) build for every platform; desktop and mobile webview apps, WASM, universal macOS binaries, frickin' Plan9 and Solaris. If you check all the boxes it'll produce like 60 builds. They all produce a ~20MB native binary. The binaries produced can be configured to auto-upgrade from GitHub Releases, or upgraded by the user using a CLI or UI (module "upgrade" must be in your project). CI/CD workflows based on GitHub Actions are provided, handling building, testing, linting, and publishing to GitHub Releases (and any configured Docker repos).

Download

https://projectforge.dev/download

Source code

https://github.com/kyleu/projectforge

App Features

A project managed by Project Forge...

  • Has a beautiful and fast HTML UI, no JavaScript required
  • Optimizes for speed and developer experience, sub-second turnaround times
  • Builds in seconds, live-reloads in dev mode when code or templates change
  • Builds native apps for dozens of platforms; mobile, desktop, weird architectures, macOS universal apps
  • Produces a small self-contained binary, includes full REST server and command line interface
  • Optionally supports OAuth with dozens of providers, full theme and stateless session support
  • Provides a type-safe API for working with PostgreSQL, MySQL, and SQLite databases (or no database at all)
  • Uses ESBuild for a TypeScript client with progressive enhancement, embedded SVGs, and modern CSS

Documentation

Licensing

The Project Forge application is released under MIT license, and all modules are CC0.

Documentation

Overview

Content managed by Project Forge, see [projectforge.md] for details.

Directories

Path Synopsis
app
Package app $PF_IGNORE$
Package app $PF_IGNORE$
cmd
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller/clib
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller/cmenu
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller/csession
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller/cutil
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
controller/routes
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/filesystem
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/filter
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/log
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/menu
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/search
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/search/result
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/telemetry
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/telemetry/httpmetrics
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/theme
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/types
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/upgrade
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
lib/user
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
site
$PF_IGNORE$
$PF_IGNORE$
site/download
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
util
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
Content managed by Project Forge, see [projectforge.md] for details.
module module
tools
desktop Module

Jump to

Keyboard shortcuts

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