The ./src/app/streaming-metadata
directory sets up 4 examples showing how metadata can be streamed using PPR and the behavior seen in next dev
and next start
.
A key takeaway is that generateMetadata
will block streaming (sending the first byte of HTML) if it's dynamic. This can be worked around by using React 19's support for document metadata
Another important takeaway is that if the page itself is dynamic, generateMetadata
will block even if it's static. See ./src/app/streaming-metadata/static-generate-metadata-dynamic-page
.