Making a simple NFT Smart Contract

Hey all,

I am in the process of learning smart contracts as in the near future, I would like to release an NFT collection. To start off, the main functions of the contract that I would like to learn how to make would be: Max Supply, Max Mint Per Wallet, Presale Mint, Mint Price, Whitelist of wallets, Pause the contract, Withdrawal of eth from contract to owner address.
Therefore if anyone could link me to some useful documentation or tutorials, I would be very grateful!

At the moment, I am just trying to get my head around the code using Remix - Ethereum IDE in conjunction with the Openzeppelin Wizard, so once I've learn the code and functions can I just import it into this editor? Because I've seen multiple tutorials saying I need to use something like Truffle or Hardhat? Why do I need this? I know I am I total noob at this subject so any explanation would also be helpful!

Thanks a lot! :slight_smile:

Remix is good for experimenting a little. The main reason to graduate to Hardhat or Truffle is building a thorough automated test suite.