<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/lobsters/best-of/2026/05" -->

---
title: Best Lobsters posts — May 2026 | daily.dev
description: The most upvoted Lobsters posts from May 2026, curated by the daily.dev community.
canonical: https://daily.dev/sources/lobsters/best-of/2026/05
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/lobsters/best-of/2026/05
og:type: website
og:site_name: daily.dev
og:title: Best Lobsters posts — May 2026 | daily.dev
og:description: The most upvoted Lobsters posts from May 2026, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Lobsters — May 2026

1. 1  
[](https://daily.dev/posts/just-fucking-use-go-5rdt9b0j2 "Just Fucking Use Go")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
Just Fucking Use Go  
A blunt, opinionated argument for using Go as the default backend language. Covers Go's intentional simplicity, powerful standard library (net/http, database/sql, encoding/json, context, io.Reader/Writer), built-in tooling (gofmt, go test, pprof, race detector), goroutine-based concurrency, straightforward dependency management via go.mod, and single-binary deployment. Argues against over-engineering with microservices, heavy frameworks, ORMs, and complex deployment pipelines. Includes practical code examples for a web server, parallel HTTP fetcher, and a CRUD handler with Postgres.  
93  
14
2. 2  
[](https://daily.dev/posts/why-tuis-are-back-by-alcides-fonseca-kzt8sv2vd "Why TUIs are back by Alcides Fonseca")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
Why TUIs are back by Alcides Fonseca  
TUIs (Terminal User Interfaces) are experiencing a resurgence as native GUI frameworks on Windows, macOS, and Linux have fragmented or declined in quality. Windows has cycled through MFC, WPF, Silverlight, WinUI, and MAUI without coherent direction. macOS is breaking its own Human Interface Guidelines with recent design decisions. Electron apps fill the gap but lack visual consistency and keyboard-driven workflows. Attempts to start fresh — like Google's Flutter/Fuchsia or Zed's custom GPU renderer — face adoption challenges. TUIs win by being fast, automatable, OS-agnostic, and remotely accessible. The post concludes with a call for developers to take UI theory seriously as a core engineering discipline, not a soft skill.  
84  
3
3. 3  
[](https://daily.dev/posts/potential-consequences-of-using-postgres-as-a-job-queue-kcv0c9q1v "Potential Consequences of Using Postgres as a Job Queue")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
Potential Consequences of Using Postgres as a Job Queue  
Using Postgres as a job queue works fine at low concurrency, but breaks down at scale due to MultiXact SLRU contention, table bloat, and WAL overhead. The post explains the mechanics behind these failures — including how SELECT FOR UPDATE SKIP LOCKED triggers MultiXact ID accumulation, how MVCC dead tuples outpace autovacuum, and how ProcArray lock contention compounds the problem. Alternatives are compared: advisory locks (lightweight, stays in Postgres), pgq and PgQue (batch-oriented, no row-level locking), Redis (sub-millisecond dispatch, at-least-once delivery), and Kafka (massive scale, event replay). A decision table helps teams choose based on concurrency and durability requirements.  
70
4. 4  
[](https://daily.dev/posts/zig-vs-rust-in-2026-hhp61o6ff "Zig vs Rust in 2026")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 17w  
Zig vs Rust in 2026  
A developer who previously favored Zig over Rust for unsafe/low-level code revisits that stance in 2026\. The core argument: Zig's ergonomic advantages (allocator interface, arbitrary bit-width integers, packed structs, comptime) were designed for human developers, but AI coding agents have made those ergonomic wins irrelevant. Meanwhile, Rust's stronger type system enforces more invariants that prevent agent-generated bugs, and Rust's memory safety guarantees become more valuable as agents produce vastly more code that needs to be audited. The author concludes that Rust is now the better choice precisely because coding agents eliminate the productivity penalty of fighting the borrow checker.  
68  
4
5. 5  
[](https://daily.dev/posts/a-love-letter-to-neovim-kfxdyazxe "A Love Letter to Neovim")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 15w  
A Love Letter to Neovim  
A personal reflection on 15 years of using Vim and Neovim, arguing that Neovim's modal editing grammar, composability, speed, and programmability make it uniquely valuable compared to GUI-first editors like VS Code or JetBrains. Key points include Neovim's text-editing language (motions, text objects, macros), its philosophy of integrating with the shell rather than replacing it, the ownership of a plain-file config in git, and how modern additions like built-in LSP, Treesitter, and Lazy.nvim modernized the tool without sacrificing its core strengths.  
55  
6
6. 6  
[](https://daily.dev/posts/your-container-is-not-a-sandbox-dkskd3kl8 "Your Container Is Not a Sandbox")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
Your Container Is Not a Sandbox  
Containers share a kernel and are not a true security boundary — a point proven by 8+ container escape CVEs in 18 months. MicroVMs, powered by hardware virtualization (Intel VT-x/AMD-V), provide genuine isolation: Firecracker boots in \~125ms with <5 MiB overhead, making the 'VMs are slow' objection obsolete. The post surveys the entire microVM landscape: Firecracker vs. Cloud Hypervisor trade-offs (scalpel vs. Swiss Army knife), the rust-vmm shared crate ecosystem (the real revolution, not any single VMM), gVisor as a complementary alternative for GPU workloads, and a dozen AI sandbox platforms (E2B, Vercel Sandbox, AWS Bedrock AgentCore, Modal, etc.) that converged on microVMs to safely run AI-generated code. Kubernetes integration via Kata Containers, Edera, and KubeVirt is covered. The conclusion: the microVM ecosystem was battle-tested years before agentic AI created demand — it just needed to be discovered. The ideal end state is containers-inside-VMs, where developers see containers and security teams see hardware-isolated VMs.  
26  
1
7. 7  
[](https://daily.dev/posts/this-wasm-interpreter-fits-in-a-qr-code-9joneseox "This Wasm interpreter fits in a QR code")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
This Wasm interpreter fits in a QR code  
A developer built a fully functional WebAssembly interpreter that fits inside a QR code — just 2944 bytes as a static x86-64 Linux ELF binary. The post details the extreme size-coding techniques used: custom linker scripts to merge ELF sections, eliminating libc with direct Linux syscalls, CRC32-based WASI function hashing, single-pass execution with a break\_level integer instead of two-pass parsing, pinning globals to x86 registers, hand-crafted jump tables, self-modifying code for comparison opcodes, x87 FPU tricks for int-to-float conversions, parity flag abuse for min/max, and finally a custom arithmetic-coding compressor (similar to Crinkler but for 64-bit Linux) that reduces binary size by \~40%. The interpreter implements the Lime1 Wasm feature set and enough WASI to run programs like the Rust guessing game and QuickJS.  
21
8. 8  
[](https://daily.dev/posts/coding-on-paper-jcfcpkzfc "Coding on Paper")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 16w  
Coding on Paper  
A programmer shares their three-month experience using the Onyx BOOX 25.3" Mira Pro Color e-ink monitor as a primary desktop display. The post covers practical adaptations needed: switching to high-contrast light themes in Neovim, Zed, and Ghostty, using a reverse-engineered Node.js package for keybinding-controlled rendering modes, and managing the trade-off between two modes — one optimized for reading sharpness, another for lower typing latency. The author notes the color panel makes the screen darker than a monochrome alternative and requires some backlight in low-light conditions. Not a recommendation, but an honest experience report from a working programmer who values natural light and minimalist setups.  
45  
6
9. 9  
[](https://daily.dev/posts/ascetic-computing-lg9lfjwtu "Ascetic Computing")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 17w  
Ascetic Computing  
A personal essay exploring 'ascetic computing' as a philosophy of intentional simplicity, focus, and principled tool choices. The author outlines three core principles: avoiding things that compromise personal standards, overcoming fear of missing out, and resisting the endless pursuit of new shiny tools. Practical tool choices include OpenBSD, Vim, Dillo browser, and Ruby scripting. The piece argues for learning durable fundamentals (Unix, programming basics) over transient proprietary knowledge, embracing creative constraints as a path to better work, and recognizing that modern cheap hardware is already powerful enough for most needs. The author also distinguishes asceticism from minimalism, describing a 'maximalist' collection of used, low-cost computers each serving a focused purpose.  
17
10. 10  
[](https://daily.dev/posts/nginx-rift-achieving-nginx-remote-code-execution-via-an-18-year-old-vulnerability-stsyzlmrh "NGINX Rift: Achieving NGINX Remote Code Execution via an 18-Year-Old Vulnerability")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 17w  
NGINX Rift: Achieving NGINX Remote Code Execution via an 18-Year-Old Vulnerability  
Depthfirst's autonomous code analysis system discovered 4 memory corruption vulnerabilities in NGINX, including a critical heap buffer overflow (CVE-2026-42945, CVSS 9.2) that has existed since 2008 and affects NGINX versions 0.6.27 through 1.30.0\. The flaw resides in the script engine's two-pass evaluation of rewrite and set directives: a question mark in a rewrite replacement permanently sets the is\_args flag, but the length-calculation sub-engine is zeroed out, causing it to undercount the buffer size. The copy pass then escapes URI characters (expanding 1 byte to 3), overflowing the heap. A working RCE proof of concept was developed using heap feng shui to corrupt an adjacent pool's cleanup pointer, spraying fake ngx\_pool\_cleanup\_s structures via POST bodies to redirect execution to libc system. The exploit works reliably due to NGINX's deterministic multi-process memory layout. Patches were released by F5 on May 13, 2026.  
16
11. 11  
[](https://daily.dev/posts/gram-2-0-0-released-usz0ttopl "Gram 2.0.0 released")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 17w  
Gram 2.0.0 released  
Gram 2.0.0 has been released, a major version bump driven primarily by breaking changes to default settings rather than sweeping new features. Key changes include: relative line numbers are now off by default, panel icons are enabled when an icon theme is set, and language server auto-updates are now opt-in. New additions include smooth scrolling (disabled by default), Mermaid diagram rendering in Markdown preview, improved Supertab completion, RPM repository support, Arch Linux packages, and a new website at gram-editor.com. Several bugs were fixed across LSP handling, Markdown preview, git graph, file watching, and platform-specific issues on X11 and macOS.  
15
12. 12  
[](https://daily.dev/posts/what-is-a-dickover--ueqw4uysr "What Is a Dickover?")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 15w  
What Is a Dickover?  
John Gruber coins the term 'dickover' to describe modal panels, popovers, or curtains that websites and apps use to deliberately obscure content and force unwanted interactions — cookie consent banners, newsletter sign-up prompts, app install requests, and similar interruptions. He distinguishes dickovers (full modal blockers, design felonies) from dickbars (partial, non-modal obstructions, design misdemeanors), and notes that paywalls don't qualify since they serve a necessary function. The term emerged from a Mastodon poll and Gruber argues its stickiness will come from adoption and usage rather than descriptiveness.  
47  
15
13. 13  
[](https://daily.dev/posts/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility-6tqta4hya "The text mode lie: why modern TUIs are a nightmare for accessibility")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
The text mode lie: why modern TUIs are a nightmare for accessibility  
Modern TUI frameworks like Ink (React-based) and Bubble Tea treat the terminal as a 2D canvas rather than a linear text stream, making them deeply hostile to screen readers. Unlike CLIs that use stdin/stdout linearly, TUIs constantly redraw the screen by teleporting the cursor to update spinners and timers, causing screen readers like Speakup and NVDA to spam users with fragmented, out-of-order audio. The gemini-cli tool is used as a case study showing how reactive rendering causes crashes, input lag of up to 10 seconds, and NVDA instability. Older tools like nano, vim, and Irssi work for blind users because they allow hiding the cursor or use VT100 scrolling regions that minimize screen rewrites. The post also criticizes Google for silencing accessibility bug reports via stale-bot automation. The conclusion urges terminal developers to abandon declarative canvas-style UI frameworks in favor of simple linear CLI output when accessibility matters.  
14
14. 14  
[](https://daily.dev/posts/the-llm-is-not-a-junior-engineer-g2vdxqqju "The LLM Is Not a Junior Engineer")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 19w  
The LLM Is Not a Junior Engineer  
A critical examination of how LLMs are being incorporated into software development teams, arguing against anthropomorphizing AI as 'junior engineers.' Covers the nondeterministic nature of LLMs and why that makes debugging and reliability hard, the illusion of control from prompting folklore, the dangers of cognitive surrender under management pressure, the unpredictability of token-based billing and coming price hikes, the unreliability of velocity metrics used to justify AI adoption, and the risks of over-dependence on a single vendor. Offers practical guidance: define what 'human in the loop' actually means, never let AI take both sides of a quality control relationship, use LLMs for accidental complexity not essential complexity, and regularly ask what happens if the AI goes away.  
14  
4
15. 15  
[](https://daily.dev/posts/screw-you-realtek-sfcz4wjay "Screw you Realtek")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 18w  
Screw you Realtek  
A homelab Kubernetes cluster running on Lenovo M75 boxes with Realtek RTL8111/8168 NICs experienced soft-hangs, fixed by switching from the in-kernel r8169 driver to the out-of-tree r8168-dkms driver. Later, after moving house, one node showed severely degraded network throughput (3.45 Mbit/s vs \~987 Mbit/s). Binary-chopping iperf MSS values revealed a hard threshold at 7372 bytes — above that, performance collapsed. The culprit turned out to be the r8168 driver itself causing issues on the RX path with jumbo frames. Switching back to r8169 resolved the problem entirely, making the original fix the new bug.  
13  
1
16. 16  
[](https://daily.dev/posts/async-i-o-in-zig-0-16-today-tn11ikcsj "Async I/O in Zig 0.16, today")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 16w  
Async I/O in Zig 0.16, today  
Zig 0.16 introduced std.Io, a cross-platform I/O and concurrency interface, but the only working implementation (std.Io.Threaded) spawns OS threads, making it unsuitable for high-concurrency workloads. The author presents zio 0.11, a drop-in std.Io implementation using stackful coroutines and native async OS APIs (io\_uring/epoll on Linux, kqueue on BSD/macOS, IOCP on Windows). A benchmark shows 10,000 concurrent sleeping tasks completing in \~10 seconds with zio versus \~20 seconds with the threaded implementation, and zio scales to 50,000+ tasks without hitting OS thread limits. The API is nearly identical to std.Io.Threaded — just initialize a zio runtime and pass its io() handle anywhere std.Io is expected, including std.http.Server.  
13  
1
17. 17  
[](https://daily.dev/posts/points-are-a-weird-and-inconsistent-unit-of-measure-liinsfkkh "Points are a weird and inconsistent unit of measure")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 17w  
Points are a weird and inconsistent unit of measure  
A deep dive into why LaTeX and Inkscape use different definitions of a 'point' as a unit of measure. LaTeX uses 1/72.27 inches (the TeX point, tweaked by Donald Knuth for cleaner arithmetic), while Inkscape uses 1/72 inches (the PostScript/CSS point, originating from Apple's LaserWriter). The historical trail traces back to inconsistent 19th-century American typographic standards, PostScript's deliberate rounding, and how that rounding propagated through CSS, SVG, and SVG editors. The difference is only 0.4% but causes real layout mismatches when mixing the two systems.  
11  
1

[See all Lobsters archives](/sources/lobsters/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/lobsters/best-of/2026/05#page","url":"https://daily.dev/sources/lobsters/best-of/2026/05","name":"Best Lobsters Posts — May 2026","description":"The most upvoted Lobsters posts from May 2026, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/lobsters/best-of/2026/05#items","numberOfItems":17,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/just-fucking-use-go-5rdt9b0j2","name":"Just Fucking Use Go"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/why-tuis-are-back-by-alcides-fonseca-kzt8sv2vd","name":"Why TUIs are back by Alcides Fonseca"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/potential-consequences-of-using-postgres-as-a-job-queue-kcv0c9q1v","name":"Potential Consequences of Using Postgres as a Job Queue"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/zig-vs-rust-in-2026-hhp61o6ff","name":"Zig vs Rust in 2026"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/a-love-letter-to-neovim-kfxdyazxe","name":"A Love Letter to Neovim"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/your-container-is-not-a-sandbox-dkskd3kl8","name":"Your Container Is Not a Sandbox"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/this-wasm-interpreter-fits-in-a-qr-code-9joneseox","name":"This Wasm interpreter fits in a QR code"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/coding-on-paper-jcfcpkzfc","name":"Coding on Paper"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/ascetic-computing-lg9lfjwtu","name":"Ascetic Computing"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/nginx-rift-achieving-nginx-remote-code-execution-via-an-18-year-old-vulnerability-stsyzlmrh","name":"NGINX Rift: Achieving NGINX Remote Code Execution via an 18-Year-Old Vulnerability"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/gram-2-0-0-released-usz0ttopl","name":"Gram 2.0.0 released"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/what-is-a-dickover--ueqw4uysr","name":"What Is a Dickover?"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility-6tqta4hya","name":"The text mode lie: why modern TUIs are a nightmare for accessibility"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/the-llm-is-not-a-junior-engineer-g2vdxqqju","name":"The LLM Is Not a Junior Engineer"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/screw-you-realtek-sfcz4wjay","name":"Screw you Realtek"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/async-i-o-in-zig-0-16-today-tn11ikcsj","name":"Async I/O in Zig 0.16, today"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/points-are-a-weird-and-inconsistent-unit-of-measure-liinsfkkh","name":"Points are a weird and inconsistent unit of measure"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"Lobsters","item":"https://daily.dev/sources/lobsters"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/lobsters/best-of"},{"@type":"ListItem","position":5,"name":"May 2026"}]}]}
```

