Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fiber V3 Boilerplate

A minimalist and high-performance Go backend boilerplate using Fiber v3. Designed to be lightweight, environment-driven, and easy to extend.

Directory Layout

.
├── app/
│   ├── repository/       # Data access layer (PostgreSQL with pgx/v5)
│   └── routes/           # Route definitions and registrations
├── bootstrap/            # Application lifecycle (Bootstrap & Graceful Shutdown)
├── cmd/server/           # Application entrypoint (main.go)
├── config/               # Configuration loaders (App, DB, Logger)
├── cores/                # Core Framework components
│   ├── config.go         # Config structures
│   ├── contract.go       # Fiber instance & Hook management
│   ├── database.go       # DB connection pool (pgx)
│   ├── logger.go         # Zap logger initialization
│   └── response.go       # Standardized API response helpers
├── spark                 # Spark CLI binary
└── .env.example          # Environment template

Features

  • Fiber v3 - Leveraging the latest features of the Fiber framework.
  • Spark CLI - Custom tool for project initialization, migrations, and live-reloading.
  • Dual Response Format - Built-in support for JSON and MessagePack (via Accept header).
  • Graceful Shutdown - Handles OS signals to close DB connections and stop the server safely.
  • Lifecycle Hooks - Register "Before" and "After" hooks for setup/teardown logic.
  • Structured Logging - High-performance logging using Uber Zap.
  • PostgreSQL Ready - Pre-configured connection pooling using pgx/v5.

Getting Started

1. Installation

Clone the repository and enter the directory:

git clone https://github.com/rachmanzz/fiber-starter.git my-project
cd my-project

2. Initialization

Use the Spark CLI to rename the module to your own:

./spark init

This will interactively ask for your module name and update all imports automatically.

3. Environment Setup

cp .env.example .env
# Edit .env with your database credentials and app port

4. Running the App

For development with live-reloading (requires Air):

./spark dev

To run normally:

go run cmd/server/main.go

Adding New Routes

Define your routes in app/routes/api.go. They are automatically loaded during the bootstrap process in bootstrap/app.go.

Spark CLI Commands

The spark binary is a helper tool for common tasks. (Source code for the CLI is maintained in the with-spark-cli branch for auditing/custom builds).

  • spark init - Initialize project and rename module.
  • spark dev - Run development server with live-reloading.
  • spark migrate - Run database migrations using Tern.
  • spark migrate new [name] - Create a new migration file in /migrations.
  • spark version - Show CLI version.

License

MIT License

About

a Go backend boilerplate using Fiber v3, PostgreSQL (pgx v5), and SQLC. Features modular architecture, centralized contract management, zap logging, and graceful shutdown.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages