No-Library (pure JS), HTML, CSS, JavaScript
This let's you explore how MetaMask builds a transaction. You can modify the parameters and try to send it to see what happens.