<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: NathanFlurry</title><link>https://news.ycombinator.com/user?id=NathanFlurry</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 07:50:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=NathanFlurry" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>Cheers!</p>
]]></description><pubDate>Sat, 28 Feb 2026 19:14:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47199072</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47199072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47199072</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>Yep, everyone seems to reinventing the actor model from first principles right now.<p>We're taking a different approach of building the best actor primitive for mainstream languages and letting people build a thin AI layer on top. We did not set out out build for AI when we started it, it was a happy accident.</p>
]]></description><pubDate>Sat, 28 Feb 2026 19:14:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47199067</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47199067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47199067</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>Thanks! Any questions in particular on the comparison?</p>
]]></description><pubDate>Sat, 28 Feb 2026 19:03:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47198976</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47198976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47198976</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>Cheers!</p>
]]></description><pubDate>Sat, 28 Feb 2026 18:34:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47198678</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47198678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47198678</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>Hey! This is a common question.<p>In our experience, most apps don't need cross-tenant queries outside of BI. For example, think about the apps you use on a daily basis: Linear, Slack, ChatGPT all fit well with an actor-per-workspace or actor-per-thread model.<p>To be clear, we're not trying to replace Postgres. We're focused on modern workloads like AI, realtime, and SaaS apps where per-tenant & per-agent databases are a natural fit.<p>Using SQLite for your per-tenant or per-agent databases has a lot of benefits:<p>- Compute + state: running the SQLite database embedded in the actor has performance benefits<p>- Security: solutions like RLS are a security nightmare, much easier to have peace of mind with full DB isolation per tenant<p>- Per-tenant isolation: important for SaaS platforms, better for security & performance<p>- Noisy neighbors: limits the blast radius of a noisy neighbor or bad query to a single tenant's database<p>- Enables different schemas for every tenant<p>- AI-generated backends: modern use cases often require AI-generated apps to have their own custom databases; this model makes that easy<p>A few other points of reference in the space:<p>- Cloudflare Durable Objects & Agents are built on this model, and much of Cloudflare's internal architecture is built on DO<p>- <a href="https://neon.com/use-cases/database-per-tenant" rel="nofollow">https://neon.com/use-cases/database-per-tenant</a><p>- <a href="https://turso.tech/multi-tenancy" rel="nofollow">https://turso.tech/multi-tenancy</a><p>- <a href="https://www.thenile.dev/" rel="nofollow">https://www.thenile.dev/</a><p>- Val.town & Replit<p>> Better usage of resources<p>I'd be curious to hear more about what you mean by this.<p>> always allows a parent style agent do complex queries<p>Do you have a specific use case in mind where agents need to query other agents' data?</p>
]]></description><pubDate>Sat, 28 Feb 2026 18:32:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47198651</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47198651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47198651</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document"]]></title><description><![CDATA[
<p>We built everything with this architecture internally already at Rivet. It's less common than you might expect to have to query cross-DB in practice.<p>However, we are planning on building a query engine that can operate over multiple databases. One option we're considering is exposing Rivet SQLite as a DuckDB datasource: <a href="https://duckdb.org/docs/stable/data/data_sources" rel="nofollow">https://duckdb.org/docs/stable/data/data_sources</a></p>
]]></description><pubDate>Sat, 28 Feb 2026 17:51:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47198187</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47198187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47198187</guid></item><item><title><![CDATA[Show HN: SQLite for Rivet Actors – one database per agent, tenant, or document]]></title><description><![CDATA[
<p>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></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47197003">https://news.ycombinator.com/item?id=47197003</a></p>
<p>Points: 45</p>
<p># Comments: 16</p>
]]></description><pubDate>Sat, 28 Feb 2026 16:11:58 +0000</pubDate><link>https://github.com/rivet-dev/rivet</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47197003</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47197003</guid></item><item><title><![CDATA[New comment by NathanFlurry in "I am directing the Department of War to designate Anthropic a supply-chain risk"]]></title><description><![CDATA[
<p>What does this mean for Bun (recently acquired by Anthropic)?</p>
]]></description><pubDate>Sat, 28 Feb 2026 00:27:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47188192</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=47188192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47188192</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp"]]></title><description><![CDATA[
<p>OpenCode supports:<p>- TUI (I prefer this for most programming)<p>- Web UI (negligible difference than VS Code)<p>- Mobile support (via web UI)<p>- TypeScript SDK to automate</p>
]]></description><pubDate>Sun, 08 Feb 2026 00:10:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46929798</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46929798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46929798</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp"]]></title><description><![CDATA[
<p>Been using it for a bit now, it's very convenient if I may say so myself. We're shipping a big stability update in a few minutes – would love feedback!</p>
]]></description><pubDate>Sat, 07 Feb 2026 08:12:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46922204</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46922204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46922204</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp"]]></title><description><![CDATA[
<p>Thanks!</p>
]]></description><pubDate>Fri, 06 Feb 2026 21:03:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46918101</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46918101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46918101</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp"]]></title><description><![CDATA[
<p>Yes. We want to support ACP. They have a spec for HTTP transport in the works, but there is nothing public on it. Trying to backchannel to the right folks.</p>
]]></description><pubDate>Fri, 06 Feb 2026 21:03:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46918098</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46918098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46918098</guid></item><item><title><![CDATA[Show HN: Gigacode – Use OpenCode's UI with Claude Code/Codex/Amp]]></title><description><![CDATA[
<p>Gigacode is an experimental, just-for-fun project that makes OpenCode's TUI + web + SDK work with Claude Code, Codex, and Amp.<p>It's not a fork of OpenCode. Instead, it implements the OpenCode protocol and just runs `opencode attach` to the server that converts API calls to the underlying agents.<p>We build this to scratch our itch of being able to rapidly switch between coding agents based on the task at hand. For example, we find that:<p>- Claude Code is the best executor & fast iterator
- Codex (high) is the best for complex or long-running tasks
- OpenCode for fine-tuned, do-exactly-as-I-say edits<p>I personally believe that harnesses matter almost as much as the models in 2026. OpenCode lets you swap out models already, but the CC & Codex harnesses + system prompts make a big difference in practice.<p>Under the hood, this is all powered by our Sandbox Agent SDK:<p>- Sandbox Agent SDK provides a universal HTTP API for controlling Claude Code, Codex, and Amp
- Sandbox Agent SDK exposes an OpenCode-compatible endpoint so OpenCode can talk to any agent
- OpenCode connects to Sandbox Agent SDK via attach<p>I want to emphasize: the Anomaly folks are doing awesome work with OpenCode agent + Zen + Black. I use OC regularly alongside CC & Codex depending on the task. Gigacode is only possible because OpenCode is insanely flexible, hackable, and well documented.<p>Give it a try:<p>$ curl -fsSL <a href="https://releases.rivet.dev/sandbox-agent/latest/gigacode-install.sh">https://releases.rivet.dev/sandbox-agent/latest/gigacode-ins...</a> | sh<p>Check out the project, architecture, and other install options:<p><a href="https://github.com/rivet-dev/sandbox-agent/tree/main/gigacode" rel="nofollow">https://github.com/rivet-dev/sandbox-agent/tree/main/gigacod...</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46912682">https://news.ycombinator.com/item?id=46912682</a></p>
<p>Points: 27</p>
<p># Comments: 11</p>
]]></description><pubDate>Fri, 06 Feb 2026 13:38:18 +0000</pubDate><link>https://github.com/rivet-dev/sandbox-agent/tree/main/gigacode</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46912682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46912682</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Sandbox Agent SDK – unified API for automating coding agents"]]></title><description><![CDATA[
<p>Hit the nail on the head.<p>(Sprites.dev in the works already.)</p>
]]></description><pubDate>Tue, 03 Feb 2026 00:03:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46864240</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46864240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46864240</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Sandbox Agent SDK – unified API for automating coding agents"]]></title><description><![CDATA[
<p>Thank you!<p>Posted this morning an overview of the project: <a href="https://x.com/NathanFlurry/status/2018366627021291699" rel="nofollow">https://x.com/NathanFlurry/status/2018366627021291699</a></p>
]]></description><pubDate>Tue, 03 Feb 2026 00:01:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46864212</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46864212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46864212</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: Sandbox Agent SDK – unified API for automating coding agents"]]></title><description><![CDATA[
<p>That's correct.<p>As you said – in terms of project goals, the biggest difference is:<p>- ACP seems to be focused on providing a universal API for the subset of features required for editors<p>- Sandbox Agent SDK is focused on automating agents, so aims to provide a much more comprehensive API coverage for niche agent-specific features<p>We maintain a feature coverage matrix (<a href="https://sandboxagent.dev/docs/session-transcript-schema#coverage-matrix" rel="nofollow">https://sandboxagent.dev/docs/session-transcript-schema#cove...</a>) – it's early, much more coming soon.</p>
]]></description><pubDate>Tue, 03 Feb 2026 00:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46864206</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46864206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46864206</guid></item><item><title><![CDATA[Show HN: Sandbox Agent SDK – unified API for automating coding agents]]></title><description><![CDATA[
<p>We’ve been working with automating coding agents in sandboxes as of late. It’s bewildering how poorly standardized and difficult to use each agent varies between each other.<p>We open-sourced the Sandbox Agent SDK based on tools we built internally to solve 3 problems:<p>1. Universal agent API: interact with any coding agent using the same API<p>2. Running agents inside the sandbox: Agent Sandbox provides a Rust binary that serves the universal agent API over HTTP, instead of having to futz with undocumented interfaces<p>3. Universal session schema: persisting sessions is always problematic, since we don’t want the source of truth for the conversation to live inside the container in a schema we don’t control<p>Agent Sandbox SDK has:<p>- Any coding agent: Universal API to interact with all agents with full feature coverage<p>- Server or SDK mode: Run as an HTTP server or with the TypeScript SDK<p>- Universal session schema: Universal schema to store agent transcripts<p>- Supports your sandbox provider: Daytona, E2B, Vercel Sandboxes, and more<p>- Lightweight, portable Rust binary: Install anywhere with 1 curl command<p>- OpenAPI spec: Well documented and easy to integrate<p>We will be adding much more in the coming weeks – would love to hear any feedback or questions.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46795584">https://news.ycombinator.com/item?id=46795584</a></p>
<p>Points: 41</p>
<p># Comments: 7</p>
]]></description><pubDate>Wed, 28 Jan 2026 14:06:48 +0000</pubDate><link>https://github.com/rivet-dev/sandbox-agent</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46795584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46795584</guid></item><item><title><![CDATA[New comment by NathanFlurry in "Show HN: SF Microclimates"]]></title><description><![CDATA[
<p>Love it<p>Hacked together an SF parks ranking system based on current weather<p><a href="https://sfparks.nathanflurry.com/" rel="nofollow">https://sfparks.nathanflurry.com/</a></p>
]]></description><pubDate>Tue, 27 Jan 2026 02:28:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46774766</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46774766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46774766</guid></item><item><title><![CDATA[Actors: The Four Properties That Eliminate Complexity]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.rivet.dev/learn/act-1/scene-1-a-radically-simpler-architecture">https://www.rivet.dev/learn/act-1/scene-1-a-radically-simpler-architecture</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46049417">https://news.ycombinator.com/item?id=46049417</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 25 Nov 2025 19:04:57 +0000</pubDate><link>https://www.rivet.dev/learn/act-1/scene-1-a-radically-simpler-architecture</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=46049417</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46049417</guid></item><item><title><![CDATA[WebSockets for Vercel Functions: How We Built It]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.rivet.dev/blog/2025-10-20-how-we-built-websocket-servers-for-vercel-functions/">https://www.rivet.dev/blog/2025-10-20-how-we-built-websocket-servers-for-vercel-functions/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45644047">https://news.ycombinator.com/item?id=45644047</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 20 Oct 2025 14:02:08 +0000</pubDate><link>https://www.rivet.dev/blog/2025-10-20-how-we-built-websocket-servers-for-vercel-functions/</link><dc:creator>NathanFlurry</dc:creator><comments>https://news.ycombinator.com/item?id=45644047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45644047</guid></item></channel></rss>