So I'm surprised by this tutorial. In principle, it works. Thanks to your tutorial I managed to create a site where people can pay ( :') ) to send jokes. Today I am 24 hours after the realization of your tutorial to try to go further and I realize that I am still not able to fly of my own wings on Solana. So you'll tell me that it's normal and that you have to make tutorials, but what worries me is that I've already made several haha. So in fact, I said to myself: "Look, it's cool, we can send our message. Oops I was wrong. I would like to delete it". So I challenged myself to add what is necessary to the program to be able to delete it. But blank page. I have no logic of what I should do. Overall I have the tracks. Since each joke is an account, I have to close that account. And I thought ok, I have the account for this joke, I just have to send it to the program and that's it! (Thought of Web2 with a simple API) but actually not at all. I realize that I don't know how to think about a Smart Contract. The different macros (and fortunately in this tutorial we don't need PDAs), when to take references (the problem comes from Rust and not from the tutorial, I've been cramming the Rust documentation for 3 days now), the use of context in the main function etc.. Solana gymnastics is not so obvious. And even if we understand that "everything is account" it doesn't unlock the ultimate logic. The same goes for editing the message. Impossible to build the function. It's terrible because I've understood a lot of things since I've been training in Solana: Everything is account (In a Todo-list for example, the list is an account but each item inside is an account too) It is necessary to have a Signer when a private key is needed (generating a paying transaction) Roughly, a blockchain is like a DB, and a program is like an API (data processing, CRUD, ...) PDAs are accounts without private keys linked to a program. This gives authority to the program. Anchor is a framework allowing the development of Smart Contract on Solana, with multiple macros to simplify the writing of Rust Web3 allows interaction with a program. The gymnastics is also new but is very close to Web2 And yet, despite all this, I am still unable to think about the logic of a smart contract. If I had to delete this project, I wouldn't be able to start it again (except maybe the use of anchor init :') )