akhi07rx

2 min read

Project IDX, a browser-based Flutter dev environment


I stumbled across Project IDX at some point, signed up, and forgot about it until Google I/O, where it was announced as open beta.

Project IDX entered open beta on May 14, 2024 at Google I/O. Previously invite-only since August 2023, it now requires only a Google account to access.

IDX is a browser-based development environment built on Code OSS and hosted on Google Cloud. The full Linux VM running your project lives in the cloud, so the machine doing the heavy lifting is not yours. I tried it with a Flutter project. Setup was faster than I expected: pick a template, wait a moment, and the workspace opens looking exactly like VS Code because it largely is VS Code. Hot reload worked. The Android emulator ran in the browser alongside the editor.

On my machine, Android Studio with the emulator running is rough: the fans go loud and everything else slows down. With IDX that cost moves off-device, which is the part that actually mattered to me here. The emulator stalled and became unresponsive a few times, but I suspect that was my connection rather than IDX itself.

The iOS simulator is also available, which is something I have wanted access to for a while. Flutter is cross-platform and developing for iOS has always been blocked for me by the Mac requirement. I did not get to test it this time, but having it available without the hardware dependency is the thing I am most curious to try properly.

IDX uses Nix for environment configuration: each workspace has a dev.nix file that declares the packages and tools available. Docker support for dev environments was also added around the open beta. Both make sense once you are already running workspaces inside a Linux VM.

It works. The emulator reliability needs more time to evaluate, and the iOS simulator is still something I want to test under real conditions.

The emulator crashes were probably connection-related on my end. Not enough data yet to say for certain. The iOS simulator is what I am most interested in testing next.