#​463 — June 6, 2023

Unsub  |  Web Version

Together with  Courier logo

Go Weekly

Goxygen 0.4: Quickly Generate a Go Backend for a JavaScript Project — A tool that sets up a new Go-based project with Angular, React, or Vue on the front-end, Go in the back, and Docker and Docker Compose files to spin it all up. It’s been around a few years, but has just added Vue 3.3 support and a Vite-based Vue template.

Sasha Shpota

A Quick Crash Course on Go Generics — The generics fever around v1.18's release has quietened down a lot, and they're now a fundamental part of Go. If you’ve been waiting for things to calm down before jumping in, this brief, code-led post showing off the basic ideas provides an entry point.

Jon Calhoun

Jon has also written about what tildes (~) mean in generics, as well as a similar 'crash course' on interfaces.

Better Automations & Template Design for Email APIs in Go — Stop installing this > go get github․com​/sendgrid​/sendgrid-go and instead install > go get -u github․com/​trycourier/​courier-go/v2 and manage all of your email/SMS/Push APIs in our UI. Courier.com makes notification management simple.

Courier.com sponsor


ChatGPT, Wardley Maps, and Go — There’s a lot mixed in here, and it’s not even finished yet: how to create a ChatGPT plugin, serve an API from Go, the basics of Wardley maps (a type of business strategy diagram), and handling SVG images.

Olivier Wulveryck

▶  Why Static Typing Came Back — This developer preferred dynamic typing but noticed the rapidly increasing popularity of statically typed languages like TypeScript, Rust, and Go. He looks at the history, the shift, and why he doesn’t think the pendulum will swing back again.

Richard Feldman

Practical Tips for Organizing Kubernetes RBAC — Learn how a clearly developed RBAC strategy can help you with security and compliance issues.

Teleport | goteleport․com sponsor

Building Our First GraphQL Server with Go: An Implementation Guide
Kutlu Eren (Trivago)

🛠 Code & Tools

When 1.0: Natural Language Date/Time Parser — We first linked to this project over six years ago(!) so it’s great to see it hit v1.0. The idea is simple: given a string like “tonight at 11:10 pm” or “next wednesday at 4:20 a.m”, you get the time object you need. Includes rules for English, Portuguese, and Russian.

Oleg Lebedev

Pnutmux: Flexible Go Web Request Router — A Web framework that uses regex for matching and handling HTTP requests. It also provides CORS handling, structured logging, URL param extraction, middleware support, and concurrency limiting.

Agity Inc.

Auth. Built for Devs, by Devs — Easily add login, registration, SSO, MFA, user management and a bazillion more auth features to your Go application.

FusionAuth sponsor

email-verifier: Verify Email Addresses Without Sending Mail — Offers a few different approaches, from validating whether a string is even formatted as a valid email address, through to looking up the domain’s MX records, and asking the remote SMTP server.


Local Git Contributions Visualizer — A Go-powered tool that can generate a visual representation of overall git activity on repos. A bit like GitHub’s “heatmap” but you can run it offline and on repos not necessarily stored on GitHub.

Abdullah Alaadine

Miller 6.8: A Go-Powered Textual Data File Swiss Army Knife — Like awk, sed, cut, join, and sort, all in a single place, for data formats such as CSV, TSV, and JSON. Think jq but for CSV, perhaps.

John Kerl


Join the Gno.land Team — Get to gno us! Sign up for a Q&A with our team to learn about joining Gno.land and building the next-gen smart contract platform.

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

A Go + Svelte Desktop App Example

Template Based, Dynamic Image Batch Generation Tool — It’s not the tool itself that’s the most interesting thing here (though if you need to generate images en masse from templates and CSVs, you might disagree) but that it’s an example of a Wails-based desktop app using Svelte for the UI and Go for the heavy lifting.