Go Starter Kit

screenshot of Go Starter Kit
solid

Go Rest API starter kit / Golang API boilerplate base on Chi framework

Overview:

The Go Starter Kit is an opinionated Go starter kit and boilerplate for building Go API projects. It follows the golang standards project layout, incorporates best practices, and uses proven libraries. The goal of the project is to provide a solid foundation for building Golang API projects.

Features:

  • Versioning: Supports versioning of APIs.
  • Pagination: Provides pagination functionality for API responses.
  • Configuration: Allows for easy configuration of project settings.
  • Logging: Implements logging using the go.uber.org/zap library.
  • Error Handling: Includes error handling mechanisms.
  • Validation: Integrates validation using the go-playground/validator library.
  • Health Check: Implements a health check endpoint.
  • Data Seed: Provides functionality for seeding data into the database.
  • DB Migration: Includes support for database migrations.
  • Run & Manage via CLI Command: Allows for running and managing the project through CLI commands.
  • Makefile: Includes a Makefile for project management tasks.
  • Linter: Supports linting of Go code using the golangci-lint library.
  • Unit Test: Provides a framework for writing unit tests.
  • Docker & Docker Compose: Supports Docker and Docker Compose for containerization.
  • Integration Test Sample: Includes a sample for writing integration tests.

Summary:

The Go Starter Kit is a comprehensive boilerplate for building Go API projects. It provides a solid foundation and incorporates best practices, including versioning, pagination, logging, error handling, validation, and more. It also supports Docker and Docker Compose for easy deployment. With its opinionated approach and thoughtful selection of libraries, the Go Starter Kit aims to simplify the development process and provide developers with a head start in building robust Go API projects.

solid
Solid

SolidJS is a declarative JavaScript library for building user interfaces, offering a reactive programming model for efficient updates. It stands out for its reactivity system that minimizes unnecessary re-renders and its small bundle size, making it a performant choice for developing lightweight and reactive web applications.