docs: add migration guides for prerender and rendertron - #2
Merged
Conversation
Both upstream projects are gone: prerender/prerender returns a 404, and GoogleChrome/rendertron has been archived since 2022-10-06 with no commits since. There is no other maintained self-hosted prerendering server, and anyone still running either is on unmaintained software. migrating-from-prerender.md maps the compatible surface directly: the readiness flag and meta tags renamed but kept identical semantics, plugins folded into config flags and hooks, and the env vars that moved. migrating-from-rendertron.md is the more consequential change -- the URL shape moves from path-embedded (GET /render/<url>) to query-encoded (GET /render?url=), and Rendertron's built-in cache backends have no renderready equivalent by design. The one genuinely good finding: Rendertron never had a page-side readiness signal at all, just page-load plus network-quiet -- which is exactly what renderready's fallback already does, so no application changes are required to get equivalent behavior. Verified before writing: prerender/prerender still 404s, Rendertron's last push date, and Rendertron's actual config.json/API shape via its README rather than from memory. The injected x-renderready-render-id / x-renderready-render-at header names are checked against src/render/htmlTransforms.ts rather than asserted. Linked from the README's Compatibility section and table of contents.
The intro implied the old server was disappearing -- it isn't. The npm package still resolves and installs regardless of the source repo's status, and npm doesn't unpublish a package because its GitHub repo goes away. Existing deployments and fresh `npm install prerender` both keep working indefinitely. What's actually lost is a path to a fix, not availability. Re-read lib/server.js and lib/plugins/browserForceRestart.js rather than relying on an earlier summary before writing the replacement, which turned up two things I'd have gotten wrong: the old server does retry once immediately on an unexpected browser crash (not zero retries), and only exits the whole process if two crashes land within a second of each other; and its forced- restart plugin does drain in-flight requests before restarting, just with no bound if one hangs. Recycling itself is reasonable -- idle-restart always, scheduled restart too if you use the documented entry point or register the plugin on a custom build.
- CHROME_LOCATION and PRERENDER_READY_DELAY were never env vars in the old server, only JS constructor options — table and checklist now reflect that instead of implying a rename - note that Rendertron's ?mobile also swapped the User-Agent, not just viewport size - remove the fabricated "in-memory / S3 cache" bundled plugin — the old server never shipped one
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/migrating-from-prerender.mdanddocs/migrating-from-rendertron.mdBoth upstream projects are gone (prerender/prerender 404s; Rendertron archived since 2022-10-06),
so these are aimed at the searches people are already making rather than a launch audience.
Test plan
x-renderready-render-*header names against sourceprettier --checkclean