Cached at:
06/29/26, 10:28 AM
TL;DR: Lightning talks at Gleam Gathering 2026 covered OpenTelemetry wrapping, Luster HTML vs SPA comparison, a receipt printer DSL, a humorous native backend build process, and Minecraft data generation, showcasing practical tools and experimental projects in the Gleam ecosystem.
## Open Gleam Telemetry — Kira
Kira introduced a tiny wrapper called "alle glemetry" for integrating Open Telemetry into Gleam. By creating spans with attributes and duration, developers can offload application metrics to external tools like Grafana without interfering with actual runtime.
In the example code, a simple "hello world" program records a span visible in Grafana, including a custom attribute (e.g., `sum`). Kira also demonstrated leveraging Erlang BEAM's "let it crash" philosophy: capturing crash reports and sending errors to Open Telemetry instead of traditional terminal output. Crash spans are colored red, containing the full crash report and a link to the original function code.
## Luster: SPA or Plain HTML? — Speaker not specified
The speaker compared two functionally identical websites (blue and green versions) and tested user experience (e.g., browser back, form editing, scroll position retention). The blue version is a single-page app built with Luster, while the green version is plain HTML generated solely with Luster's HTML DSL. Surprisingly, the green (HTML) version behaved more "naturally": data was preserved on back navigation, and list positions were maintained. The blue (SPA) version suffered from data loss and scroll reset.
The speaker noted that the plain HTML version had about one-third less code than a React version and fully leveraged native browser capabilities (e.g., light/dark mode, responsive sidebar, CSS animations). They concluded: once you pull in a browser library, you lose the advantages of a single-page app.
## Receipt Printer SPOS S+ — Speaker not specified
The speaker implemented a Gleam library for vintage receipt printers (SPOS S+). The initial API was inspired by Python/Rust, supporting centering, text, newlines, USB/network connections. Later, it was refactored into a more Gleam-idiomatic DSL that automatically restores context via style blocks (e.g., automatically disables bold after usage). Image printing required dithering; the speaker borrowed Jack's dithering code and used bit syntax to parse PGM/PBM formats (Paris Performance Format). The final project can convert PNG to PBM and print, and includes a small service for printing photos.
## Humorous Challenges of a Native Backend — Speaker not specified
The speaker self-deprecatingly demonstrated a build script that compiles Gleam code into a native binary. The pipeline: JavaScript → WebAssembly → C → native binary, joking that "the build process is better than Rust". The build failed during the demo, drawing laughter from the audience. The binary size was about 20KB, which the speaker attributed to "atom-splitting (Chipping)". They invited everyone to copy the build script to run it in Germany, emphasizing that it's merely a "wing backend", not a real native backend.
## Generating Minecraft Data in Gleam — Zubs Zack
Zack introduced his project `datamine`, which generates Minecraft data into Gleam code to support his Minecraft server `betamine` (fully implemented in Gleam, from the network layer to business logic). He hopes to learn Gleam and functional programming backend skills through this project, driven by a long-standing passion for Minecraft. The project is not affiliated with Microsoft or Mojang, and is currently in its early stages.
## Source
Gleam Gathering 2026 Lighting Talks (https://www.youtube.com/watch?v=rh2ePzHIQmU)