Deployment of Lazy Mint with IPFS

I’m looking for the simplest way to mint NFTs that are created by user on my site. I’d like to know if I’m on the right path, if there are any simpler solutions, and if not then what to do to progress.

Ideally a simple flow along these lines: Image and metadata is pushed to Pinata and generates a CID → CID gets associated with the NFT that is going to be minted → NFT is now minted to the users wallet with the corresponding metadata that was pushed to Pinata.

Is there perhaps an app immanent to do this?

If not, I understand I can do this with an extension following the lazy mint example, this will require me to implement Pinata and use ethers.js on my webpage. If this is the best way to do this, is there an example I can follow?

I am currently stuck setting the baseURI when deploying registering the extension on my base contract. As I understand it this will be generated by Pinata, and I can’t just add to an existing folder

Any broad guidance, or specific examples or solutions would be appreciated. thanks

We are not currently working on an app related to this.

Yes - you would have to implement some sort of IPFS uploading system on your website and write the javascript to do that and to interact with the contract.

You might find some useful code here - GitHub - manifoldxyz/manifold-templates

When you register the extension you can just set an empty baseURI. If your extension implements the ICreatorExtensionTokenURI interface then it can fully manage the token URIs independent of what the baseURI is.