> If your app is such that it relies on user-generated content, it wouldn't be Web3 for you to host it exclusively on your Pi, because the users generating the content would not own it, or have guarantees that the data on the Pi was not being manipulated or misused by you. The key idea of Web3 is user ownership and community ownership.
Aren't most NFT assets hosted on cloud platforms? OpenSea on GCP for example
No. OpenSea is a centralized NFT marketplace not unlike how Coinbase is a centralized marketplace for fungible cryptocurrencies.
OpenSea uses GCP for hosting. But OpenSea does not own your NFTs nor choose where NFTs are hosted. OpenSea does use GCP as a caching layer for NFTs, since it's not scalable to fetch from thousands of different sources at load time.
An NFT is created by deploying a smart contract, and the creator of that contract is free to choose how that asset is hosted. Some NFTs are made entirely of on-chain (typically SVG) assets. Some choose IPFS and post the verifiable hash of the file on the blockchain (much smaller footprint and particularly important for large files). IPFS content must be pinned or hosted in order to guarantee availability and a lot of projects will rely on Filecoin or Arweave for decentralized archival of these assets. They may also host a pinning service on one of the big 3 cloud platforms for additional availability and responsiveness. In that case, even if the content was booted from the cloud co's site, the community could easily fall back on Filecoin or Arweave pin and move their content to another caching layer, with users having guarantee that the data matches the IPFS hash. And then again, some NFT projects do centrally host the content and metadata, and do so intentionally so that they can add interactivity or upgrades. For some NFTs, that's perfectly fine. It really depends on the goals of the creator. Not everything has to be perfectly pure. It's a spectrum of choice and optionality for users and makers. If you only want to purchase decentralized NFTs, then check the baseURI and contractURI of the contract (https://etherscan.io/token/0x1CB1A5e65610AEFF2551A50f76a87a7... as an example).
Aren't most NFT assets hosted on cloud platforms? OpenSea on GCP for example