💻 ICP Development on Windows, macOS and Linux

Today we’re announcing a new suite of one-click development environments for canister smart contracts on the IC. These environments allow you to quickly start developing for the IC, without having to install editors, compilers, dependencies or other tools separately. We’ve created one for Motoko, and another one for Rust, from which you can start developing a canister within minutes. These environments work on Windows, macOS and Linux.

:rocket: Trying it out

To get started, you can click here to open the Motoko environment in Gitpod, or here for the Rust version. You’ll be presented with an in-browser editor (VS Code), and can start extending the sample frontend and backend canisters, and also add new ones. To see your canister’s frontend in action, run dfx deploy, which compiles and deploys the project to a local test environment, and follow the link that is printed.

To test your canisters, we’ve also integrated PocketIC, such that you can start writing integration tests from day one. You can find an example in the tests folder.

:gear: How it Works

These development environments are made possible by combining VS Code with Docker images and dev containers. On top of that, we’ve integrated GitHub Codespaces and Gitpod, which allow you to open these containers as a remote workspace in your browser. Both of them require a GitHub account, and they have some free tiers available, but can also require a subscription.

You can also choose to run the workspace in a hybrid mode, where you use your local VS Code installation.

Finally, you can also choose to run everything locally by just installing Docker on your machine. To learn more, check out the Rust and Motoko repositories.

:speech_balloon: Feedback

We hope that these environments lower the entry barrier for new developers, and get you started even quicker, especially if you’re using Windows. If you have any questions or feedback, we’d be happy to hear from you!

19 Likes

This is awesome, great work @fxgst !

Did you consider creating dev container features? This would be more flexible, allowing developers to choose their own base image and then pull in the features that they require.

2 Likes

Hi Nathan, good idea, that’d be a nice addition. For now, we focused on providing a one-click solution that does not require additional setup – targeting new devs.

1 Like

This is very good! And needed.

I had a few workshops and students were stalling a lot on having to setup their machine.

This browser way is much, much better. Allowing them to do a full workshop or in-person hackathon, and when ended, their laptop is clean (no need to uninstall).

Thanks for this great addition. If I stuble / have any bad experience, will let you know :+1:

3 Likes

Hi @tiago89, I’m glad you like the idea. Looking forward to your feedback!