The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: I built a zero-browser, pure-JS typesetting engine for bit-perfect PDFs

Hi HN, I'm a film director by trade, and I prefer writing my stories in plain text rather than using clunky screenplay software. Standard markup like Fountain doesn't work for me because I write in mixed languages, so I use Markdown with a custom syntax I invented to resemble standard screenplay structures.<p>This workflow is great until I need to actually generate an industry-standard screenplay PDF. I got tired of manually copying and pasting my text back into the clunky software just to export it, so I decided to write a script to automate the process. That's when I hit a wall.<p>I tried using React-pdf and other high-level libraries, but they failed me on two fronts: true multilingual text shaping, and complex contextual pagination. Specifically, the strict screenplay requirement to automatically inject (MORE) at the bottom of a page and (CONT'D) at the top of the next page when a character's dialogue is split across a page break.<p>You can't really do that elegantly when the layout engine is a black box. So, I bypassed them and built my own typesetting engine from scratch.<p>VMPrint is a deterministic, zero-browser layout VM written in pure TypeScript. It abandons the DOM entirely. It loads OpenType fonts, runs grapheme-accurate text segmentation (Intl.Segmenter), calculates interval-arithmetic spatial boundaries for text wrapping, and outputs a flat array of absolute coordinates.<p>Some stats:<p>Zero dependencies on Node.js APIs or the DOM (runs in Cloudflare Workers, Lambda, browser).<p>88 KiB core packed.<p>Performance: On a Snapdragon Elite ARM chip, the engine's "God Fixture" (8 pages of mixed CJK, Arabic RTL, drop caps, and multi-page spanning tables) completes layout and rendering in ~28ms.<p>The repo also includes draft2final, the CLI tool I built to convert Markdown into publication-grade PDFs (including the screenplay flavor) using this engine.<p>This is my first open-source launch. The manuscript is still waiting, but the engine shipped instead. I’d love to hear your thoughts, answer any questions about the math or the architecture, and see if anyone else finds this useful!<p>--- A note on AI usage: To be fully transparent about how this was built, I engineered the core concept (an all-flat, morphable box-based system inspired by game engines, applied to page layouts), the interval-arithmetic math, the grapheme segmentation, and the layout logic entirely by hand. I did use AI as a coding assistant at the functional level, but the overall software architecture, component structures, and APIs were meticulously designed by me.<p>For a little background: I’ve been a professional systems engineer since 1992. I’ve worked as a senior system architect for several Fortune 500 companies and currently serve as Chief Scientist at a major telecom infrastructure provider. I also created one of the world's first real-time video encoding technologies for low-power mobile phones (in the pre-smartphone era). I'm no stranger to deep tech, and a deterministic layout VM is exactly the kind of strict, math-heavy system that simply cannot be effectively constructed with a few lines of AI prompts.

Show HN: uBlock filter list to blur all Instagram Reels

A filter list for uBO that blurs all video and non-follower content from Instagram. Works on mobile with uBO Lite.<p>related: <a href="https://news.ycombinator.com/item?id=47016443">https://news.ycombinator.com/item?id=47016443</a>

Show HN: Omni – Open-source workplace search and chat, built on Postgres

Hey HN!<p>Over the past few months, I've been working on building Omni - a workplace search and chat platform that connects to apps like Google Drive/Gmail, Slack, Confluence, etc. Essentially an open-source alternative to Glean, fully self-hosted.<p>I noticed that some orgs find Glean to be expensive and not very extensible. I wanted to build something that small to mid-size teams could run themselves, so I decided to build it all on Postgres (ParadeDB to be precise) and pgvector. No Elasticsearch, or dedicated vector databases. I figured Postgres is more than capable of handling the level of scale required.<p>To bring up Omni on your own infra, all it takes is a single `docker compose up`, and some basic configuration to connect your apps and LLMs.<p>What it does:<p>- Syncs data from all connected apps and builds a BM25 index (ParadeDB) and HNSW vector index (pgvector)<p>- Hybrid search combines results from both<p>- Chat UI where the LLM has tools to search the index - not just basic RAG<p>- Traditional search UI<p>- Users bring their own LLM provider (OpenAI/Anthropic/Gemini)<p>- Connectors for Google Workspace, Slack, Confluence, Jira, HubSpot, and more<p>- Connector SDK to build your own custom connectors<p>Omni is in beta right now, and I'd love your feedback, especially on the following:<p>- Has anyone tried self-hosting workplace search and/or AI tools, and what was your experience like?<p>- Any concerns with the Postgres-only approach at larger scales?<p>Happy to answer any questions!<p>The code: <a href="https://github.com/getomnico/omni" rel="nofollow">https://github.com/getomnico/omni</a> (Apache 2.0 licensed)

Show HN: Omni – Open-source workplace search and chat, built on Postgres

Hey HN!<p>Over the past few months, I've been working on building Omni - a workplace search and chat platform that connects to apps like Google Drive/Gmail, Slack, Confluence, etc. Essentially an open-source alternative to Glean, fully self-hosted.<p>I noticed that some orgs find Glean to be expensive and not very extensible. I wanted to build something that small to mid-size teams could run themselves, so I decided to build it all on Postgres (ParadeDB to be precise) and pgvector. No Elasticsearch, or dedicated vector databases. I figured Postgres is more than capable of handling the level of scale required.<p>To bring up Omni on your own infra, all it takes is a single `docker compose up`, and some basic configuration to connect your apps and LLMs.<p>What it does:<p>- Syncs data from all connected apps and builds a BM25 index (ParadeDB) and HNSW vector index (pgvector)<p>- Hybrid search combines results from both<p>- Chat UI where the LLM has tools to search the index - not just basic RAG<p>- Traditional search UI<p>- Users bring their own LLM provider (OpenAI/Anthropic/Gemini)<p>- Connectors for Google Workspace, Slack, Confluence, Jira, HubSpot, and more<p>- Connector SDK to build your own custom connectors<p>Omni is in beta right now, and I'd love your feedback, especially on the following:<p>- Has anyone tried self-hosting workplace search and/or AI tools, and what was your experience like?<p>- Any concerns with the Postgres-only approach at larger scales?<p>Happy to answer any questions!<p>The code: <a href="https://github.com/getomnico/omni" rel="nofollow">https://github.com/getomnico/omni</a> (Apache 2.0 licensed)

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: 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: Vertex.js – A 1kloc SPA Framework

Vertex is a 1kloc SPA framework containing everything you need from React, Ractive-Load and jQuery while still being jQuery-compatible.<p>vertex.js is a single, self-contained file with no build step and no dependencies.<p>Also exhibits the curious quality of being faster than over a decade of engineering at Facebook in some cases: <a href="https://files.catbox.moe/sqei0d.png" rel="nofollow">https://files.catbox.moe/sqei0d.png</a>

Show HN: Vertex.js – A 1kloc SPA Framework

Vertex is a 1kloc SPA framework containing everything you need from React, Ractive-Load and jQuery while still being jQuery-compatible.<p>vertex.js is a single, self-contained file with no build step and no dependencies.<p>Also exhibits the curious quality of being faster than over a decade of engineering at Facebook in some cases: <a href="https://files.catbox.moe/sqei0d.png" rel="nofollow">https://files.catbox.moe/sqei0d.png</a>

Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document

Hey HN! We posted Rivet Actors here previously [1] as an open-source alternative to Cloudflare Durable Objects.<p>Today we've released SQLite storage for actors (Apache 2.0).<p>Every actor gets its own SQLite database. This means you can have millions of independent databases: one for each agent, tenant, user, or document.<p>Useful for:<p>- AI agents: per-agent DB for message history, state, embeddings<p>- Multi-tenant SaaS: real per-tenant isolation, no RLS hacks<p>- Collaborative documents: each document gets its own database with built-in multiplayer<p>- Per-user databases: isolated, scales horizontally, runs at the edge<p>The idea of splitting data per entity isn't new: Cassandra and DynamoDB use partition keys to scale horizontally, but you're stuck with rigid schemas ("single-table design" [3]), limited queries, and painful migrations. SQLite per entity gives you the same scalability without those tradeoffs [2].<p>How this compares:<p>- Cloudflare Durable Objects & Agents: most similar to Rivet Actors with colocated SQLite and compute, but closed-source and vendor-locked<p>- Turso Cloud: Great platform, but closed-source + diff use case. Clients query over the network, so reads are slow or stale. Rivet's single-writer actor model keeps reads local and fresh.<p>- D1, Turso (the DB), Litestream, rqlite, LiteFS: great tools for running a single SQLite database with replication. Rivet is for running lots of isolated databases.<p>Under the hood, SQLite runs in-process with each actor. A custom VFS persists writes to HA storage (FoundationDB or Postgres).<p>Rivet Actors also provide realtime (WebSockets), React integration (useActor), horizontal scalability, and actors that sleep when idle.<p>GitHub: <a href="https://github.com/rivet-dev/rivet" rel="nofollow">https://github.com/rivet-dev/rivet</a><p>Docs: <a href="https://www.rivet.dev/docs/actors/sqlite/">https://www.rivet.dev/docs/actors/sqlite/</a><p>[1] <a href="https://news.ycombinator.com/item?id=42472519">https://news.ycombinator.com/item?id=42472519</a><p>[2] <a href="https://rivet.dev/blog/2025-02-16-sqlite-on-the-server-is-misunderstood/">https://rivet.dev/blog/2025-02-16-sqlite-on-the-server-is-mi...</a><p>[3] <a href="https://www.alexdebrie.com/posts/dynamodb-single-table/" rel="nofollow">https://www.alexdebrie.com/posts/dynamodb-single-table/</a>

Show HN: Audio Toolkit for Agents

Show HN: Xmloxide – an agent-made Rust replacement for libxml2

Recently several AI labs have published experiments where they tried to get AI coding agents to complete large software projects.<p>- Cursor attempted to make a browser from scratch: <a href="https://cursor.com/blog/scaling-agents" rel="nofollow">https://cursor.com/blog/scaling-agents</a><p>- Anthropic attempted to make a C Compiler: <a href="https://www.anthropic.com/engineering/building-c-compiler" rel="nofollow">https://www.anthropic.com/engineering/building-c-compiler</a><p>I have been wondering if there are software packages that can be easily reproduced by taking the available test suites and tasking agents to work on projects until the existing test suites pass.<p>After playing with this concept by having Claude Code reproduce redis and sqlite, I began looking for software packages where an agent-made reproduction might actually be useful.<p>I found libxml2, a widely used, open-source C language library designed for parsing, creating, and manipulating XML and HTML documents. Three months ago it became unmaintained with the update, "This project is unmaintained and has [known security issues](<a href="https://gitlab.gnome.org/GNOME/libxml2/-/issues/346" rel="nofollow">https://gitlab.gnome.org/GNOME/libxml2/-/issues/346</a>). It is foolish to use this software to process untrusted data.".<p>With a few days of work, I was able to create xmloxide, a memory safe rust replacement for libxml2 which passes the compatibility suite as well as the W3C XML Conformance Test Suite. Performance is similar on most parsing operations and better on serialization. It comes with a C API so that it can be a replacement for existing uses of libxml2.<p>- crates.io: <a href="https://crates.io/crates/xmloxide" rel="nofollow">https://crates.io/crates/xmloxide</a><p>- GitHub release: <a href="https://github.com/jonwiggins/xmloxide/releases/tag/v0.1.0" rel="nofollow">https://github.com/jonwiggins/xmloxide/releases/tag/v0.1.0</a><p>While I don't expect people to cut over to this new and unproven package, I do think there is something interesting to think about here in how coding agents like Claude Code can quickly iterate given a test suite. It's possible the legacy code problem that COBOL and other systems present will go away as rewrites become easier. The problem of ongoing maintenance to fix CVEs and update to later package versions becomes a larger percentage of software package management work.

Show HN: SplatHash – A lightweight alternative to BlurHash and ThumbHash

Hi HN,<p>I built SplatHash. It's a lightweight image placeholder generator I wrote to be a simpler, faster alternative to BlurHash and ThumbHash.<p>Repo: <a href="https://github.com/junevm/splathash" rel="nofollow">https://github.com/junevm/splathash</a>

Show HN: SplatHash – A lightweight alternative to BlurHash and ThumbHash

Hi HN,<p>I built SplatHash. It's a lightweight image placeholder generator I wrote to be a simpler, faster alternative to BlurHash and ThumbHash.<p>Repo: <a href="https://github.com/junevm/splathash" rel="nofollow">https://github.com/junevm/splathash</a>

Show HN: Decided to play god this morning, so I built an agent civilisation

at a pub in london, 2 weeks ago - I asked myself, if you spawned agents into a world with blank neural networks and zero knowledge of human existence — no language, no economy, no social templates — what would they evolve on their own?<p>would they develop language? would they reproduce? would they evolve as energy dependent systems? what would they even talk about?<p>so i decided to make myself a god, and built WERLD - an open-ended artificial life sim, where the agent's evolve their own neural architecture.<p>Werld drops 30 agents onto a graph with NEAT neural networks that evolve their own topology, 64 sensory channels, continuous motor effectors, and 29 heritable genome traits. communication bandwidth, memory decay, aggression vs cooperation — all evolvable. No hardcoded behaviours, no reward functions. - they could evolve in any direction.<p>Pure Python, stdlib only — brains evolve through survival and reproduction, not backprop. There's a Next.js dashboard ("Werld Observatory") that gives you a live-view: population dynamics, brain complexity, species trajectories, a narrative story generator, live world map.<p>thought this would be more fun as an open-source project!<p>can't wait to see where this could evolve - i'll be in the comments and on the repo.<p><a href="https://github.com/nocodemf/werld" rel="nofollow">https://github.com/nocodemf/werld</a>

Show HN: Decided to play god this morning, so I built an agent civilisation

at a pub in london, 2 weeks ago - I asked myself, if you spawned agents into a world with blank neural networks and zero knowledge of human existence — no language, no economy, no social templates — what would they evolve on their own?<p>would they develop language? would they reproduce? would they evolve as energy dependent systems? what would they even talk about?<p>so i decided to make myself a god, and built WERLD - an open-ended artificial life sim, where the agent's evolve their own neural architecture.<p>Werld drops 30 agents onto a graph with NEAT neural networks that evolve their own topology, 64 sensory channels, continuous motor effectors, and 29 heritable genome traits. communication bandwidth, memory decay, aggression vs cooperation — all evolvable. No hardcoded behaviours, no reward functions. - they could evolve in any direction.<p>Pure Python, stdlib only — brains evolve through survival and reproduction, not backprop. There's a Next.js dashboard ("Werld Observatory") that gives you a live-view: population dynamics, brain complexity, species trajectories, a narrative story generator, live world map.<p>thought this would be more fun as an open-source project!<p>can't wait to see where this could evolve - i'll be in the comments and on the repo.<p><a href="https://github.com/nocodemf/werld" rel="nofollow">https://github.com/nocodemf/werld</a>

Show HN: I ported Manim to TypeScript (run 3b1B math animations in the browser)

Hi HN, I'm Narek. I built Manim-Web, a TypeScript/JavaScript port of 3Blue1Brown’s popular Manim math animation engine.<p>The Problem: Like many here, I love Manim's visual style. But setting it up locally is notoriously painful - it requires Python, FFmpeg, Cairo, and a full LaTeX distribution. It creates a massive barrier to entry, especially for students or people who just want to quickly visualize a concept.<p>The Solution: I wanted to make it zero-setup, so I ported the engine to TypeScript. Manim-Web runs entirely client-side in the browser. No Python, no servers, no install. It runs animations in real-time at 60fps.<p>How it works underneath: - Rendering: Uses Canvas API / WebGL (via Three.js for 3D scenes). - LaTeX: Rendered and animated via MathJax/KaTeX (no LaTeX install needed!). - API: I kept the API almost identical to the Python version (e.g., scene.play(new Transform(square, circle))), meaning existing Manim knowledge transfers over directly. - Reactivity: Updaters and ValueTrackers follow the exact same reactive pattern as the Python original.<p>Because it's web-native, the animations are now inherently interactive (objects can be draggable/clickable) and can be embedded directly into React/Vue apps, interactive textbooks, or blogs. I also included a py2ts converter to help migrate existing scripts.<p>Live Demo: <a href="https://maloyan.github.io/manim-web/examples" rel="nofollow">https://maloyan.github.io/manim-web/examples</a> GitHub: <a href="https://github.com/maloyan/manim-web" rel="nofollow">https://github.com/maloyan/manim-web</a><p>It's open-source (MIT). I'm still actively building out feature parity with the Python version, but core animations, geometry, plotting, and 3D orbiting are working great. I would love to hear your feedback, and I'll be hanging around to answer any technical questions about rendering math in the browser!

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.

< 1 2 3 4 ... 948 949 950 >