Greeting Start

Why gFly? #

There are a variety of tools and frameworks available to you when building a web application with Go. However, we believe gFly is the best choice for building modern, full-stack web applications.

Always learn and synthesize from the good things in the available frameworks. With the criteria of making things simple, useful, and always available to help programmers create effective applications, you don’t need to think too much about what to use; instead, focus on creating the application you need.

gFly creates a complete skeleton and helps those who are newbies to Web Programming with Go understand the Web components and use them effectively. We call it aBest Practice for Web Programming in Go

Development Environment #

Before creating your first gFly project, make sure that your local machine has Go the latest version installed. And your favorite IDEs: VSCode, GoLand, NeoVim

gFly requires at least Go 1.21.x. So, remember check:

go version

We recommend using Homebrew to install Go on Mac and Linux.

Development Tools #

There are many tools to support coding, proofing, diagnostics, and suggestions to help make the final product highly effective. gFly also uses those tools as a necessary part of the application development process. We encourage you to install and use them.

The first three and necessary tools help you create clean, secure, and standard code lines.

  • gocritic is a collection of checks that detect style, performance issues as well as some common programming errors
  • gosec inspects source code for security problems by scanning the Go AST and SSA code representation
  • golangci-lint is designed to be as flexible as possible for a wide range of use cases in Go Linter
  • swag automatically generate RESTful API documentation with Swagger 2.0
  • migrate database migrations. CLI and Golang library
  • air live reload for Go apps to help you don’t be interrupted in the development phase

Creating A gFly Project #

Checkout the latest gFly framework:

git clone https://github.com/JiveIO/gFly.git && rm -rf gFly/.git*