A Go app starter is a template or boilerplate code that provides a foundation for developing Go applications. It includes the basic structure, configuration, and commonly used packages and libraries, allowing developers to quickly start building their applications without having to set up everything from scratch.

Using a Go app starter is important for boosting productivity and app development speed because it eliminates the need to spend time on repetitive tasks and setup. It provides a starting point with best practices already implemented, saving developers from reinventing the wheel and allowing them to focus on building the core features of their application.

By using a Go app starter, developers can benefit from a streamlined development process, improved code consistency, and reduced time to market. It provides a solid foundation that can be customized and extended based on specific project requirements, enabling developers to build high-quality applications more efficiently.

In the following list, we collected the best open-source Golang app starters to create a quick app without the need to start from scratch.

1- Pagoda

Pagoda is a free and open-source rapid (RAD), easy full-stack web development starter kit in Go.

Pagoda is a base starter-kit for fast and easy full-stack web development in Go. It provides most of the functionality you need from a web framework and establishes patterns, procedures, and structure for your web application.

GitHub - mikestefanello/pagoda: Rapid, easy full-stack web development starter kit in Go
Rapid, easy full-stack web development starter kit in Go - GitHub - mikestefanello/pagoda: Rapid, easy full-stack web development starter kit in Go

2- go-starter

go-starter is a production-ready RESTful JSON backend template written in Go. It is highly integrated with VSCode DevContainers by allaboutapps, providing an opinionated approach.

Features

  • Full local golang service development environment using Docker Compose and VSCode devcontainers that just works with Linux, MacOS and Windows.
  • Adheres to the project layout defined in golang-standard/project-layout.
  • Provides database migration (sql-migrate) and models generation (SQLBoiler) workflows for PostgreSQL databases.
  • Integrates IntegreSQL for fast, concurrent and isolated integration testing with real PostgreSQL databases.
  • Auto-installs our recommended VSCode extensions for golang development.
  • Integrates go-swagger for compile-time generation of swagger.yml, structs and request/response validation functions.
  • Integrates MailHog for easy SMTP-based email testing.
  • Integrates SwaggerUI for live-previewing your Swagger v2 schema.
  • Integrates pgFormatter and vscode-pgFormatter for SQL formatting.
  • Comes with fully implemented auth package, an OAuth2 RESTful JSON API ready to be extended according to your requirements.
  • Implements OAuth 2.0 Bearer Tokens and password authentication using argon2id hashes.
  • Comes with a tested mock and FCM provider for sending push notifications and storing push tokens.
  • CLI layer provided by spf13/cobra. It's exceptionally easy to add additional sub-commands via cobra-cli.
  • Comes with an initial PostgreSQL database structure (see /migrations), covering:
    • auth tokens (access-, refresh-, password-reset-tokens),
    • a generic auth-related user model
    • an app-specific bare-bones app_user_profile model,
    • push notification tokens and
    • a health check sequence (for performing writeable checks).
  • API endpoints and CLI for liveness (/-/healthy) and readiness (/-/ready) probes
  • Parallel jobs optimized Makefile and various convenience scripts (see all targets and its description via make help). A full rebuild only takes seconds.
  • Multi-staged Dockerfile (development -> builder -> app).Full local golang service development environment using Docker Compose and VSCode devcontainers that just works with Linux, MacOS and Windows.
  • Adheres to the project layout defined in golang-standard/project-layout.
  • Provides database migration (sql-migrate) and models generation (SQLBoiler) workflows for PostgreSQL databases.
  • Integrates IntegreSQL for fast, concurrent and isolated integration testing with real PostgreSQL databases.
  • Auto-installs our recommended VSCode extensions for golang development.
  • Integrates go-swagger for compile-time generation of swagger.yml, structs and request/response validation functions.
  • Integrates MailHog for easy SMTP-based email testing.
  • Integrates SwaggerUI for live-previewing your Swagger v2 schema.
  • Integrates pgFormatter and vscode-pgFormatter for SQL formatting.
  • Comes with fully implemented auth package, an OAuth2 RESTful JSON API ready to be extended according to your requirements.
  • Implements OAuth 2.0 Bearer Tokens and password authentication using argon2id hashes.
  • Comes with a tested mock and FCM provider for sending push notifications and storing push tokens.
  • CLI layer provided by spf13/cobra. It's exceptionally easy to add additional sub-commands via cobra-cli.
  • Comes with an initial PostgreSQL database structure (see /migrations), covering:
    • auth tokens (access-, refresh-, password-reset-tokens),
    • a generic auth-related user model
    • an app-specific bare-bones app_user_profile model,
    • push notification tokens and
    • a health check sequence (for performing writeable checks).
  • API endpoints and CLI for liveness (/-/healthy) and readiness (/-/ready) probes
  • Parallel jobs optimized Makefile and various convenience scripts (see all targets and its description via make help). A full rebuild only takes seconds.
  • Multi-staged Dockerfile (development -> builder -> app).
GitHub - allaboutapps/go-starter: An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps.
An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps. - GitHub - allaboutapps/go-starter: An opinionated pr…

3- Go Webapp Starter Kit

This project is a starter kit for building web applications or RESTful services in Google Go (#golang). It has the following features baked in.

  • Terminate/Interrupt signal handler
  • Flags for IP/Port binding
  • Middleware for managing request flow
  • Context to handle data needed throughout request life-cycle

The project is an open-source project that is released under the MIT license.

GitHub - adampresley/golang-webapp-starter-kit: My webapp/microservice starter kit for Go
My webapp/microservice starter kit for Go. Contribute to adampresley/golang-webapp-starter-kit development by creating an account on GitHub.

4- Golang application starter (Gin Framework)

Golang web application starter template using the Gin framework.

Features

  • Uses Go modules
  • Automated generation of self-signed certs (if enabled)
  • Some basic, exemplary api endpoints (/health, /ping and index)
  • Some basic tests using testify
  • Basic configuration using environment variables
  • Automated builds and releases on 3 major operating systems using GitHub workflows
  • Middleware to add security headers in response including strict CSP policy. If isTlsEnabled flag is set to true HSTS header will be added as well
GitHub - jpiechowka/golang-app-starter: Golang application starter
Golang application starter. Contribute to jpiechowka/golang-app-starter development by creating an account on GitHub.

5- Go Starter

Go-starter allows bootstrapping a new project from a template. It uses Git repositories as templates and is shipped with batch of utilities to make bootstarpping easier.

GitHub - adobe/go-starter: Bootstrap a new project from a template.
Bootstrap a new project from a template. Contribute to adobe/go-starter development by creating an account on GitHub.

6- Go-Starter-Project

This is an open-source template of a generic project written in GO.

Features

  • Definition of controllers
  • Definition of controllers GET and POST, in any case it is possible to define further methods
  • Data manipulation system retrieved from database MySQL
  • Timed remote data recovery system
  • Queue request system
  • Configuration cache system via .env file
  • Database migration system
GitHub - IacopoMelani/Go-Starter-Project: Template of a generic project written in go
Template of a generic project written in go. Contribute to IacopoMelani/Go-Starter-Project development by creating an account on GitHub.

7- Go Starter Kit

This project is opinionated Go starter kit / Golang boilerplate that uses the Golang standards project layout, using best and proven libraries and implements best practices for great foundation of Golang API project.

Features

  •  Versioning
  •  Pagination
  •  Configuration
  •  Logging
  •  Error Handling
  •  Validation
  •  Health Check
  •  Data Seed
  •  DB Migration
  •  Run & Manage via CLI Command
  •  Makefile
  •  Linter
  •  Unit Test
  •  Docker & Docker Compose
  •  Integration Test sample
GitHub - qreasio/go-starter-kit: Go Rest API starter kit / Golang API boilerplate base on Chi framework
Go Rest API starter kit / Golang API boilerplate base on Chi framework - GitHub - qreasio/go-starter-kit: Go Rest API starter kit / Golang API boilerplate base on Chi framework

8- go-starter

This repository is a bare-bones Golang web service scaffold that sets up routes, SSL, static file serving, and a global pooled MySQL database connection. This is still in progress!

GitHub - suyashkumar/go-starter: A Golang starter web service with RESTful API, SSL, and static frontend serving
A Golang starter web service with RESTful API, SSL, and static frontend serving - GitHub - suyashkumar/go-starter: A Golang starter web service with RESTful API, SSL, and static frontend serving

9- simple-go-starter

This is a basic Go app starter that includes Go Swaggo plugin for creating API docs with code annotions.

GitHub - DragonSSS/simple-go-starter: The most basic Go starter
The most basic Go starter. Contribute to DragonSSS/simple-go-starter development by creating an account on GitHub.

10- Golang Starter Pack

Codebase containing real world examples that adhere to the RealWorld API and specifications.

Created to demonstrate a complete full-stack application built with Golang, Echo, and Gorm.

Its features include:

  • CRUD operations
  • Authentication
  • Routing
  • Pagination
  • ...and more!
GitHub - StephanieCherubin/Go-Full-Stack-App
Contribute to StephanieCherubin/Go-Full-Stack-App development by creating an account on GitHub.

11- Go Starter (Headless App)

This tool helps you to do the tedious work of setting configuration and creating layers for the REST API.

GitHub - fanchann/go-starter: REST API template generator
REST API template generator. Contribute to fanchann/go-starter development by creating an account on GitHub.

12- gotmp

The "gotmp" project is a Gofiber starter web-api project that supports configuration with MongoDB and includes ready-made models for user authentication/authorization. It is recommended for API starters and for learning about Golang. The project uses Golang, Gofiber, and MongoDB as its stack and supports features such as authentication/authorization, users, database, scheduler, websocket, and webserver.

GitHub - rrrokhtar/gotmp: Golang starter web restful api with support of websocket (wss)
Golang starter web restful api with support of websocket (wss) - GitHub - rrrokhtar/gotmp: Golang starter web restful api with support of websocket (wss)

13- Go microservice starter

It's a lean boilerplate to start developing a microservice in Go.

Features:

  • Gin server
  • Godotenv to load environment variables
  • Makefile for the development and production tasks
  • Air live reload configuration
  • Docker configuration
  • Docker-compose configuration
GitHub - itacode/go-microservice-starter: Boilerplate to start developing a microservice in Go
Boilerplate to start developing a microservice in Go - GitHub - itacode/go-microservice-starter: Boilerplate to start developing a microservice in Go

14- go-starter

Yet another open-source Golang starter project with Viper, Cobra and GitHub Actions support.

GitHub - antoniomika/go-starter: A golang starter project with viper, cobra, and github actions integrations
A golang starter project with viper, cobra, and github actions integrations - GitHub - antoniomika/go-starter: A golang starter project with viper, cobra, and github actions integrations