I’m also fairly new here and also a developer but learning cardano still. I have recently minted the first NFT for a project my artist friend and I created, having done so without a smart contract just minting using a node and the cardano-cli. When you mint you create a policy script file and from that you generate a Policy ID. That ID then goes in the JSON for the NFT and you use both your payment signing key and policy signing key to sign the transaction before sending it.
The script essentially has rules in it. For example, ours has an “all” that indicates all rules must be met by the policy. Then we have two rules, sig->hash; before->blockheight. Basically means to mint to that policy it must be signed by the signer of the hash, and must be minted before the blockheight…afterwhich it’s considered locked and no other items (nft or coins) can be minted to that policy.
You could treat a policy like a collection (if you are familiar with the opensea or similar format). But again, once the blockheight is reached that you have in your policy script, (and as long as you have the “all”) then no other items will be able to be minted to that policy ID.
As for the selling using smart contracts, I’m in the midst of working on that myself. I’ve created a swap contract on Marlowe but from what I’ve read I will need to do this using Plutus for now as Marlowe will rely on the PAB?? Maybe someone with more info can clarify that point…and I’d love to see a really clear step by step on creating, say a swap contract like I’m working on, and taking it to the blockchain, like the whole process through would be cool (I learn from doing more than reading).