---
title: "Bubble Tea brews up a 1.0 release"
publication: "Go Weekly"
issue: 521
published_at: "2024-09-03"
canonical_url: "https://golangweekly.com/issues/521"
---

Plus a Go-powered blogging system, text editor, and JavaScript runtime all walk into a newsletter.. |        

#​521 — September 3, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/521)  

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dafig3s7m2gltbxg3ub3.jpg)](https://go.dev/blog/unique)  

[Go 1.23's New `unique` Package](https://go.dev/blog/unique) — The package’s purpose is to make comparing values more efficient by using deduplication to point to unique, canonical copies, a concept called _interning._ Some knowledge is required, but Michael walks through everything you need to know, including a practical example. 

Michael Knyszek (Go Team)   

[Tips for Building Bubble Tea Programs](https://leg100.github.io/en/posts/building-bubbletea-programs/) — [Bubble Tea](https://github.com/charmbracelet/bubbletea) is a powerful Go framework for building terminal user interfaces (TUIs). Louis has spent a lot of time building [PUG](https://github.com/leg100/pug) (a Terraform TUI) and shares the fruits of his experience here. 

Louis Garman   

🥳 And, happily, _Bubble Tea_ just [celebrated reaching version 1.0!](https://github.com/charmbracelet/bubbletea/releases/tag/v1.0.0) And was then quickly followed with [v1.1](https://github.com/charmbracelet/bubbletea/releases/tag/v1.1.0) which adds focus and blur window events.  [![\](https://copm.s3.amazonaws.com/159acc09.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go Beyond Limits with Golang, Rust, Docker & K8’s](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Struggling with tech challenges? Ardan Labs offers unparalleled consulting in Go, Rust, Docker, and Kubernetes. Enhance your development speed, optimize your architecture, and manage tech debt. Propel your team to new heights with our expertise! 

Ardan Labs Consulting sponsor   

[Slices in Go: Grow Big or Go Home](https://victoriametrics.com/blog/go-slice/) — A deep dive into slices that focuses on how slices grow, something that can bite you right in the code when you don’t understand it. For example, do you know when (and why) a slice ends up on the heap (or not)? 

Phuong Le (VictoriaMetrics)   

**IN BRIEF:** 

- There's an active proposal to introduce [a package that brings weak pointers/references to Go.](https://github.com/golang/go/issues/67552)
- [Go-HTMX](https://gitlab.com/go-htmx/go-htmx), an approach building frontend UI components in Go, rather than JavaScript, has just reached version 1.0.
- Matt Boyle has [opened up a waitlist](https://www.bytesizego.com/grpc-with-go) for Chris Shepherd's forthcoming _Building Production-Ready Services with gRPC and Go_ course.
- 🇰🇷 [GopherCon Korea 2024](https://gophercon.kr/en) is taking place this year in Hanam (near Seoul) on October 12-13.   

[Dumb Ways to Die: Random Values in Pointers](https://philpearl.github.io/post/dumb_ways_to_die_random_pointers/) — Storing non-pointer values in `unsafe.Pointer` is.. a Bad Idea™, but _why?_ What happens? The journey and answer could help you better understand pointers and `unsafe.` 

Phil Pearl   

[Mastering ISO 8583 Message Networking with Go](https://alovak.com/2024/08/27/mastering-iso-8583-message-networking-with-golang/) — [ISO 8583](https://en.wikipedia.org/wiki/ISO_8583) is an interchange standard for card-based financial transactions (such as from a point-of-sale terminal or ATM). 

Pavel Gabriel   

📄 [Building Terminal Applications in Go](https://harrisoncramer.me/terminal-applications-in-go/) – With Bubble Tea, Cobra, and Viper. Harrison Cramer 

📄 [Building Go Stack Traces from BPF](https://www.grant.pizza/blog/go-stack-traces-bpf/) – Based on work being done by Grant to improve Datadog’s Go instrumentation. Grant Seltzer 

📄 [Exploring Goja: A Go-Powered JavaScript Runtime](https://jtarchie.com/posts/2024-08-30-exploring-goja-a-golang-javascript-runtime) JT Archie 

📺 [Shallow vs Deep Copying in Go](https://www.youtube.com/watch?v=9unISDZ6OqQ) Adib Hanna  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pbdiwkt1ztf2ywgazib6.jpg)](https://tunalog.org/en-us/index.html)  

[Tunalog: A No-Install Blogging System Built in Go](https://tunalog.org/en-us/index.html) — With Markdown, theming support, and Web-based editing, Tunalog provides all a simple blog framework needs. It’s been _two years_ in the making, but its creator is finally happy with it, and judging by the screenshots it’s pretty slick. It’s cross-platform and uses SQLite. 

Yami Odymel   

[wp2hugo: A WordPress to Hugo Blog Migrator](https://github.com/ashishb/wp2hugo) — [Hugo](https://gohugo.io/) is a popular Go-powered static site generator and this tool makes it easy to convert WordPress-powered blogs over to it, including lots of edge cases WordPress’s REST API doesn’t help with. 

Ashish Bhatia   

[Kafka-Compatible Data Streaming That Reduces Costs and Ops Burden](https://www.warpstream.com/bring-your-own-cloud-kafka-data-streaming?utm_source=golang_weekly&utm_medium=email&utm_campaign=september_3_2024_sponsored_link) — Zero ops auto-scaling. Perfect provisioning. 10x cheaper than Kafka. Try WarpStream for free and get $400 in credits. 

WarpStream sponsor   

[GoForge: A CLI Tool to Streamline Go Project Initialization](https://github.com/tz3/goforge) — Rather than manually creating files and directories to set up a project’s structure, GoForge provides a one-line alternative. 

Moutaz Chaara   

[BadgerDB 4.3: A Fast, Embeddable Key-Balue DB in Go](https://github.com/dgraph-io/badger) — Designed as a performant alternative to non-Go-based key-value stores like RocksDB. [Docs.](https://dgraph.io/docs/badger) 

Dgraph   

[hyrumtoken: A Package to Encrypt Pagination Tokens](https://github.com/ssoready/hyrumtoken) — For when you don’t want API clients to access unintended 'features' of your pagination related parameters, say. 

SSOReady   

- [FrankenPHP 1.2.5](https://github.com/dunglas/frankenphp/releases/tag/v1.2.5) – Modern Go-powered PHP app server. There's also a new guide explaining [how to get the most performance from it.](https://frankenphp.dev/docs/performance/)
- [FerretDB 1.24](https://github.com/FerretDB/FerretDB) – A database that acts like MongoDB but uses Postgres for storage.
- [gRPC-Go 1.66](https://github.com/grpc/grpc-go/releases/tag/v1.66.0) – Go implementation of gRPC for HTTP/2 based RPC.
- [Viddy 1.1](https://github.com/sachaos/viddy) – A modern Go-powered `watch`alternative.
- [OpenFGA 1.6](https://github.com/openfga/openfga/releases/tag/v1.6.0) – Google Zanzibar-inspired authorization engine.
- [go-enry 2.8.9](https://github.com/go-enry/go-enry) – Programming language detection CLI/library.
- [pdfcpu 0.8.1](https://github.com/pdfcpu/pdfcpu/releases/tag/v0.8.1) – Go PDF processor.  

🎁 And one for fun.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nbktzphwxyqsm3kemv5y.jpg)](https://micro-editor.github.io/)  

[µ micro: A Go-Powered Terminal-Based Text Editor](https://micro-editor.github.io/) — Aiming to be “somewhat of a successor to the nano editor”, Micro has been under development for several years and is a mature and good example of building a text editor in Go. [GitHub repo.](https://github.com/zyedidia/micro) 

Zachary Yedidia et al.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
