Hacker News
Latest
Warranty Void If Regenerated
2026-03-17 @ 20:39:19Points: 46Comments: 5
Meta and TikTok let harmful content rise to drove engagement, say whistleblowers
2026-03-17 @ 20:24:33Points: 117Comments: 56
Get Shit Done: A Meta-Prompting, Context Engineering and Spec-Driven Dev System
2026-03-17 @ 20:23:39Points: 112Comments: 58
A Decade of Slug
2026-03-17 @ 18:59:50Points: 323Comments: 25
Java 26 is here
2026-03-17 @ 18:44:09Points: 124Comments: 89
Python 3.15's JIT is now back on track
2026-03-17 @ 18:37:27Points: 189Comments: 63
Show HN: Horizon – GPU-accelerated infinite-canvas terminal in Rust
2026-03-17 @ 18:14:24Points: 36Comments: 15
Built in 3 days with Claude/Codex, dogfooding the workflow as I went. Feedback and contributions welcome.
Edge.js: Run Node apps inside a WebAssembly sandbox
2026-03-17 @ 18:01:50Points: 69Comments: 20
GPT‑5.4 Mini and Nano
2026-03-17 @ 17:07:06Points: 197Comments: 117
Spice Data (YC S19) Is Hiring a Product Specialist
2026-03-17 @ 17:00:50Points: 1
'The Secret Agent': Exploring a Vibrant, yet Violent Brazil (2025)
2026-03-17 @ 15:56:09Points: 107Comments: 48
Show HN: Antfly: Distributed, Multimodal Search and Memory and Graphs in Go
2026-03-17 @ 15:45:15Points: 75Comments: 27
I built this to give developers a single-binary deployment with native ML inference (via a built-in service called Termite), meaning you don't need external API calls for vector search unless you want to use them.
Some things that might interest this crowd:
Capabilities: Multimodal indexing (images, audio, video), MongoDB-style in-place updates, and streaming RAG.
Distributed Systems: Multi-Raft setup built on etcd's library, backed by Pebble (CockroachDB's storage engine). Metadata and data shards get their own Raft groups.
Single Binary: antfly swarm gives you a single-process deployment with everything running. Good for local dev and small deployments. Scale out by adding nodes when you need to.
Ecosystem: Ships with a Kubernetes operator and an MCP server for LLM tool use.
Native ML inference: Antfly ships with Termite. Think of it like a built-in Ollama for non-generative models too (embeddings, reranking, chunking, text generation). No external API calls needed, but also supports them (OpenAI, Ollama, Bedrock, Gemini, etc.)
License: I went with Elastic License v2, not an OSI-approved license. I know that's a topic with strong feelings here. The practical upshot: you can use it, modify it, self-host it, build products on top of it, you just can't offer Antfly itself as a managed service. Felt like the right tradeoff for sustainability while still making the source available.
Happy to answer questions about the architecture, the Raft implementation, or anything else. Feedback welcome!
Unsloth Studio
2026-03-17 @ 15:26:32Points: 95Comments: 27
Microsoft's 'unhackable' Xbox One has been hacked by 'Bliss'
2026-03-17 @ 15:16:29Points: 451Comments: 175
FFmpeg 8.1
2026-03-17 @ 14:51:57Points: 327Comments: 49
Node.js needs a virtual file system
2026-03-17 @ 14:28:37Points: 210Comments: 164
OpenSUSE Kalpa
2026-03-17 @ 13:54:17Points: 118Comments: 73
Show HN: March Madness Bracket Challenge for AI Agents Only
2026-03-17 @ 12:56:24Points: 56Comments: 36
The interesting design problem was building for an agent-first user. I came up with a solution where Agents who hit the homepage receive plain-text API instructions and Humans get the normal visual site. Early on I found most agents were trying to use Playwright to browse the site instead of just reading the docs. I made some changes to detect HeadlessChrome and serve specific html readable to agents. This forced me to think about agent UX even more - I think there are some really cool ideas to pull on.
The timeline introduced an interesting dynamic. I had to launch the challenge shortly after the brackets were announced on Sunday afternoon to start getting users by the Thursday morning deadline. While I could test on the 2025 bracket, I wouldn't be able to get feedback on my MVP. So I used AI to create user personas and agents as test users to run through the signup and management process. It gave me valuable reps to feel confident launching.
The stack is Next.js 16, TypeScript, Supabase, Tailwind v4, Vercel, Resend, and finally Claude Code for ~95% of the build.
Works with any model that can call an API — Claude, GPT, Gemini, open source, whatever. Brackets are due Thursday morning before the First Round tips off.
Bracketmadness.ai
Ryugu asteroid samples contain all DNA and RNA building blocks
2026-03-17 @ 12:01:05Points: 154Comments: 90
Kagi Small Web
2026-03-17 @ 09:53:53Points: 659Comments: 187
Reverse-engineering Viktor and making it open source
2026-03-17 @ 08:15:34Points: 147Comments: 62
Show HN: Crust – A CLI framework for TypeScript and Bun
2026-03-17 @ 04:43:29Points: 58Comments: 23
The problem we kept running into: existing CLI frameworks in the JS ecosystem are either minimal arg parsers where you wire everything yourself, or heavyweight frameworks with large dependency trees and Node-era assumptions. We wanted something in between.
What Crust does differently:
- Full type inference from definitions — args and flags are inferred automatically. No manual type annotations, no generics to wrangle. You define a flag as type: "string" and it flows through to your handler.
- Compile-time validation — catches flag alias collisions and variadic arg mistakes before your code runs, not at runtime.
- Zero runtime dependencies — @crustjs/core is ~3.6kB gzipped (21kB install). For comparison: yargs is 509kB, oclif is 411kB.
- Composable modules — core, plugins, prompts, styling, validation, and build tooling are all separate packages. Install only what you need.
- Plugin system — middleware-based with lifecycle hooks (preRun/postRun). Official plugins for help, version, and shell autocompletion.
- Built for Bun — no Node compatibility layers, no legacy baggage.
Quick example:
import { Crust } from "@crustjs/core";
import { helpPlugin, versionPlugin } from "@crustjs/plugins";
const main = new Crust("greet")
.args([{ name: "name", type: "string", default: "world" }])
.flags({ shout: { type: "boolean", short: "s" } })
.use(helpPlugin())
.use(versionPlugin("1.0.0"))
.run(({ args, flags }) => {
const msg = `Hello, ${args.name}!`;
console.log(flags.shout ? msg.toUpperCase() : msg);
});
await main.execute();
Scaffold a new project: bun create crust my-cli
Site: https://crustjs.com GitHub: https://github.com/chenxin-yan/crust Happy to answer any questions about the design decisions or internals.