Chapter 11
Integrating Storage in dApps
Users judge your dApp by upload speed and image load time, not by whether you use IPFS. A clunky flow — wallet sign, then browser hang, then broken thumbnail — loses creators even if the architecture is principled.
Never hard-code a single public gateway. Run your own, use a provider subdomain, or resolve through multiple endpoints with timeout fallback. ipfs.io is a convenience, not an SLA. Rate limits during viral mints are predictable.
Server-side signing keys for uploads belong in environment secrets, not client bundles. For user-owned content, consider wallet-signed uploads through delegated pinning or direct Kubo RPC over VPN. Log CIDs in your database even when the chain is the source of truth — support teams need a fast lookup when a collector reports a blank image.