Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. modern-go-application

modern-go-application

MITGo

A Go application boilerplate and example implementing modern development practices like configuration, logging, telemetry, and graceful shutdown.

GitHubGitHub
1.9k stars179 forks0 contributors

What is modern-go-application?

Modern Go Application is a boilerplate and example project that demonstrates best practices for building production-ready applications in Go. It provides a structured foundation covering configuration, logging, error handling, telemetry, and deployment, helping developers avoid common pitfalls and follow modern standards.

Target Audience

Go developers and teams starting new projects who want a production-tested template with integrated tools for configuration, observability, and maintainability.

Value Proposition

It consolidates widely-adopted libraries and patterns into a single, coherent example, reducing setup time and ensuring applications are built with robust, scalable practices from the start.

Overview

Modern Go Application example

Use Cases

Best For

  • Starting new Go microservices or web applications with a production-ready foundation
  • Learning modern Go application architecture and best practices
  • Implementing structured logging and error handling in Go projects
  • Adding metrics, tracing, and health checks to existing Go applications
  • Building event-driven applications with messaging support
  • Creating applications that require graceful shutdown and zero-downtime deployments

Not Ideal For

  • Quick prototypes or MVPs where extensive production tooling adds unnecessary overhead
  • Projects aiming for minimal dependencies and a lightweight, vendor-agnostic codebase
  • Applications requiring different core technologies like PostgreSQL, MongoDB, or Kafka not natively supported

Pros & Cons

Pros

Integrated Best Practices

Packages modern Go libraries like Viper for configuration and Logur/Logrus for logging, providing a cohesive foundation that reduces setup time and enforces consistency.

Production Observability

Includes Prometheus for metrics and Jaeger for distributed tracing via OpenCensus, essential for monitoring and debugging in scalable environments.

Reliability Features

Implements health checks with go-sundheit and graceful shutdown with tableflip, ensuring application stability and zero-downtime deployments as highlighted in the README.

Event-Driven Support

Integrates Watermill for messaging, enabling building decoupled, scalable applications without needing to set up event handling from scratch.

Cons

Heavy Dependency Footprint

Includes numerous third-party libraries that can lead to bloat, increased complexity, and potential version conflicts for simpler use cases.

Opinionated Library Choices

Locks you into specific tools like Viper and Logrus, making it harder to switch to alternatives or customize without significant refactoring.

Setup and Maintenance Overhead

The init script helps, but customizing components (e.g., replacing MySQL) requires deep diving into integrated code, which can be time-consuming and error-prone.

Frequently Asked Questions

Quick Stats

Stars1,946
Forks179
Contributors0
Open Issues18
Last commit1 year ago
CreatedSince 2018

Tags

#graceful-shutdown#application-boilerplate#golang-application#health-checks#telemetry#golang-examples#boilerplate#messaging#structured-logging#golang#mysql#configuration-management#go#application-architecture

Built With

V
Viper
G
Go
P
Prometheus
J
Jaeger
l
logrus

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

project-layoutproject-layout

Standard Go Project Layout

Stars56,080
Forks5,443
Last commit1 month ago
go-blueprintgo-blueprint

Go-blueprint allows users to spin up a quick Go project using a popular framework

Stars8,848
Forks486
Last commit1 month ago
serviceservice

Starter-kit for writing services in Go using Kubernetes.

Stars4,026
Forks723
Last commit13 days ago
pagodapagoda

Rapid, easy full-stack web development starter kit and admin panel in Go

Stars2,940
Forks150
Last commit5 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub