Best of Hacker NewsMarch 2026

  1. 1
    Article
    Avatar of hnHacker News·5w

    Video.js v10 Beta: Hello, World (again)

    Video.js v10.0.0 beta is a ground-up rewrite merging Video.js, Plyr, Vidstack, and Media Chrome into a single modern framework. Key highlights include an 88% reduction in default bundle size (66% even without ABR), a new composable streaming engine called SPF that enables much smaller adaptive bitrate bundles, first-class React and TypeScript support, unstyled UI primitives inspired by Radix/Base UI, and a shadcn-style skin ejection system. The architecture is fully composable — unused features are tree-shaken out. Three presets ship with the beta: video, audio, and background video. New skins were designed by Plyr's creator Sam Potts. GA is targeted for mid-2026, with migration guides for Video.js v8, Plyr, Vidstack, and Media Chrome planned before then.

  2. 2
    Article
    Avatar of hnHacker News·5w

    Is anybody else bored of talking about AI?

    A developer reflects on AI fatigue — the sense that online tech spaces like Hacker News have become saturated with near-identical posts about AI workflows and tooling, crowding out discussion of actual products and problems being solved. The author argues that management's obsession with AI metrics (like tokens per developer) mirrors the old 'lines of code' fallacy, and calls for a return to focusing on the value being created rather than the tools used to create it.

  3. 3
    Article
    Avatar of hnHacker News·5w

    Windows Native App Development Is a Mess

    A developer with a Windows background attempts to build a small native Windows utility app using the latest Microsoft technologies (WinUI 3, Windows App SDK) and documents the painful experience. The post covers the fragmented history of Windows UI frameworks (Win32 → MFC → WinForms → WPF → WinRT → UWP → WinUI 3), the awkward deployment choices (.NET AOT vs framework-dependent), the constant need to fall back to Win32 P/Invoke for basic features, and the poor state of tooling like CsWin32. The author concludes that Microsoft treats native app development as a low priority, and argues that web-based stacks like Electron or Tauri are a more rational choice for most developers.

  4. 4
    Article
    Avatar of hnHacker News·5w

    Wayland set the Linux Desktop back by 10 years

    A critical retrospective on Wayland after 17 years of development, arguing it has been a misallocation of resources that set the Linux desktop back. Key criticisms include: security restrictions that break common workflows (screen recording, copy-paste), unproven performance gains, fragmented protocol implementations leaving basic features like drag-and-drop in beta, and premature forced adoption by KDE and Red Hat before the ecosystem is ready. The author contrasts Wayland's slow 40-50% adoption over 17 years with PipeWire's near-complete audio replacement in ~8 years. Predictions include projects reverting to X11 and a new display protocol eventually displacing both.

  5. 5
    Article
    Avatar of hnHacker News·5w

    GitHub - hectorvent/floci: Light, fluffy, and always free - AWS Local Emulator

    Floci is a free, open-source local AWS emulator designed as a drop-in replacement for LocalStack Community Edition, which is sunsetting its free tier in March 2026. It requires no auth token, supports unlimited CI/CD usage, and starts in ~24ms with ~13 MiB idle memory. The Docker image is ~90 MB versus LocalStack's ~1 GB. Floci supports 20+ AWS services including API Gateway v2, Cognito, ElastiCache, RDS with IAM auth, DynamoDB Streams, and more — with 408/408 SDK tests passing. Setup is a single `docker compose up` and SDK integration requires only pointing the endpoint to localhost:4566.

  6. 6
    Article
    Avatar of hnHacker News·6w

    pgit: What If Your Git History Was a SQL Database?

    pgit is a Git-like CLI that stores repository history in PostgreSQL using delta compression via a custom Table Access Method (pg-xpatch). It lets you query your entire commit history with SQL and provides built-in analyses for churn, coupling, hotspots, bus factor, and activity. Benchmarked against 20 real repositories (273k commits), pgit outcompresses `git gc --aggressive` on 12 out of 20 repos. The tool also works well as an interface for AI agents: a Claude agent produced a full codebase health report on Neon's repo in under 10 minutes using a 4-sentence prompt. pgit is not meant to replace git for daily workflows but excels at programmatic codebase history analysis.

  7. 7
    Article
    Avatar of hnHacker News·5w

    GitHub - creationix/rx: RX encoder, decoder, and CLI data tool

    REXC is a binary data encoding format and library for JavaScript/TypeScript that serves as a drop-in replacement for JSON.stringify/JSON.parse. It claims 18x smaller output through binary-encoded numbers, de-duplicated strings, and shared schemas, plus 23,000x faster single-key lookup via O(log n) binary search directly on encoded bytes. The library returns a Proxy over a flat byte buffer, enabling near-zero heap allocations. It includes a full CLI tool for converting between JSON and REXC, pretty-printing, and inspecting encoding structure. A low-level cursor API enables zero-allocation traversal for performance-critical paths, and an Inspect API exposes a lazy AST mapping 1:1 to the byte encoding.

  8. 8
    Article
    Avatar of hnHacker News·6w

    GitHub - understudy-ai/understudy: An understudy watches. Then performs.

    Understudy is an open-source, teachable desktop AI agent for macOS that operates your computer like a human colleague across GUI, browser, shell, and messaging interfaces. It uses a five-layer architecture: native computer operation, learning from demonstrations, crystallized memory of repeated workflows, route optimization (preferring faster API/CLI paths over GUI over time), and eventual proactive autonomy. Layers 1-2 are fully implemented today. You teach it a task once via screen recording, it extracts intent (not just coordinates), and publishes a reusable SKILL.md. Built on Node.js, model-agnostic (supports Anthropic, OpenAI, Gemini, etc.), with 47 built-in skills and 8 messaging channel adapters.

  9. 9
    Article
    Avatar of hnHacker News·7w

    Nobody ever got fired for using a struct

    A performance investigation at Feldera revealed that SQL tables with hundreds of nullable columns caused significant serialization overhead when mapped to Rust structs. The root issue: rkyv's ArchivedString loses Rust's niche optimization, forcing an explicit Option discriminant, and with 700+ optional fields the archived struct ballooned to 2x the in-memory size. The fix introduces a bitmap-based serialization layout that strips Option wrappers from the archived format and records nullability in a compact bitfield. A further sparse layout stores only present values with relative pointers, dramatically reducing disk I/O for wide, mostly-null rows. The customer's throughput was restored after serialized row size dropped by roughly 2x.

  10. 10
    Article
    Avatar of hnHacker News·7w

    A modern alternative to Protocol Buffer

    Skir is a new declarative schema language for defining data types, constants, and APIs, positioned as a modern alternative to Protocol Buffers. Write schemas in `.skir` files and generate type-safe, idiomatic code for TypeScript, Python, Java, C++, Kotlin, and more. It supports schema evolution with safety checks, RPC-style API definitions similar to gRPC, multiple serialization formats (dense JSON, readable JSON, binary), and cross-project type sharing via GitHub imports. A VS Code extension provides real-time validation, code completion, and formatting.

  11. 11
    Article
    Avatar of hnHacker News·4w

    GitHub - facebookresearch/HyperAgents: Self-referential self-improving agents that can optimize for any computable task

    HyperAgents is a Facebook Research open-source framework for building self-referential, self-improving AI agents capable of optimizing for any computable task. The system uses a meta-agent and task-agent architecture, supports multiple LLM backends (OpenAI, Anthropic, Gemini), and executes model-generated code in a loop to iteratively improve agent behavior. The repository includes setup instructions, experiment logs, and a safety warning about executing untrusted model-generated code. It accompanies an arXiv paper (2603.19461) from Meta AI Research.

  12. 12
    Article
    Avatar of hnHacker News·5w

    GitHub - t8/hypura: Run models too big for your Mac's memory

    Hypura is a storage-tier-aware LLM inference scheduler for Apple Silicon that enables running models larger than physical memory by intelligently placing tensors across GPU, RAM, and NVMe tiers. It supports three inference modes: full-resident (model fits in GPU+RAM), expert-streaming for MoE models like Mixtral (exploiting sparsity so only 2/8 experts fire per token, achieving 99.5% neuron cache hit rate), and dense FFN-streaming for large dense models like Llama 70B. On an M1 Max 32 GB machine, it runs a 31 GB Mixtral at 2.2 tok/s and a 40 GB Llama 70B at 0.3 tok/s — both of which crash vanilla llama.cpp with OOM. It exposes an Ollama-compatible HTTP API, builds with Cargo (Rust), and requires no manual tuning as pool sizes and prefetch depth are computed automatically from hardware profiling.

  13. 13
    Article
    Avatar of hnHacker News·6w

    The Cost of Indirection in Rust

    Function call indirection in Rust async code is almost never a real performance concern. The Rust compiler in release mode frequently inlines extracted helper functions, producing identical assembly to inlined code. The actual costs worth worrying about are I/O, locks, and allocations — not function call boundaries, which cost only a few CPU cycles. Real indirection overhead only matters in tight inner loops, with dyn Trait dynamic dispatch, or in explicitly performance-critical paths. The post argues that premature inlining sacrifices code readability, testability, and maintainability for no measurable gain, and recommends using profilers like callgrind or perf to verify actual bottlenecks before optimizing. The right approach is to extract well-named functions, trust the optimizer, and only reach for #[inline] when profiler data justifies it.

  14. 14
    Article
    Avatar of hnHacker News·6w

    0dd Company

    A creative coding project that glitches the 1922 silent film Häxan by directly manipulating its H.264 binary data. Three approaches were explored: NULLing out frames, overlaying noise on raw YUV data, and finally targeting I-frame chroma bits to introduce color artifacts and a melting effect. The final technique uses Python and ffmpeg to extract the H.264 stream, randomly flip least-significant bits biased toward chroma data at frame ends, then repackage the result. Each run produces a unique output due to randomness.

  15. 15
    Article
    Avatar of hnHacker News·4w

    We Rewrote JSONata with AI in a Day, Saved $500K/Year | Reco

    Reco's principal data engineer used AI to rewrite JSONata (a JavaScript-based JSON query language) as a pure-Go library called gnata in about 7 hours, spending $400 in AI tokens. The original setup ran jsonata-js pods on Kubernetes, costing ~$300K/year and adding ~150 microsecond RPC overhead per evaluation across billions of events. gnata uses a two-tier evaluation architecture: a fast path for simple expressions that operates directly on raw JSON bytes with zero heap allocations, and a full path with complete JSONata 2.x semantics. A streaming layer batches N expressions against each event, reading raw bytes only once. After a week of shadow-mode validation with 1,778 test cases and 2,107 integration tests, gnata replaced the RPC fleet entirely, delivering 25-1000x speedups. Combined with a rule engine refactor enabled by gnata's batch evaluation capabilities, the total savings reached $500K/year in under two weeks of work.

  16. 16
    Article
    Avatar of hnHacker News·5w

    404 Deno CEO not found

    A developer who invested heavily in Deno reflects on the company's recent mass layoffs and broader decline. The post traces Deno's trajectory from its $4.9M seed round and $21M Series A through failed products like Deno Deploy and JSR, arguing that the ecosystem never captured enough developer interest. Key criticisms include inconsistent Deploy performance, confused packaging strategy (HTTP imports vs package.json), and JSR's failure to gain traction compared to alternatives like NPMX. The author speculates about a possible AI pivot or OpenAI acquisition and calls on CEO Ryan Dahl to communicate what comes next for the runtime.

  17. 17
    Article
    Avatar of hnHacker News·5w

    Ubuntu 26.04 Ends 46 Years of Silent sudo Passwords

    Ubuntu 26.04 LTS 'Resolute Raccoon' (due April 23, 2026) will display asterisks for each character typed at a sudo password prompt, ending over 46 years of silent password input. The change comes via sudo-rs, a Rust rewrite of the classic C sudo that Canonical adopted as default in Ubuntu 25.10. The upstream sudo-rs project enabled the pwfeedback option by default, and Canonical cherry-picked the patch into 26.04. Proponents argue the security trade-off is negligible since password length is already visible at graphical login screens, while critics call it a break from historical security practice. Users who prefer the classic silent prompt can restore it by adding 'Defaults !pwfeedback' to their sudoers file via visudo.

  18. 18
    Article
    Avatar of hnHacker News·5w

    Rewriting our Rust WASM Parser in TypeScript

    A team built a custom DSL parser in Rust compiled to WASM, then discovered the bottleneck wasn't computation but the WASM-JS boundary overhead. Attempting to skip JSON serialization via serde-wasm-bindgen made things 30% slower due to fine-grained boundary crossings. Rewriting the parser in TypeScript eliminated the boundary entirely, yielding 2.2-4.6x faster per-call performance. They also fixed an O(N²) streaming problem by caching completed statement ASTs, reducing total streaming cost by 2.6-3.3x. Key lessons: WASM shines for compute-bound tasks with minimal interop, not for frequently-called parsers on small inputs where boundary overhead dominates.

  19. 19
    Article
    Avatar of hnHacker News·4w

    Hello, my name is Niels Leenheer

    A developer built a fully playable DOOM renderer using only CSS for rendering, with JavaScript handling only the game loop. Every wall, floor, sprite, and enemy is a <div> positioned in 3D space using CSS transforms. The project showcases advanced CSS features including 3D transforms with trig functions (hypot, atan2, sin, cos), @property for animatable custom properties, clip-path with shape() for irregular polygon floors, SVG filters for the spectre invisibility effect, anchor positioning for the responsive HUD, and a type-grinding hack for pure-CSS culling. Key architectural decisions include passing raw DOOM coordinates as CSS custom properties and letting CSS compute geometry, moving the world instead of a camera, and using CSS transitions/animations for doors, lifts, and projectiles. The post details browser bugs encountered in Safari and Chrome, performance limitations requiring manual culling, and depth-sorting challenges with coplanar surfaces.

  20. 20
    Article
    Avatar of hnHacker News·5w

    The Three Pillars of JavaScript Bloat

    JavaScript dependency trees have grown bloated over time due to three main causes: (1) packages built for very old engines (ES3/IE6) or cross-realm safety that most developers no longer need, (2) atomic architecture where trivial one-liners like `Array.isArray(val) ? val : [val]` became their own npm packages with single consumers and supply chain risks, and (3) ponyfills for features now natively supported everywhere that were never removed. Tools like knip, the e18e CLI, npmgraph, and the module-replacements project can help identify and eliminate this bloat. The author argues the small group needing legacy compatibility should maintain their own special stack, while the majority should benefit from modern, lightweight dependencies.

  21. 21
    Article
    Avatar of hnHacker News·5w

    NanoClaw Adopts OneCLI Agent Vault

    NanoClaw is integrating OneCLI's Agent Vault as its default credential and proxying layer for AI agents. Instead of agents holding raw API keys, the vault proxies outbound requests, injects credentials at the gateway level, and enforces policy rules like rate limits. This addresses a real risk illustrated by a Meta AI director's incident where an agent mass-deleted emails despite explicit instructions not to act autonomously. The integration combines NanoClaw's Docker-based runtime isolation with OneCLI's credential isolation and policy enforcement, giving users fine-grained control over what agents can access, how often, and with human-in-the-loop approval flows on the roadmap. Both projects are open source.

  22. 22
    Article
    Avatar of hnHacker News·5w

    GitHub - MoonshotAI/Attention-Residuals

    Attention Residuals (AttnRes) is a drop-in replacement for standard residual connections in Transformer architectures, developed by the Kimi team at MoonshotAI. Instead of uniformly accumulating all layer outputs with fixed unit weights, AttnRes uses softmax attention over preceding layer outputs with a learned pseudo-query per layer, enabling selective, content-aware aggregation across depth. A practical Block AttnRes variant reduces memory from O(Ld) to O(Nd) by grouping layers into blocks and applying attention only at block boundaries. Evaluated on a 48B MoE model trained on 1.4T tokens, AttnRes consistently outperforms the baseline across benchmarks, with notable gains on GPQA-Diamond (+7.5) and HumanEval (+3.1). Scaling law experiments show Block AttnRes matches the loss of a baseline trained with 1.25x more compute.

  23. 23
    Article
    Avatar of hnHacker News·6w

    Give Django your time and money, not your tokens

    Using LLMs to generate code, write PR descriptions, and handle review feedback for Django contributions is harmful to the community. The core issue isn't whether you use an LLM, but whether you actually understand what you're contributing. When LLMs act as a facade, reviewers can't gauge a contributor's real understanding, which is demoralizing and undermines the communal nature of open source. The recommended approach is to use LLMs to develop comprehension and refine your own words, not as a vehicle that replaces your thinking. Django's 20-year longevity demands genuine understanding from contributors, and the personal growth from that process is more valuable than the contributor credit itself.

  24. 24
    Article
    Avatar of hnHacker News·6w

    The 49MB Web Page

    A detailed audit of modern news websites reveals how programmatic ad-tech, excessive tracking, and hostile UX patterns have degraded the reading experience. Using the New York Times as a primary example, the post documents 422 network requests and 49MB of data for a single article load, driven by real-time ad bidding, surveillance beacons, and cross-site identity stitching. The analysis covers anti-patterns like Z-index warfare (cookie banners, newsletter modals, notification prompts), inverted content-to-chrome ratios, cumulative layout shift from late-loading ads, autoplaying sticky videos, and deliberate fat-finger traps. The author argues publishers are caught in a CPM-driven death spiral that treats readers as adversaries, and offers concrete engineering fixes: serialized onboarding queues, reserved ad slot dimensions to prevent CLS, behavior-triggered overlays, and inline newsletter placements. Lightweight alternatives like text.npr.org and RSS feeds are highlighted as proof that audiences want no-frills content.

  25. 25
    Article
    Avatar of hnHacker News·6w

    Ageless Linux — Software for Humans of Indeterminate Age

    Ageless Linux is a satirical-but-real Debian-based Linux distribution created as deliberate civil disobedience against California's AB 1043 (Digital Age Assurance Act). The project argues the law is not a child safety measure but a compliance moat that benefits large tech companies (Apple, Google, Microsoft) while making it impossible for volunteer-run Linux distributions, small open-source projects, and hobbyist developers to legally distribute software. The author exploits the law's own definitions to become a technically regulated 'operating system provider' by simply modifying /etc/os-release, then intentionally refuses to implement age verification. The piece includes a detailed legal analysis of AB 1043's definitions, a critique of age-gating as pedagogically harmful (teaching children to lie to compliance systems), and a plan to physically distribute cheap RISC-V devices and Raspberry Pi Picos pre-loaded with Ageless Linux to children at school STEM fairs — inviting the California AG to levy a $7,500 fine for handing a child a $5 computer with a snake game.