# Writing

- [Why a Loading Screen Can't Wait for React to Hydrate](https://abchaudary.me/blog/preloader-before-react-hydration-nextjs): A React-driven loading overlay can't leave before the bundle it hides has hydrated, because that's the same cost it's meant to be covering for.
- [Why generateMetadata in Next.js Must Be Async](https://abchaudary.me/blog/nextjs-generatemetadata-async-module-scope-bug): A synchronous metadata builder reading an unprimed module-scope snapshot put localhost:3000 in page titles and emptied their Person JSON-LD across ten routes.
- [Why backdrop-filter Breaks After a Lightning CSS Build](https://abchaudary.me/blog/backdrop-filter-lightning-css-bug): Lightning CSS merges duplicate backdrop-filter declarations and keeps the wrong one, deleting a glass effect and the containing block it quietly provided.
