Open this lesson in your favourite AI. It'll walk you through the why, explain the demo, and quiz you on the try-it list.
Remix (remix.ethereum.org) is the fastest way to write, compile, and deploy a tiny contract without installing anything. It runs in your browser. For teaching, prototyping, or when Foundry is overkill, Remix is unbeatable — you can be deploying in under a minute. It's not the right tool for production projects, but it's the right tool for learning, experimenting, or showing someone a deploy live.
Remix's in-browser compiler, JavaScript VM, and MetaMask injection give you compile → deploy → call in a single tab, making it the fastest way to try a one-off contract change without installing anything locally. The tradeoff is that Remix has no version-controlled artifacts and no fuzz tests, so real development moves to Foundry once you need reproducibility.
1. Open https://remix.ethereum.org in your browser. (No signup.)
2. File Explorer → "contracts/" → New File → "Hello.sol"
3. Paste:
pragma solidity ^0.8.20;
contract Hello {
string public greeting;
constructor(string memory g) { greeting = g; }
function setGreeting(string memory g) external { greeting = g; }
}
4. Solidity Compiler tab → "Compile Hello.sol" (Ctrl+S works too).
5. Deploy & Run Transactions tab:
- Environment: "Remix VM (Shanghai)" (in-browser EVM, no wallet needed)
- Contract: "Hello"
- Deploy box: enter "hi"
- Click "Deploy".
6. Expand the deployed contract card at the bottom.
- Click "greeting" (blue = view call) → returns "hi".
- Type "bye" in the setGreeting field, click the button (orange = transaction).
- Click "greeting" again → returns "bye".
You've just written, compiled, deployed, and interacted with a smart contract, with zero installation.Use these three in order. Each builds on the one before.
Describe Remix and when to reach for it instead of Foundry. Is it production-grade? Why or why not?
Remix's 'Remix VM' environment runs an entire EVM in the browser via WebAssembly. Walk me through what that means — where is state stored, what persists across reloads, what doesn't?
Remix has a rich plugin ecosystem (solhint, mythx, etherscan-contract-verifier). Pick one and explain how it extends Remix's capabilities under the hood — how does a plugin interact with Remix's file system and compiler?