Best of LobstersApril 2026

  1. 1
    Article
    Avatar of lobstersLobsters·7w

    I used AI. It worked. I hated it.

    A developer with strong anti-genAI views shares their experience using Claude Code to build a certificate generation tool for a learning platform migration. The project succeeded — the Rust/Svelte app is in production — but the process felt miserable. Key observations: TDD with plan-mode kept the model on track, Rust's compile-time safety helped catch hallucinations, a security audit pass found real vulnerabilities (path traversal, timing side-channel in Argon2), and the tool delivered features the author wouldn't have built alone. Despite the functional success, the author warns about the 'human in the loop' problem — the process actively encourages disengagement — and reflects on cognitive dependency, skill atrophy for junior developers, IP theft concerns, and the broader societal harms. The conclusion is nuanced: it works in this narrow domain, the harms still outweigh benefits at scale, but condemning individuals for using it is counterproductive.

  2. 2
    Article
    Avatar of lobstersLobsters·6w

    The Business Case for Vanilla JS

    A developer argues for using Vanilla JS and native browser APIs over SPA frameworks like React for production web apps. The core argument is that React's abstraction leaks heavily (hooks, hydration, component trees), browser APIs are stable and well-documented, and plain JS is simpler to maintain long-term. The author shares personal experience abandoning Preact mid-project in favor of direct DOM manipulation, finding it easier and more reliable. The post challenges the assumption that modern frameworks are necessary or superior for most use cases.

  3. 3
    Article
    Avatar of lobstersLobsters·3w

    Ditching GitHub

    A developer who has maintained the Telethon Python library since 2014 shares their frustrations with GitHub's aggressive AI integration and the broader AI hype cycle. They announce migrating their projects to Codeberg, a non-profit code forge, citing GitHub's declining quality, AI crawler abuse of self-hosted servers, LLM-generated code slop flooding open source projects, and concerns about AI's environmental, social, and labor impacts. The author stops short of fully leaving GitHub due to link-rot concerns and the social capital of 12,000 stars, but advocates for owning your code and hardware.

  4. 4
    Article
    Avatar of lobstersLobsters·5w

    GitHub - xataio/xata: Open source, cloud native, Postgres platform with copy-on-write branching and scale-to-zero

    Xata has open-sourced its cloud-native Postgres platform, previously powering its managed cloud service. Built on Kubernetes using CloudNativePG and OpenEBS, it offers copy-on-write branching (enabling TB-scale Postgres copies in seconds), scale-to-zero compute, auto-scaling, high availability, PITR backups, and a serverless SQL driver over HTTP/WebSockets. Primary use cases are internal Postgres-as-a-Service platforms and ephemeral dev/preview/test environments. The platform requires a Kubernetes cluster and is not recommended for single-instance deployments. Licensed under Apache 2.0.

  5. 5
    Article
    Avatar of lobstersLobsters·6w

    Programming used to be free

    A personal reflection on how free and open-source software democratized programming, enabling people with limited resources to enter the field. The author draws a parallel to the pre-FOSS era of expensive proprietary software and warns that LLM-centric development workflows risk recreating that same plutocracy — where meaningful participation requires expensive hardware or paid subscriptions, locking out hobbyists, developers in underdeveloped countries, and those without institutional backing.

  6. 6
    Article
    Avatar of lobstersLobsters·6w

    GitHub - LaurieWired/tailslayer: Library for reducing tail latency in RAM reads

    Tailslayer is a C++ library that reduces tail latency in RAM reads caused by DRAM refresh stalls. It works by replicating data across multiple independent DRAM channels with uncorrelated refresh schedules, using undocumented channel scrambling offsets compatible with AMD, Intel, and Graviton processors. When a read request arrives, it issues hedged reads across all replicas and uses whichever responds first. The library exposes a template-based HedgedReader API where users provide a signal function (to determine when to read) and a work function (to process the result). It handles address calculation and core pinning internally, acting as a hedged vector with logical indices.

  7. 7
    Article
    Avatar of lobstersLobsters·4w

    Do I belong in tech anymore?

    A design engineer reflects on quitting their job after experiencing burnout driven by the pervasive adoption of AI tools in their workplace and a broader disillusionment with the tech industry's values. They describe specific scenarios where AI was used carelessly — unreviewed code merges, AI-generated code reviews, AI-driven design prototypes — and how the constant friction of deciding whether to push back left them exhausted and alienated. Beyond AI, they mourn the loss of the progressive ideals they believed tech once stood for, citing tech leaders' capitulation to political power and abandonment of climate and equity commitments. They frame their burnout not as mere tiredness but as the 'emotional experience of political defeat' — grief over the loss of an ideal. They are now recovering, pursuing personal projects, and uncertain whether they'll return to full-time tech work.

  8. 8
    Article
    Avatar of lobstersLobsters·7w

    devins.page/dev.css

    dev.css is a tiny (~5.5kb minified) classless CSS framework inspired by new.css that makes plain HTML files look modern and responsive without any class names. It supports semantic HTML elements including header, main, aside (sidebar), and footer. The framework offers optional addons (sticky header, one-line header, scroll-to-top button, responsive sidebar) and themes including Catppuccin and terminal styles. It can be installed via CDN link or npm package and is best suited for simple blogs, personal sites, link pages, or HTML prototyping.

  9. 9
    Article
    Avatar of lobstersLobsters·3w

    Github banned me for no understandable reason

    A developer shares their experience of being unexpectedly banned from GitHub with no explanation, no email notification, and a frustrating support process that required having an active account to appeal. The ban erased all their contributions, comments, and pull requests, and blocked access to features like code search, GitHub Sponsors, CI artifacts, and HACS for Home Assistant. The author speculates the ban may have been triggered by adblocker filter lists, an ad-blocking tool for a VR game, or a joke repo using Unicode text-reversal characters. They urge developers to migrate away from GitHub given the risk of sudden account erasure. The account was reinstated roughly three hours after the post was published, seemingly prompted by the public attention.

  10. 10
    Article
    Avatar of lobstersLobsters·4w

    Emacs is my browser

    A personal account of using EWW (the built-in text-based browser in GNU/Linux) as a primary web browser inside GNU/Linux. The author explains why they moved away from modern browsers (distraction, big tech dependency) and how they configured EWW with keybindings, a self-hosted SearX search engine, and integrations for PDFs, videos, and the gopher/gemini protocols. They acknowledge limitations (no JavaScript-heavy sites, no social media, no banking) but find EWW handles 85-90% of their browsing needs.

  11. 11
    Article
    Avatar of lobstersLobsters·7w

    Someone good at CSS help, my website design is dying

    A developer encounters a subtle CSS rendering issue when trying to add rounded top corners and a border to card-style article elements. The first attempt at applying border-radius to the article element does nothing because child elements overflow their container. Adding border-radius to the header fixes the visual rounding but introduces a white fringe artifact at the border junction. The root cause is anti-aliasing: clipping two overlapping semi-transparent surfaces separately before compositing them causes white to bleed in at the edges. Using overflow: auto on the article element is the more correct approach but still doesn't fully eliminate the artifact, leaving the problem unresolved.

  12. 12
    Article
    Avatar of lobstersLobsters·5w

    Anthropic secretly installs spyware when you install Claude Desktop — That Privacy Guy!

    Claude Desktop silently installs a Native Messaging bridge (com.anthropic.claude_browser_extension.json) into seven Chromium-based browsers on macOS — including browsers not installed on the machine and browsers Anthropic's own documentation says are unsupported. The bridge pre-authorizes three Chrome extension IDs to spawn an out-of-sandbox helper binary with access to authenticated browser sessions, DOM state, form fields, and screen capture. The install happens without user consent, is re-written on every Claude Desktop launch, and is logged internally under 'Chrome Extension MCP'. The author argues this constitutes spyware, violates EU ePrivacy Directive Article 5(3), and potentially breaches computer misuse laws. Eleven specific dark patterns are documented with forensic evidence including file timestamps, MD5 hashes, macOS provenance attributes, and Claude's own log files.

  13. 13
    Article
    Avatar of lobstersLobsters·4w

    Box to save memory

    A Rust developer reduced memory usage from 895 MB to 420 MB by boxing optional structs during JSON deserialization. The key insight is that `Option<BigStruct>` in Rust still occupies the full size of `BigStruct` even when `None`, unlike reference-based languages like Java or Python. The fix involves changing `Option<SmithyReference>` fields to `Option<Box<SmithyReference>>` and implementing a custom Serde deserializer that discards empty structs instead of storing them. Memory measurement was done using jemalloc via a Cargo feature flag. The post also notes that while boxing increases heap fragmentation and adds CPU overhead for deserialization, the overall performance improved due to reduced memory pressure.

  14. 14
    Article
    Avatar of lobstersLobsters·6w

    The difficulty of making sure your website is broken

    Let's Encrypt built a custom Go program to host test certificate websites required for publicly trusted Certificate Authorities. The challenge: maintaining valid, expired, and revoked certificates simultaneously — especially keeping a revoked certificate non-expired. The solution uses the Lego ACME library for certificate issuance and revocation, polls CRLs to confirm revocation status, stores 'next' certificates with staged rollout delays (24h+ for revoked, waiting past expiry for expired), and uses Go's built-in TLS stack with a GetCertificate callback for SNI-based certificate selection. The project is open-source and available for other CAs to use.

  15. 15
    Article
    Avatar of lobstersLobsters·6w

    In defense of GitHub's poor uptime

    GitHub's reported 89.43% uptime over 90 days sounds alarming, but the aggregate number is misleading. Because GitHub tracks ten separate services (Git operations, webhooks, Issues, etc.), any single-service outage counts against the total even if other services remain healthy. Well-isolated services that fail independently actually produce worse-looking aggregate uptime numbers than tightly coupled services that fail together. Looking at individual components, core Git operations had ~99% uptime over the same period. The post argues GitHub's reliability is more like a 'D' than an 'F', and that the 'zero nines' framing is unfair — though GitHub's uptime is still genuinely below acceptable industry standards.