<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: CompuIves</title><link>https://news.ycombinator.com/user?id=CompuIves</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 19 Aug 2026 03:10:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=CompuIves" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by CompuIves in "How we run Firecracker VMs inside EC2 and start browsers in less than 1s"]]></title><description><![CDATA[
<p>Very cool to see more use of userfaultfd, really powerful API because you can fully control how and from where memory is loaded during a pagefault.</p>
]]></description><pubDate>Wed, 17 Jun 2026 18:19:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48574439</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=48574439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48574439</guid></item><item><title><![CDATA[New comment by CompuIves in "Launch HN: Freestyle – Sandboxes for Coding Agents"]]></title><description><![CDATA[
<p>This is really cool to see, reminds me of the early days of CodeSandbox. Though this API looks _fantastic_. I love that you do VM configuration using `with`.</p>
]]></description><pubDate>Tue, 07 Apr 2026 08:58:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47672447</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=47672447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47672447</guid></item><item><title><![CDATA[New comment by CompuIves in "Show HN: Sub-millisecond VM sandboxes using CoW memory forking"]]></title><description><![CDATA[
<p>I think this is very similar! Really cool to see.<p>The first version we launched used the exact same approach (MAP_PRIVATE). Later on, we bypassed the file system by using shared memory and using userfaultfd because ultimately the NVMe became the bottleneck (<a href="https://codesandbox.io/blog/cloning-microvms-using-userfaultfd" rel="nofollow">https://codesandbox.io/blog/cloning-microvms-using-userfault...</a> and <a href="https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression" rel="nofollow">https://codesandbox.io/blog/how-we-scale-our-microvm-infrast...</a>).</p>
]]></description><pubDate>Wed, 18 Mar 2026 14:41:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47426413</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=47426413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47426413</guid></item><item><title><![CDATA[New comment by CompuIves in "We clone a running VM in 2 seconds (2022)"]]></title><description><![CDATA[
<p>Yes, that's right. The Firecracker team has written a fantastic doc about this as well: <a href="https://github.com/firecracker-microvm/firecracker/blob/main/docs/snapshotting/random-for-clones.md">https://github.com/firecracker-microvm/firecracker/blob/main...</a>.<p>It's important to refresh entropy immediately after clone. Still, there can be code that didn't assume it could be cloned (even though there's always been `fork`, of course). Because of this, we don't live clone across workspaces for unlisted/private sandboxes and limit the use case to dev envs where no secrets are stored.</p>
]]></description><pubDate>Fri, 11 Apr 2025 15:45:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43655157</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=43655157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43655157</guid></item><item><title><![CDATA[New comment by CompuIves in "We clone a running VM in 2 seconds (2022)"]]></title><description><![CDATA[
<p>I talk a bit about this here: <a href="https://codesandbox.io/blog/cloning-microvms-using-userfaultfd" rel="nofollow">https://codesandbox.io/blog/cloning-microvms-using-userfault...</a>. Before VM A updates its data, the data is copied over to VM B if VM B hadn't written/read that data yet.</p>
]]></description><pubDate>Fri, 11 Apr 2025 15:35:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43655050</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=43655050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43655050</guid></item><item><title><![CDATA[New comment by CompuIves in "We clone a running VM in 2 seconds (2022)"]]></title><description><![CDATA[
<p>Oh wow! Unexpected and cool to see this post on Hacker News! Since then we have evolved our VM infra a bit, and I've written two more posts about this.<p>First, we started cloning VMs using userfaultfd, which allows us to bypass the disk and let children read memory directly from parent VMs [1].<p>And we also moved to saving memory snapshots compressed. To keep VM boots fast, we need to decompress on the fly as VMs read from the snapshot, so we chunk up snapshots in 4kb-8kb pieces that are zstd compressed [2].<p>Happy to answer any questions here!<p>[1]: <a href="https://codesandbox.io/blog/cloning-microvms-using-userfaultfd" rel="nofollow">https://codesandbox.io/blog/cloning-microvms-using-userfault...</a><p>[2]: <a href="https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression" rel="nofollow">https://codesandbox.io/blog/how-we-scale-our-microvm-infrast...</a></p>
]]></description><pubDate>Fri, 11 Apr 2025 15:32:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43655010</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=43655010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43655010</guid></item><item><title><![CDATA[New comment by CompuIves in "Anyone can push updates to the doge.gov website"]]></title><description><![CDATA[
<p>It's a block for non-US IPs, I think. The page is an application form for joining them, and it only accepts US citizens.</p>
]]></description><pubDate>Fri, 14 Feb 2025 15:16:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43049173</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=43049173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43049173</guid></item><item><title><![CDATA[Show HN: CodeSandbox SDK – Sandboxes for AI Agents]]></title><description><![CDATA[
<p>Article URL: <a href="https://codesandbox.io/docs/sdk">https://codesandbox.io/docs/sdk</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42400957">https://news.ycombinator.com/item?id=42400957</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 12 Dec 2024 17:03:16 +0000</pubDate><link>https://codesandbox.io/docs/sdk</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=42400957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42400957</guid></item><item><title><![CDATA[Etched Is Making the Biggest Bet in AI]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.etched.com/announcing-etched">https://www.etched.com/announcing-etched</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40788749">https://news.ycombinator.com/item?id=40788749</a></p>
<p>Points: 45</p>
<p># Comments: 17</p>
]]></description><pubDate>Tue, 25 Jun 2024 14:01:10 +0000</pubDate><link>https://www.etched.com/announcing-etched</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=40788749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40788749</guid></item><item><title><![CDATA[New comment by CompuIves in "We scale our microVM infrastructure using low-latency memory decompression"]]></title><description><![CDATA[
<p>A new post in what is slowly becoming a series! Happy to discuss this or answer any questions here.</p>
]]></description><pubDate>Wed, 29 May 2024 16:54:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=40514095</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=40514095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40514095</guid></item><item><title><![CDATA[We scale our microVM infrastructure using low-latency memory decompression]]></title><description><![CDATA[
<p>Article URL: <a href="https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression">https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40514085">https://news.ycombinator.com/item?id=40514085</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 29 May 2024 16:54:00 +0000</pubDate><link>https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=40514085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40514085</guid></item><item><title><![CDATA[New comment by CompuIves in "JavaScript Bloat in 2024"]]></title><description><![CDATA[
<p>Exactly, the result would've been different if the author would not have disabled caching.<p>In this case it's because the iframes are loaded/unloaded multiple times, but we also spawn web workers where the same worker is spawned multiple times (for transpiling code in multiple threads, for example). In all those cases we rely on caching so we don't have to download the same worker code more than once.</p>
]]></description><pubDate>Fri, 23 Feb 2024 10:59:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=39479161</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=39479161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39479161</guid></item><item><title><![CDATA[New comment by CompuIves in "Amsterdam Switches to 30 Km/h on 80% of its Roads"]]></title><description><![CDATA[
<p>If you want to be efficient in Amsterdam, you take the bike or public transport. That has been faster than cars even before this change, and now more so.</p>
]]></description><pubDate>Fri, 08 Dec 2023 12:13:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=38568072</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=38568072</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38568072</guid></item><item><title><![CDATA[New comment by CompuIves in "Dev Container Support in CodeSandbox"]]></title><description><![CDATA[
<p>Hey all! I'm one of the co-founders of CodeSandbox. Happy to answer any (technical) questions about this release or CodeSandbox in general!</p>
]]></description><pubDate>Thu, 19 Oct 2023 23:53:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=37950397</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=37950397</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37950397</guid></item><item><title><![CDATA[Dev Container Support in CodeSandbox]]></title><description><![CDATA[
<p>Article URL: <a href="https://codesandbox.io/blog/introducing-dev-container-support-in-codesandbox">https://codesandbox.io/blog/introducing-dev-container-support-in-codesandbox</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=37950384">https://news.ycombinator.com/item?id=37950384</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 19 Oct 2023 23:52:24 +0000</pubDate><link>https://codesandbox.io/blog/introducing-dev-container-support-in-codesandbox</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=37950384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37950384</guid></item><item><title><![CDATA[New comment by CompuIves in "Ask HN: Is anyone using cloud dev environments (e.g. Codespaces/Replit) at work?"]]></title><description><![CDATA[
<p>Yes! But I work on CodeSandbox, so that creates some bias :). We've been working on our own CDE solution, though we've taken a different spin to improve speed and cost.<p>Our solution is based on Firecracker, which enables us to "pause" (& clone) a VM at any point in time and resume it later exactly where it left of, within 1.5s. This gives the benefit that you won't have to wait for your environment to spin up when you request one, or when you continue working on one after some inactivity.<p>However, there's another benefit to that: we can now "preload" development environments. Whenever someone opens a pull request (even from local), we create a VM for it in the background. We run the dev server/LSPs/everything you need, and then pause the VM. Now whenever you want to review that pull request, we resume that environment and you can instantly review the code or check the dev server/preview like a deployment preview.<p>It also reduces cost. We can pause the VM after 5 minutes of inactivity, and when you come back, we'll resume it so it won't feel like the environment was closed at all. In other solutions you either need to keep a server spinning in the background, or increase the "hibernation timeout" to make sure you don't have the cold boot.<p>It's kind of like your laptop, if you close it you don't expect it to shut down and boot the whole OS again when you open it. I've written more about how we do the pausing/cloning here (<a href="https://codesandbox.io/blog/how-we-clone-a-running-vm-in-2-seconds" rel="nofollow noreferrer">https://codesandbox.io/blog/how-we-clone-a-running-vm-in-2-s...</a>) and here (<a href="https://codesandbox.io/blog/cloning-microvms-using-userfaultfd" rel="nofollow noreferrer">https://codesandbox.io/blog/cloning-microvms-using-userfault...</a>).</p>
]]></description><pubDate>Thu, 19 Oct 2023 23:23:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=37950150</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=37950150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37950150</guid></item><item><title><![CDATA[New comment by CompuIves in "Vscode.dev: Local Development with Cloud Tools"]]></title><description><![CDATA[
<p>The editor on CodeSandbox runs web VSCode, and in that version we emulate Node.js in the browser to run local extensions.</p>
]]></description><pubDate>Tue, 25 Jul 2023 10:43:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=36860420</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=36860420</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36860420</guid></item><item><title><![CDATA[New comment by CompuIves in "We replaced Firecracker with QEMU"]]></title><description><![CDATA[
<p>Thank you!<p>> custom io_uring based driver for the VM block devices? or what do you mean here?<p>We're using the async io backend that's shipped with Firecracker for our scratch disks.</p>
]]></description><pubDate>Tue, 11 Jul 2023 15:56:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=36682819</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=36682819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36682819</guid></item><item><title><![CDATA[New comment by CompuIves in "We replaced Firecracker with QEMU"]]></title><description><![CDATA[
<p>At CodeSandbox we use Firecracker for hosting development environments, and I agree with the points. Though I don't think that means you should not use Firecracker for running long-lived workloads.<p>We reclaim memory with a memory balloon device, for the disk trimming we discard (& compress) the disk, and for i/o speed we use io_uring (which we only use for scratch disks, the project disks are network disks).<p>It's a tradeoff. It's more work and does require custom implementations. For us that made sense, because in return we get a lightweight VMM that we can more easily extend with functionality like memory snapshotting and live VM cloning [1][2].<p>[1]: <a href="https://codesandbox.io/blog/how-we-clone-a-running-vm-in-2-seconds" rel="nofollow noreferrer">https://codesandbox.io/blog/how-we-clone-a-running-vm-in-2-s...</a><p>[2]: <a href="https://codesandbox.io/blog/cloning-microvms-using-userfaultfd" rel="nofollow noreferrer">https://codesandbox.io/blog/cloning-microvms-using-userfault...</a></p>
]]></description><pubDate>Mon, 10 Jul 2023 17:29:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=36669740</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=36669740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36669740</guid></item><item><title><![CDATA[New comment by CompuIves in "We replaced Firecracker with QEMU"]]></title><description><![CDATA[
<p>Yes, we use this at CodeSandbox for reclaiming memory to the host (and to reduce snapshot size when we hibernate the VM).</p>
]]></description><pubDate>Mon, 10 Jul 2023 17:20:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=36669562</link><dc:creator>CompuIves</dc:creator><comments>https://news.ycombinator.com/item?id=36669562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36669562</guid></item></channel></rss>