The best way to display a loading spinner from a user experience (UX) perspective is by not displaying it at all. This is the mantra I repeated to myself whilst I developed the new version of my blog, blog.v2, and abstracted it as a NextJS 15 template for open source use.
#The old blog
#NextJS: The New Frontend Frontier
Why next.js, etc.
#Why Performance Matters
#Image Optimization
.webp, next/image, animations, memoization, LCP