14 Open-source Go App Starters To Boost Your Next Project
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.
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 viamake 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 viamake help
). A full rebuild only takes seconds. - Multi-staged
Dockerfile
(development
->builder
->app
).
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.
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
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.
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
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
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!
9- simple-go-starter
This is a basic Go app starter that includes Go Swaggo plugin for creating API docs with code annotions.
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!
11- Go Starter (Headless App)
This tool helps you to do the tedious work of setting configuration and creating layers for the REST API.
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.
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
14- go-starter
Yet another open-source Golang starter project with Viper, Cobra and GitHub Actions support.