I upload static assets to IPFS and add those static links to my project instead of having an "assets" folder.
IPFS is fast enough, I had these concerns too so I use a gateway for links as some of them cache files on their own CDN, for free.
Yes, I use a pinning service, I was extremely hesitant as many of them are just SaaS hosting like Pinata is and charge by bandwidth used, but there are free ones like https://web3.storage which for some reason is combining Filecoin and IPFS together for each upload and liveness/pinning.
Ironically, Pinata also acts as a gateway and can then be used for free if you want. But there are other gateways. Cloudfront has one but what it decides to cache is strange.