Sign in

Ives van Hoorne

@ives.sh
4.5K followers 680 following 97 posts

Friends call me Flip, building CodeSandbox! 🍪🏳️‍🌈

PostsRepliesMedia
Ives van Hoorne @ives.sh · 21/08/2026
A nice side effect is that all our logic runs on spot instances now, because it is built with the assumption that it can crash at any time (since browsers literally "crash" at any time when the user closes their tab).
020
Ives van Hoorne @ives.sh · 21/08/2026
With Biscuit we have a durable execution system where we run the agent harness in the browser, and hand it over to a server when the browser tab closes. Now someone talked to Biscuit in Slack, and since I had the project open, my browser tab ran the agent harness and answered 😂
110
Ives van Hoorne @ives.sh · 20/04/2026
Just shipped brand kits to Biscuit! Now we generate a design.md + brand kit for your app at the start, and make them visually editable. Next up is more creativity in choosing colors + storing multiple brand variants.
020
Ives van Hoorne @ives.sh · 16/04/2026
Funnily enough very similar to the early CodeSandbox days, but now with much better tooling!
010
Ives van Hoorne @ives.sh · 16/04/2026
Oxc has been fantastic here. We built custom lints based on common mistakes we saw agents make. For example, we have a rule that watches for Tailwind classes and gives a warning to the agent if it did not implement light/dark mode properly.
120
Ives van Hoorne @ives.sh · 16/04/2026
Almost everything in Biscuit runs in the browser. Code gets compiled using Oxc (wasm), the LSP runs in a web worker, and the agent harness too. This allows for really quick direct manipulation. You can click on any element and edit it without server roundtrips.
120
Ives van Hoorne @ives.sh · 15/04/2026
Ah I missed this! But I saw you got access, really curious what you think! No limit on region right now!
110
Ives van Hoorne @ives.sh · 15/04/2026
I'm planning to share more features and compiler magic over the next few weeks. Also I'd be happy to answer any questions!
000
Ives van Hoorne @ives.sh · 15/04/2026
This makes a better UX for the user, but it also significantly makes it easier for agents to debug code. Our agents see exactly where all variables come from, and things like whether an if condition was true or false. That's a huge help with debugging.
100
Ives van Hoorne @ives.sh · 15/04/2026
So far I’ve only used strings as examples, but the traced data goes beyond strings. We trace conditionals (which condition produced a boolean), class names (what renders in dark mode), numbers and we also support more sources: data, network requests, etc.
100
Ives van Hoorne @ives.sh · 15/04/2026
For non-React cases, we solve it again with the compiler! We detect cases like this, and wrap with __unwrap. __unwrap turns a traced string into a plain string. This is a last resort, because we lose the origin data. We do it for e.g. comparisons, or when we call libraries.
Source code shows a comparison between two strings, with a transformation using Tracer to unwrap them. Highlights coding context.
100
Ives van Hoorne @ives.sh · 15/04/2026
In React, we use a custom `jsxDev` that converts traced strings to real strings before rendering. For each component, we record which traced string it rendered as a child, so clicks can map back to the traced string.
100
Ives van Hoorne @ives.sh · 15/04/2026
The challenge is that React can’t render traced strings out of the box. And comparisons like `str1 === str2` break if either side is traced. So we do two things: - We use a custom version of React (jsxDev) that supports traced strings - We automatically unwrap in our compiler
100
Ives van Hoorne @ives.sh · 15/04/2026
When compiling code, we replace all strings with traced strings. These traced strings say where they come from. `Tracer.__trace` wraps a string with its origin info, so we can track where it came from even after passing through many components.
A code snippet shows a React component using a state hook to track a greeting string with tracing information for debugging.
100
Ives van Hoorne @ives.sh · 15/04/2026
So we want to make it possible to click any UI, and update the text. But text could come from multiple places, like from the database, source code or even from outside of the app (e.g. network request/library). To solve this, we added "traced strings".
Code snippet shows a React component managing a greeting state with a button to update it. The current greeting is "Hello World."
100
Ives van Hoorne @ives.sh · 15/04/2026
In Biscuit you can click on any text and edit it, no matter where it comes from: the database, some variable or just static code. This way you can update any content without leaving the preview. Here's a small thread on how we make this possible:
100
Ives van Hoorne @ives.sh · 15/04/2026
The new Claude Code redesign reminds me of the designs of CodeSandbox. Devtools stacked vertically on the right!
010
Ives van Hoorne @ives.sh · 25/03/2026
Curious to hear what you think!
110
Ives van Hoorne @ives.sh · 24/03/2026
If you have a great idea for an app and want to bring it to life, join the Biscuit waitlist. We'll help you build it and will invest $2000 on the first 25 successful business that launch on Biscuit! Full story: www.biscuit.so/blog
biscuit.so
Meet Biscuit: the all-in-one platform for building your business
A platform purpose-built to run a business, not just to build an app. Payments, emails, hosting, operations. All built-in. Waitlist is open.
010
Ives van Hoorne @ives.sh · 24/03/2026
I'm excited to finally share what we've been working on! For the last 8 months, we've been building Biscuit: an all-in-one platform for building a business. Product, payments, emails, hosting and operations built in. Today we're opening the waitlist 🎉
222
Ives van Hoorne @ives.sh · 19/02/2026
Some personal news! Blixt, Floris and I have started a new startup. We’ve been quietly building something new for indie founders, and it’s starting to feel really good. We'll share more in the coming weeks. But if you’d like early access, send me a message!
060
Ives van Hoorne @ives.sh · 19/11/2025
Oh! Taking a look!
110
Ives van Hoorne @ives.sh · 02/10/2025
Okay, so I see that in CSB 19.2 now properly resolves. I wonder if this is because of a CDN issue (where it cached that it could not resolve 19.2) or something else. I will try directly in the React docs now.
130
Ives van Hoorne @ives.sh · 02/10/2025
Walking to the office now and will take a look when I arrive!
130
Ives van Hoorne @ives.sh · 10/03/2025
I love Honeycomb!!!
140
Ives van Hoorne @ives.sh · 10/03/2025
Few things beat the feeling of deploying code and watching the graphs drop. If that's not enough reason to use OpenTelemetry, I don't know what is!
The AVG and P05 of resume VM duration. It goes down significantly on Friday/Saturday.
1907
Ives van Hoorne @ives.sh · 27/02/2025
When I test in Safari, it says "Opener, Opener Text" when selecting an item, but not the item name. Do you get something different?
100
Ives van Hoorne @ives.sh · 27/02/2025
Wow, this is a real mystery! I'm taking a look! The first thing that comes to mind is that for hot module reloading we inject some hooks (similar to how Webpack does it), but I don't know how that could affect this runtime performance.
110
Ives van Hoorne @ives.sh · 25/02/2025
I just arrived in SF! Anyone wants to meet up or go to any meetup? 😄
160
Reposted by Ives van Hoorne
Josh W. Comeau @joshwcomeau.com · 24/02/2025
🎉 Introducing my upcoming third course, Whimsical Animations! This course will teach you how to build top-tier animations and interactions using a variety of techniques. ✨ You can join the waitlist on the course’s brand-new site, which is the most ridiculous thing I’ve built in quite some time:
whimsy.joshwcomeau.com
Whimsical Animations
Learn how to create charming interactions and delightful touches using the magic of CSS, JavaScript, SVG, and Canvas. I’m sharing all my tricks in this one!
3842268
Ives van Hoorne @ives.sh · 20/02/2025
You can find the template here: codesandbox.io/s/github/co...
030
Ives van Hoorne @ives.sh · 20/02/2025
Created a new template for CodeSandbox that runs a headless chromium browser. It exposes a WebSocket port which you can use to control it. This is especially useful with CodeSandbox SDK, as it allows you to create snapshottable & clonable browser environments on the fly 😄
160
Ives van Hoorne @ives.sh · 19/02/2025
You can find more info about how this works in our docs: codesandbox.io/docs/sdk/po...
codesandbox.io
Ports – CodeSandbox
Learn how you can interact with ports in your sandbox.
010
Ives van Hoorne @ives.sh · 19/02/2025
It's now possible to access preview URLs for private sandboxes with CodeSandbox SDK! We also expose a new CLI (`csb sandbox preview-tokens`) to manage preview tokens for a sandbox.
140
Ives van Hoorne @ives.sh · 22/01/2025
Under the hood, we create a Linux user for every unique session and start a rootless Podman container which the session will operate from. This way, the session is isolated from other sessions, but you will still be able to do root operations. Docs are here: codesandbox.io/docs/sdk/se...
codesandbox.io
Sessions – CodeSandbox
Sessions allow you to create multiple users inside a single sandbox.
000
Ives van Hoorne @ives.sh · 22/01/2025
This has been one of the top feature requests since we released the SDK and it unlocks some cool use cases: - Collaboration: allow multiple users to connect to the same sandbox/branch and collaboratively edit files - Anonymous previews: create r/o sessions to share files/shells with others
100
Ives van Hoorne @ives.sh · 22/01/2025
Just published a new feature I'm excited about for the CodeSandbox SDK: Sessions API 🎉 This API allows you to create multiple users in a single sandbox, allowing for collaborative editing and sharing sandboxes publicly. + we use the same API at CodeSandbox 😄
120
Reposted by Ives van Hoorne
andrew blinn @disconcision.com · 06/01/2025
honey i juiced the caret
2435
Ives van Hoorne @ives.sh · 20/12/2024
You can read more about the update (and give feedback!) on the CodeSandbox SDK repository: github.com/codesandbox...
010
Ives van Hoorne @ives.sh · 20/12/2024
Our first weekly release for CodeSandbox SDK is live! This week we've focused a ton on performance. VM clones are now 2x faster (1.3s) and snapshot resumes are now within a second (0.6s)! Expect some further improvements the next few weeks. Happy holidays & new years! 🎆
140
Ives van Hoorne @ives.sh · 12/12/2024
Oh wow yeah, CodeSandbox would be perfect for this. I need to get a better understanding of DNS to see how we can make it work with different domains in a self-serve way, but I think it should be possible!
110
Ives van Hoorne @ives.sh · 12/12/2024
Thank you!!
010
Ives van Hoorne @ives.sh · 12/12/2024
Interesting, so you would like to support for example ":id.my-domain.tld"? It's not possible today, but I think we should be able to support that. I'll create an issue for it: github.com/codesandbox/...
github.com
Allow custom preview domains · Issue #2 · codesandbox/codesandbox-sdk
Ability to use your own wildcard domain for sandbox preview URLs.
110
Ives van Hoorne @ives.sh · 12/12/2024
Dankjewel!!
020
Ives van Hoorne @ives.sh · 12/12/2024
Me too!
010
Ives van Hoorne @ives.sh · 12/12/2024
Thank you!!
010
Ives van Hoorne @ives.sh · 12/12/2024
Yeah, beyond my wildest imagination 😂
110
Ives van Hoorne @ives.sh · 12/12/2024
I want to thank everyone who has been part of the journey of CodeSandbox so far for their support and advice. It's a wild rollercoaster, but I'm enjoying it thoroughly. When writing the first line of code for CodeSandbox, I never could've imagined it growing to this.
120
Ives van Hoorne @ives.sh · 12/12/2024
CodeSandbox SDK allows you to programmatically spin up VMs on our infrastructure. You'll get all the things we've built for CodeSandbox, including memory snapshot/restore and VM cloning. I'll share more examples, but you can already play with it here: github.com/codesandbox/....
120
Ives van Hoorne @ives.sh · 12/12/2024
We're starting a new chapter with CodeSandbox! Next to the news of moving and marrying, I promise this is the last big news from me this year 😂. This is huge for us. We'll have more resources to build and grow CodeSandbox, and I'm extremely excited about CodeSandbox SDK.
5210