Follows #21
Purpose-built environments (#22) are interactive but synthetic. Frozen captures of real pages would add the DOM complexity that real sites have and synthetic fixtures do not: deeply nested trees, framework-generated markup, selectors no fixture author would write by hand.
Two things stand in the way, and both are cheaper to think about before an implementation exists.
Copyright comes first. Storing a real site's HTML, CSS, JavaScript and images and redistributing them inside an Apache-2.0 repository is redistribution of third-party copyrighted content, which is a different thing from vendoring an MIT-licensed environment set that was made to be redistributed. Keeping the content out of the repository and fetching it at run time avoids that, but then the pages fall outside the fixture checksum and the subset loses its reproducibility.
Fidelity comes second. Real pages draw much of their content from API calls, time-dependent rendering and third-party scripts. After freezing, either those paths die, in which case the result is a more complex fixture rather than a real website and has to be described that way, or the API responses are recorded and replayed too, which means committing to a full record and replay stack.
Follows #21
Purpose-built environments (#22) are interactive but synthetic. Frozen captures of real pages would add the DOM complexity that real sites have and synthetic fixtures do not: deeply nested trees, framework-generated markup, selectors no fixture author would write by hand.
Two things stand in the way, and both are cheaper to think about before an implementation exists.
Copyright comes first. Storing a real site's HTML, CSS, JavaScript and images and redistributing them inside an Apache-2.0 repository is redistribution of third-party copyrighted content, which is a different thing from vendoring an MIT-licensed environment set that was made to be redistributed. Keeping the content out of the repository and fetching it at run time avoids that, but then the pages fall outside the fixture checksum and the subset loses its reproducibility.
Fidelity comes second. Real pages draw much of their content from API calls, time-dependent rendering and third-party scripts. After freezing, either those paths die, in which case the result is a more complex fixture rather than a real website and has to be described that way, or the API responses are recorded and replayed too, which means committing to a full record and replay stack.