Golang

s3xplorer: a fast web UI to browse a single S3 bucket

A self-hostable Go web app to browse, search and (optionally) trigger Glacier restores on an S3 bucket — backed by PostgreSQL for instant browsing

The AWS console is great until you want to give someone a read-only link to a single bucket. Then it’s terrible: you have to mint an IAM user or a federated role, walk them through the console, scope it down, deal with their MFA, and so on. All they wanted was to browse a folder.

s3xplorer started as a weekend POC to play with the AWS Go SDK v2 and the minio client, and turned into the tool I now use to expose a bucket to humans without giving them AWS credentials.

Tools golang aws s3

Go Project Structure: Patterns That Scale

Practical guide to structuring Go projects from flat layouts to hexagonal architecture, with examples for CLIs, APIs, and monorepos

Go doesn’t enforce a project layout. That freedom is powerful but requires discipline — start simple and let structure emerge as complexity grows.

Golang golang project-structure best-practices

Using Go Modules Hosted in a Private GitLab Repository

Configure Go, GitLab CI job tokens, and .netrc to seamlessly consume private Go modules from internal GitLab repositories

When your Go project depends on an internal library living in a private GitLab repository, a plain go get will fail — GitLab doesn’t know who is asking, and Go doesn’t know the repository is private. Fortunately, a handful of configuration steps sorts everything out, both locally and in CI.

DevOps golang gitlab cicd

gitlab-backup: Back Up and Restore GitLab Projects from the Command Line

A CLI tool to back up and restore GitLab projects or groups, with S3 support, hooks, and concurrent exports

gitlab-backup: Back Up and Restore GitLab Projects from the Command Line

Source code: github.com/sgaunet/gitlab-backup

When you self-host GitLab or rely heavily on gitlab.com for your projects, having an independent backup strategy is essential. GitLab’s own backup mechanism works well at the instance level, but sometimes you need something more surgical: back up a single project, or an entire group, on demand, and store the result locally or in S3. That’s what gitlab-backup does.

DevOps gitlab backup cli

perplexity-go: a Go library for the Perplexity API

A lightweight, idiomatic Go client for Perplexity AI — chat completions, the Search API, and a few notes from the maintainer

I’ve been maintaining perplexity-go for a while now — a small Go client for the Perplexity AI API. It started as scratching my own itch (I needed a CLI to query Perplexity from scripts) and grew into a library I now reach for whenever a Go project needs real-time, cited answers from the web.

This post is a tour of what it does, why it exists, and how to use it.

Golang golang perplexity ai