The best Hacker News stories from Show from the past week

Go back

Latest posts:

Show HN: µJS, a 5KB alternative to Htmx and Turbo with zero dependencies

I built µJS because I wanted AJAX navigation without the verbosity of HTMX or the overhead of Turbo.<p>It intercepts links and form submissions, fetches pages via AJAX, and swaps fragments of the DOM. Single <script> tag, one call to `mu.init()`. No build step, no dependencies.<p>Key features: patch mode (update multiple fragments in one request), SSE support, DOM morphing via idiomorph, View Transitions, prefetch on hover, polling, and full HTTP verb support on any element.<p>At ~5KB gzipped, it's smaller than HTMX (16KB) and Turbo (25KB), and works with any backend: PHP, Python, Go, Ruby, whatever.<p>Playground: <a href="https://mujs.org/playground" rel="nofollow">https://mujs.org/playground</a><p>Comparison with HTMX and Turbo: <a href="https://mujs.org/comparison" rel="nofollow">https://mujs.org/comparison</a><p>About the project creation, why and when: <a href="https://mujs.org/about" rel="nofollow">https://mujs.org/about</a><p>GitHub: <a href="https://github.com/Digicreon/muJS" rel="nofollow">https://github.com/Digicreon/muJS</a><p>Happy to discuss the project.

Show HN: I built a real-time OSINT dashboard pulling 15 live global feeds

Sup HN,<p>So I got tired of bouncing between Flightradar, MarineTraffic, and Twitter every time something kicked off globally, so I wrote a dashboard to aggregate it all locally. It’s called Shadowbroker.<p>I’ll admit I leaned way too hard into the "movie hacker" aesthetic for the UI, but the actual pipeline underneath is real. It pulls commercial/military ADS-B, the AIS WebSocket stream (about 25,000+ ships), N2YO satellite telemetry, and GDELT conflict data into a single MapLibre instance.<p>Getting this to run without melting my browser was the hardest part. I'm running this on a laptop with an i5 and an RTX 3050, and initially, dumping 30k+ moving GeoJSON features onto the map just crashed everything. I ended up having to write pretty aggressive viewport culling, debounce the state updates, and compress the FastAPI payloads by like 90% just to make it usable.<p>My favorite part is the signal layer—it actually calculates live GPS jamming zones by aggregating the real-time navigation degradation (NAC-P) of commercial flights overhead.<p>It’s Next.js and Python. I threw a quick-start script in the releases if you just want to spin it up, but the repo is open if you want to dig into the backend.<p>Let me know if my MapLibre implementation is terrible, I'm always looking for ways to optimize the rendering.

Show HN: Swarm – Program a colony of 200 ants using a custom assembly language

We built an ant colony simulation as an internal hiring challenge at Moment and decided to open it up publicly.<p>You write a program in a custom assembly-like (we call it ant-ssembly) instruction set that controls 200 ants. Each ant can sense nearby cells (food, pheromones, home, other ants) but has no global view. The only coordination mechanism is pheromone trails, which ants can emit and sense them, but that's it. Your program runs identically on every ant.<p>The goal is to collect the highest percentage of food across a set of maps. Different map layouts (clustered food, scattered, obstacles) reward very different strategies. The leaderboard is live.<p>Grand prize is a trip to Maui for two paid for by Moment. Challenge closes March 12.<p>Curious what strategies people discover. We've seen some surprisingly clever emergent behavior internally.

Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting

I've been building a modern Ultima Online server emulator from scratch. It's not feature-complete (no combat, no skills yet), but the foundation is solid and I wanted to share it early.<p>What it does today: - Full packet layer for the classic UO client (login, movement, items, mobiles) - Lua scripting for item behaviors (double-click a potion, open a door — all defined in Lua, no C# recompile) - Spatial world partitioned into sectors with delta sync (only sends packets for new sectors when crossing boundaries) - Snapshot-based persistence with MessagePack - Source generators for automatic DI wiring, packet handler registration, and Lua module exposure - NativeAOT support — the server compiles to a single native binary - Embedded HTTP admin API + React management UI - Auto-generated doors from map statics (same algorithm as ModernUO/RunUO)<p>Tech stack: .NET 10, NativeAOT, NLua, MessagePack, DryIoc, Kestrel<p>What's missing: Combat, skills, weather integration, NPC AI. This is still early — the focus so far has been on getting the architecture right so adding those systems doesn't require rewiring everything.<p>Why not just use ModernUO/RunUO? Those are mature and battle-tested. I started this because I wanted to rethink the architecture from scratch: strict network/domain separation, event-driven game loop, no inheritance-heavy item hierarchies, and Lua for rapid iteration on game logic without recompiling.<p>GitHub: <a href="https://github.com/moongate-community/moongatev2" rel="nofollow">https://github.com/moongate-community/moongatev2</a>

Show HN: Poppy – A simple app to stay intentional with relationships

I built Poppy as a side project to help people keep in touch more intentionally. Would love feedback on onboarding, reminders, and overall UX. Happy to answer questions.

Show HN: Jido 2.0, Elixir Agent Framework

Hi HN!<p>I'm the author of an Elixir Agent Framework called Jido. We reached our 2.0 release this week, shipping a production-hardened framework to build, manage and run Agents on the BEAM.<p>Jido now supports a host of Agentic features, including:<p>- Tool Calling and Agent Skills - Comprehensive multi-agent support across distributed BEAM processes with Supervision - Multiple reasoning strategies including ReAct, Chain of Thought, Tree of Thought, and more - Advanced workflow capabilities - Durability through a robust Storage and Persistence layer - Agentic Memory - MCP and Sensors to interface with external services - Deep observability and debugging capabilities, including full stack OTel<p>I know Agent Frameworks can be considered a bit stale, but there hasn't been a major release of a framework on the BEAM. With a growing realization that the architecture of the BEAM is a good match for Agentic workloads, the time was right to make the announcement.<p>My background is enterprise engineering, distributed systems and Open Source. We've got a strong and growing community of builders committed to the Jido ecosystem. We're looking forward to what gets built on top of Jido!<p>Come build agents with us!

Show HN: Timber – Ollama for classical ML models, 336x faster than Python

Show HN: Govbase – Follow a bill from source text to news bias to social posts

Govbase tracks every bill, executive order, and federal regulation from official sources (Congress.gov, Federal Register, White House). An AI pipeline breaks each one down into plain-language summaries and shows who it impacts by demographic group.<p>It also ties each policy directly to bias-rated news coverage and politician social posts on X, Bluesky, and Truth Social. You can follow a single bill from the official text to how media frames it to what your representatives are saying about it.<p>Free on web, iOS, and Android.<p><a href="https://govbase.com" rel="nofollow">https://govbase.com</a><p>I'd love feedback from the community, especially on the data pipeline or what policy areas/features you feel are missing.

Show HN: I built a sub-500ms latency voice agent from scratch

I built a voice agent from scratch that averages ~400ms end-to-end latency (phone stop → first syllable). That’s with full STT → LLM → TTS in the loop, clean barge-ins, and no precomputed responses.<p>What moved the needle:<p>Voice is a turn-taking problem, not a transcription problem. VAD alone fails; you need semantic end-of-turn detection.<p>The system reduces to one loop: speaking vs listening. The two transitions - cancel instantly on barge-in, respond instantly on end-of-turn - define the experience.<p>STT → LLM → TTS must stream. Sequential pipelines are dead on arrival for natural conversation.<p>TTFT dominates everything. In voice, the first token is the critical path. Groq’s ~80ms TTFT was the single biggest win.<p>Geography matters more than prompts. Colocate everything or you lose before you start.<p>GitHub Repo: <a href="https://github.com/NickTikhonov/shuo" rel="nofollow">https://github.com/NickTikhonov/shuo</a><p>Follow whatever I next tinker with: <a href="https://x.com/nick_tikhonov" rel="nofollow">https://x.com/nick_tikhonov</a>

Show HN: Now I Get It – Translate scientific papers into interactive webpages

Understanding scientific articles can be tough, even in your own field. Trying to comprehend articles from others? Good luck.<p>Enter, Now I Get It!<p>I made this app for curious people. Simply upload an article and after a few minutes you'll have an interactive web page showcasing the highlights. Generated pages are stored in the cloud and can be viewed from a gallery.<p>Now I Get It! uses the best LLMs out there, which means the app will improve as AI improves.<p>Free for now - it's capped at 20 articles per day so I don't burn cash.<p>A few things I (and maybe you will) find interesting:<p>* This is a pure convenience app. I could just as well use a saved prompt in Claude, but sometimes it's nice to have a niche-focused app. It's just cognitively easier, IMO.<p>* The app was built for myself and colleagues in various scientific fields. It can take an hour or more to read a detailed paper so this is like an on-ramp.<p>* The app is a place for me to experiment with using LLMs to translate scientific articles into software. The space is pregnant with possibilities.<p>* Everything in the app is the result of agentic engineering, e.g. plans, specs, tasks, execution loops. I swear by Beads (<a href="https://github.com/steveyegge/beads" rel="nofollow">https://github.com/steveyegge/beads</a>) by Yegge and also make heavy use of Beads Viewer (<a href="https://news.ycombinator.com/item?id=46314423">https://news.ycombinator.com/item?id=46314423</a>) and Destructive Command Guard (<a href="https://news.ycombinator.com/item?id=46835674">https://news.ycombinator.com/item?id=46835674</a>) by Jeffrey Emanuel.<p>* I'm an AWS fan and have been impressed by Opus' ability to write good CFN. It still needs a bunch of guidance around distributed architecture but way better than last year.

Show HN: Now I Get It – Translate scientific papers into interactive webpages

Understanding scientific articles can be tough, even in your own field. Trying to comprehend articles from others? Good luck.<p>Enter, Now I Get It!<p>I made this app for curious people. Simply upload an article and after a few minutes you'll have an interactive web page showcasing the highlights. Generated pages are stored in the cloud and can be viewed from a gallery.<p>Now I Get It! uses the best LLMs out there, which means the app will improve as AI improves.<p>Free for now - it's capped at 20 articles per day so I don't burn cash.<p>A few things I (and maybe you will) find interesting:<p>* This is a pure convenience app. I could just as well use a saved prompt in Claude, but sometimes it's nice to have a niche-focused app. It's just cognitively easier, IMO.<p>* The app was built for myself and colleagues in various scientific fields. It can take an hour or more to read a detailed paper so this is like an on-ramp.<p>* The app is a place for me to experiment with using LLMs to translate scientific articles into software. The space is pregnant with possibilities.<p>* Everything in the app is the result of agentic engineering, e.g. plans, specs, tasks, execution loops. I swear by Beads (<a href="https://github.com/steveyegge/beads" rel="nofollow">https://github.com/steveyegge/beads</a>) by Yegge and also make heavy use of Beads Viewer (<a href="https://news.ycombinator.com/item?id=46314423">https://news.ycombinator.com/item?id=46314423</a>) and Destructive Command Guard (<a href="https://news.ycombinator.com/item?id=46835674">https://news.ycombinator.com/item?id=46835674</a>) by Jeffrey Emanuel.<p>* I'm an AWS fan and have been impressed by Opus' ability to write good CFN. It still needs a bunch of guidance around distributed architecture but way better than last year.

Show HN: Terminal Phone – E2EE Walkie Talkie from the Command Line

TerminalPhone is a single, self-contained Bash script that provides anonymous, end-to-end encrypted voice and text communication between two parties over the Tor network. It operates as a walkie-talkie: you record a voice message, and it is compressed, encrypted, and transmitted to the remote party as a single unit. You can also send encrypted text messages during a call. No server infrastructure, no accounts, no phone numbers. Your Tor hidden service .onion address is your identity.

Show HN: Respectify – A comment moderator that teaches people to argue better

My partner, Nick Hodges, and I, David Millington, have been on the Internet for a very long time -- since the Usenet days. We’ve seen it all, and have long been frustrated by bad comments, horrible people, and discouraging discussions. We've also been around places where the discussion is wonderful and productive. How to get more of the latter and less of the former?<p>Current moderation tools just seem to focus on deletion and banning. Wouldn’t it be helpful to encourage productive discussion and <i>teach</i> people how to discuss and argue (in the debate sense) better?<p>A year ago we started building Respectify to help foster healthy communication. Instead of just deleting bad-faith comments, we suggest better, good-faith ways to say what folks are trying to say. We help people avoid: * Logical fallacies (false dichotomy, strawmen, etc.) * Tone issues (how others will read the comment) * Relevance to the actual page/post topic * Low-effort posts * Dog whistles and coded language<p>The commenter gets an explanation of what's wrong and a chance to edit and resubmit. It's moderation + education in one step. We want, too, to automate the entire process so the site owner can focus on content and not worry about moderation at all. And over time, comment by comment, quietly coach better thinking.<p>Our main website has an interactive demo: <a href="https://respectify.ai" rel="nofollow">https://respectify.ai</a>. As the demo shows, the system is completely tunable and adjustable, from "most anything goes" to "You need to be college debate level to get by me".<p>We hope the result is better discussions and a better Internet. Not too much to ask, eh?<p>We love the kind of feedback this group is famous for and hope you will supply some!

Show HN: enveil – hide your .env secrets from prAIng eyes

Show HN: Moonshine Open-Weights STT models – higher accuracy than WhisperLargev3

I wanted to share our new speech to text model, and the library to use them effectively. We're a small startup (six people, sub-$100k monthly GPU budget) so I'm proud of the work the team has done to create streaming STT models with lower word-error rates than OpenAI's largest Whisper model. Admittedly Large v3 is a couple of years old, but we're near the top the HF OpenASR leaderboard, even up against Nvidia's Parakeet family. Anyway, I'd love to get feedback on the models and software, and hear about what people might build with it.

Show HN: X86CSS – An x86 CPU emulator written in CSS

Show HN: Steerling-8B, a language model that can explain any token it generates

Show HN: PgDog – Scale Postgres without changing the app

Hey HN! Lev and Justin here, authors of PgDog (<a href="https://pgdog.dev/">https://pgdog.dev/</a>), a connection pooler, load balancer and database sharder for PostgreSQL. If you build apps with a lot of traffic, you know the first thing to break is the database. We are solving this with a network proxy that works without requiring application code changes or database migrations.<p>Our post from last year: <a href="https://news.ycombinator.com/item?id=44099187">https://news.ycombinator.com/item?id=44099187</a><p>The most important update: we are in production. Sharding is used a lot, with direct-to-shard queries (one shard per query) working pretty much all the time. Cross-shard (or multi-database) queries are still a work in progress, but we are making headway.<p>Aggregate functions like count(), min(), max(), avg(), stddev() and variance() are working, without refactoring the app. PgDog calculates the aggregate in-transit, while transparently rewriting queries to fetch any missing info. For example, multi-database average calculation requires a total count of rows to calculate the original sum. PgDog will add count() to the query, if it’s not there already, and remove it from the rows sent to the app.<p>Sorting and grouping works, including DISTINCT, if the columns(s) are referenced in the result. Over 10 data types are supported, like, timestamp(tz), all integers, varchar, etc.<p>Cross-shard writes, including schema changes (CREATE/DROP/ALTER), are now atomic and synchronized between all shards with two-phase commit. PgDog keeps track of the transaction state internally and will rollback the transaction if the first phase fails. You don’t need to monkeypatch your ORM to use this: PgDog will intercept the COMMIT statement and execute PREPARE TRANSACTION and COMMIT PREPARED instead.<p>Omnisharded tables, a.k.a replicated or mirrored (identical on all shards), support atomic reads and writes. That’s important because most databases can’t be completely sharded and will have some common data on all databases that has to be kept in-sync.<p>Multi-tuple inserts, e.g., INSERT INTO table_x VALUES ($1, $2), ($3, $4), are split by our query rewriter and distributed to their respective shards automatically. They are used by ORMs like Prisma, Sequelize, and others, so those now work without code changes too.<p>Sharding keys can be mutated. PgDog will intercept and rewrite the update statement into 3 queries, SELECT, INSERT, and DELETE, moving the row between shards. If you’re using Citus (for everyone else, Citus is a Postgres extension for sharding databases), this might be worth a look.<p>If you’re like us and prefer integers to UUIDs for your primary keys, we built a cross-shard unique sequence, directly inside PgDog. It uses the system clock (and a couple other inputs), can be called like a Postgres function, and will automatically inject values into queries, so ORMs like ActiveRecord will continue to work out of the box. It’s monotonically increasing, just like a real Postgres sequence, and can generate up to 4 million numbers per second with a range of 69.73 years, so no need to migrate to UUIDv7 just yet.<p><pre><code> INSERT INTO my_table (id, created_at) VALUES (pgdog.unique_id(), now()); </code></pre> Resharding is now built-in. We can move gigabytes of tables per second, by parallelizing logical replication streams across replicas. This is really cool! Last time we tried this at Instacart, it took over two weeks to move 10 TB between two machines. Now, we can do this in just a few hours, in big part thanks to the work of the core team that added support for logical replication slots to streaming replicas in Postgres 16.<p>Sharding hardly works without a good load balancer. PgDog can monitor replicas and move write traffic to a promoted primary during a failover. This works with managed Postgres, like RDS (incl. Aurora), Azure Pg, GCP Cloud SQL, etc., because it just polls each instance with “SELECT pg_is_in_recovery()”. Primary election is not supported yet, so if you’re self-hosting with Patroni, you should keep it around for now, but you don’t need to run HAProxy in front of the DBs anymore.<p>The load balancer is getting pretty smart and can handle edge cases like SELECT FOR UPDATE and CTEs with INSERT/UPDATE statements, but if you still prefer to handle your read/write separation in code, you can do that too with manual routing. This works by giving PgDog a hint at runtime: a connection parameter (-c pgdog.role=primary), SET statement, or a query comment. If you have multiple connection pools in your app, you can replace them with just one connection to PgDog instead. For multi-threaded Python/Ruby/Go apps, this helps by reducing memory usage, I/O and context switching overhead.<p>Speaking of connection pooling, PgDog can automatically rollback unfinished transactions and drain and re-sync partially sent queries, all in an effort to preserve connections to the database. If you’ve seen Postgres go to 100% CPU because of a connection storm caused by an application crash, this might be for you. Draining connections works by receiving and discarding rows from abandoned queries and sending the Sync message via the Postgres wire protocol, which clears the query context and returns the connection to a normal state.<p>PgDog is open source and welcomes contributions and feedback in any form. As always, all features are configurable and can be turned off/on, so should you choose to give it a try, you can do so at your own pace. Our docs (<a href="https://docs.pgdog.dev">https://docs.pgdog.dev</a>) should help too.<p>Thanks for reading and happy hacking!

Show HN: CIA World Factbook Archive (1990–2025), searchable and exportable

A structured archive of CIA World Factbook data spanning 1990–2025. It currently includes: 36 editions 281 entities ~1.06M parsed fields full-text + boolean search country/year comparisons map/trend/ranking analysis views CSV/XLSX/PDF export The goal is to preserve long-horizon public-domain government data and make cross-year analysis practical. Live: <a href="https://cia-factbook-archive.fly.dev" rel="nofollow">https://cia-factbook-archive.fly.dev</a> About/method details: <a href="https://cia-factbook-archive.fly.dev/about" rel="nofollow">https://cia-factbook-archive.fly.dev/about</a> Data source is the CIA World Factbook (public domain). Not affiliated with the CIA or U.S. Government.

Show HN: CIA World Factbook Archive (1990–2025), searchable and exportable

A structured archive of CIA World Factbook data spanning 1990–2025. It currently includes: 36 editions 281 entities ~1.06M parsed fields full-text + boolean search country/year comparisons map/trend/ranking analysis views CSV/XLSX/PDF export The goal is to preserve long-horizon public-domain government data and make cross-year analysis practical. Live: <a href="https://cia-factbook-archive.fly.dev" rel="nofollow">https://cia-factbook-archive.fly.dev</a> About/method details: <a href="https://cia-factbook-archive.fly.dev/about" rel="nofollow">https://cia-factbook-archive.fly.dev/about</a> Data source is the CIA World Factbook (public domain). Not affiliated with the CIA or U.S. Government.

1 2 3 ... 162 163 164 >