La Universidad Hoy was the public site of the University of Puerto Rico's
presidential transition. It was published in September 2009, at hoy.upr.edu,
to set down what had been done and what remained to be done as one presidency closed and
another began. The project was guided by José Luis Cruz Rivera, then Vice President of
Student Affairs and coordinator of the university's strategic plan, Diez para la
Década, who led the transition team until the end of Antonio García Padilla's
presidency on September 30, 2009.
None of it is online any more. The domain hoy.upr.edu stopped resolving
years ago, and classic Google Sites, the platform the site was built on, was retired in
2021. What you are looking at was reconstructed in 2026 from the captures preserved by the
Internet Archive's Wayback Machine.
Two things are worth telling apart. One is the 2009 site, which is what gets reproduced. The other is this reconstruction, which is from 2026 and did not exist back then. Everything explained on this page belongs to the second: the strip that runs across the top of each page, this page itself, the screenshots that open when you click an outbound link. The original site had none of that. What does come from the original site are its pages and its documents, and this page sets out exactly where each of them came from.
Every file was checked against the cryptographic fingerprint the Internet Archive publishes for it, and 911 matched exactly. Section 4 explains why that number does not cover all of them, and what was done with the rest.
Why downloading from the Internet Archive was not enough
It is a fair question: if the archive kept captures of the site, what was there to reconstruct? The short answer is that a capture is not a site. The Internet Archive stores individual pages exactly as its crawler found them at a given moment. Browsing them there works until you click something: documents do not open, images are missing, the stylesheet does not load, and there is no way to tell what is absent or why. Reconstructing the site meant working all of that out.
What had to be discovered
The site lived at two addresses at once, archived very differently. There was
hoy.upr.edu, the custom domain, captured from 2009 onward; and there was the
native Google Sites address, swept en masse in November 2020, shortly before the platform
closed. Neither is sufficient alone: the first preserves the original structure, the second
went far deeper. Recognising they were the same site, and folding both into a single
address space, was the first step.
Classic Google Sites never served a document directly. Every link to a PDF was in fact an HTTP 302 redirect into a signed, expiring address on another Google host. That has an awkward consequence: the checksum the archive publishes for such a record describes the redirect, not the document. Anyone downloading those addresses without following the chain ends up with 485 HTML redirect files where 485 documents should be, and if they also trust the published checksum, they will believe those files are verified.
The site carried a list of its own contents. Google drew its sitemap with JavaScript, and that code embeds the full hierarchy as JSON. The script died with the platform, so the page renders permanently collapsed, but the data is still there. Recovering it is what makes it possible to say how many pages are missing rather than infer it from whichever links happened to be visible, and it is the difference between an inventory and an estimate.
Some documents were never on the site at all. Fifteen budget memorials were served from a Dropbox public folder. Dropbox retired that kind of link in 2017 and the archive never captured the files, because they were direct downloads behind a redirect. They are invisible to any measurement taken over the site's own resources, and yet a reader clicking the link loses a document just the same.
And some content was not a file. The "Mensaje del Presidente" was an embedded component playing a video hosted on YouTube. No file-based crawl could recover it, because there was no file to recover. The video has since been deleted from YouTube and was never archived there either.
The technical problems that had to be solved
- Establishing the denominator. Knowing what was recovered is easy; knowing what was missing requires an independent list of what ought to exist. It was built from the site's own map and from the full link graph extracted across every capture.
- Following the redirect chains through to the real document and validating each by its binary signature, since the cryptographic check was not available for them.
- Telling three similar things apart. A broken link may be lost content, a page no crawler ever captured, or plain platform machinery (gadget iframes, revision endpoints, internal anchor ids). Counting them together would have overstated the loss about eightfold.
- Repairing 481 "View" links that pointed at a Google Docs viewer which can no longer open anything, redirecting them to the recovered copy of the same document.
- Reassembling the visual theme. Google served the same stylesheet from dozens of different paths; the archive kept some and not others, so equivalences between them had to be recognised or the pages would render unstyled.
- Resolving the outbound links. The sites linked to still exist, but show 2026 content. They were replaced with captures from the period, and where none exists, the page says so.
The effort
The reconstruction was done in a single continuous eleven-hour session, between José Luis Cruz Rivera and Claude, Anthropic's coding assistant. It produced twenty-two programs and roughly 4,300 lines of code, and along the way indexed 3,160 capture records, downloaded 1,428 files, and rendered 61 screenshots of linked sites. All 485 document links were checked one by one against the live host, and the site's 4,841 references are re-checked in full every time it is rebuilt.
Without a tool of this kind, the obstacle would not have been writing the code. It would have been discovery: nobody documents that Google Sites served its attachments behind a signed redirect, or that the sitemap carries the hierarchy inside a dead script. Those things are found by asking for a PDF, receiving HTML, and chasing why. A reasonable estimate for one person working full time is six to ten weeks.
The larger problem, though, is not slowness. It is that almost every failure in work of this kind is silent. One deployment reported success while serving 404s on nearly every page. A bug of our own deleted the stylesheet from fifteen pages and left them unformatted. A caption claimed to preserve images that had in fact never been archived. A recovery figure excluded sixteen lost documents on a technicality about where they had been hosted. None of those announce themselves; each looks correct until somebody checks. Verifying at this scale, and re-verifying after every change, is what separates a reconstruction from a copy that merely resembles one.
The method
The whole process is automated across twenty-two programs that can be re-run, governed by a single ledger: nothing counts as recovered until its bytes are on disk and verified. The unmodified originals are kept separately from the reconstruction, so it can be rebuilt from scratch without consulting the archive again, and any claim on this page can be checked against the source material. The rest of this page is that record.
1. Reference
| Original site | hoy.upr.edu, La Universidad Hoy, published September 2009 |
|---|---|
| Native address | sites.google.com/a/upr.edu/launiversidadhoy |
| Institution | University of Puerto Rico |
| Source of this reproduction | Wayback Machine, Internet Archive (web.archive.org) |
| Capture range | 2009-09-29, 2024-08-05 |
| Date of reconstruction | 2026-07-28 / 29 |
The capture range runs to 2024, but that does not mean the site was alive all that time. It measures how long the archive kept revisiting a site that had stopped changing. The content is from 2009. Four out of five capture records come from a single sweep in November 2020, made before Google Sites shut down; only about 14% fall in 2009-2012, and what comes after 2020 is a handful of stray visits.
2. Authorship and working method
The reconstruction was carried out in a single working session between José Luis Cruz Rivera and Claude, Anthropic's coding assistant, using Claude Code.
| Planning and method design | Claude Fable 5 |
|---|---|
| Implementation and execution | Claude Opus 5 |
| Direction, decisions and validation | José Luis Cruz Rivera |
| Date | 2026-07-28 / 29 |
| Session | 28 de julio, 21:15, 29 de julio, 06:45, MST (UTC-7), Flagstaff, Arizona |
| Exchanges in the conversation | 24 |
The method was designed and reviewed before any code was written. The entire process, harvesting, verification, assembly and reporting, is automated in programs that can be re-run; no file was edited by hand.
3. Sources
The site was reachable at two equivalent addresses. Captures were indexed from every address it ever used:
| Source | Archived period | Records |
|---|---|---|
hoy.upr.edu (custom domain) | 2009-09-29 → 2014 | 517 |
sites.google.com/a/upr.edu/launiversidadhoy | mostly the November 2020 sweep before Google Sites closed | 2643 |
*-sites.googlegroups.com (attachment hosts) | reached by following archived redirects | n/a |
The earliest capture of any kind is September 29, 2009, which is the day before the last day of Antonio García Padilla's presidency. The archive reached the site almost exactly at the moment it was made for, and that date corroborates on its own when the site was published, without depending on anyone's recollection.
4. Fixity verification
The Internet Archive's CDX index publishes its own SHA-1 checksum for each capture. That checksum was recomputed on every downloaded file and compared against the one the archive publishes.
| Successful downloads | 1422 |
|---|---|
| SHA-1 recomputed and matching the Internet Archive's own | 911 |
| HTML pages downloaded | 684 |
| HTML pages checksum-verified | 682 (99.7%) |
PDF documents do not admit this check, for a technical reason: classic Google Sites
never served an attachment directly. Every document link was an HTTP 302 redirect into a
signed, expiring address on a googlegroups.com host. The checksum the index
publishes for such a record describes the redirect, not the document. Those files
were validated structurally instead: binary signature (%PDF), content type
and length.
Two late HTML captures (2022 and 2023) did not match their published checksum. Neither is used here: those two pages are drawn from earlier captures that did verify. Every page shown in this reproduction comes from a checksum-verified capture.
5. Capture selection
The original site was published once, to coincide with the last day of Antonio García Padilla's presidency, and was not revised afterwards. That account was tested rather than assumed. Raw HTML always differs across years, because Google rewrote its own page chrome, so the comparison was made on extracted text and not on markup.
Of 65 pages captured more than once, two content pages differ, and the difference runs in the direction of loss. The September 29, 2009 capture carries navigation entries that later captures no longer have: Blog, Diez para la Década, Avanza, and La Universidad: Inversión Estratégica de Puerto Rico. The other four differing pages are ones Google generated dynamically (recent changes, search, sitemap), and are not part of the site's content.
Decision: the earliest verified capture of each page is used, being demonstrably the fullest and the closest to publication.
The versions/ set preserves every distinct capture of every page,
unmodified, so this choice can be reviewed or reversed without going back to the
archive.
Because the early crawler did not reach every page, this reproduction does not come uniformly from 2009. By capture year: 2009 (6 pages), 2010 (36), 2011 (10), 2012 (8), 2019 (1), 2020 (35). Since those pages' text does not differ across captures, this affects the recency of the capture, not the content.
6. Register of modifications
This is the complete list of differences between the original files and what is shown here.
Structural, required for the site to work offline
- Link rewriting. Absolute addresses pointing at
hoy.upr.eduor the native address were converted to relative paths. Link text, order and destination are unchanged. - Character-set declaration. The archive served
charset=utf-8in the HTTP header only; the pages carry no<meta charset>. A static file server does not reproduce that header, so accents rendered as corrupted text (Estratégico). A single<meta charset="utf-8">tag was inserted into each page. This is a tag that was not in the original bytes; it affects encoding interpretation only, and alters no character of the text. - Theme resources. Stylesheets, scripts and theme images were served from
www.gstatic.com. They were downloaded from the Internet Archive (not from Google today) and are served locally.
Content, declared divergences
- One video restored from a personal copy. The "Mensaje del Presidente" panel
was a Google Sites gadget embedding a YouTube video (id
VDtJX5AQ9Iw). It was never a file on the site, so no crawl could recover it; the video has since been deleted from YouTube and was never archived there either. José Luis Cruz Rivera supplied the original MP4 from a personal backup. It is shown in its place, marked in the markup asdata-provenance="personal-backup"and recorded separately: it is not counted as material recovered from the archive. It is the only file in this reproduction that did not come from the Internet Archive. - One broken link deactivated. The home page linked
UPRINVERSIONESTRATEGICA.pdf("La Universidad: Inversión Estratégica de Puerto Rico"). That document exists in no archive under any address form. Its anchor was converted to plain text: the text remains visible on the page; only the unusable hyperlink was removed. The original markup is preserved unmodified, and the document remains listed in the gap report. - Two links repointed.
junta-de-subastasandjunta-de-apelaciones-1appeared in the site's navigation from 2009, but no crawler ever captured either address. When one was first attempted, July 2011 in one case, November 2020 in the other, it already returned HTTP 404. Neither appears in the sitemap captures from October 2009 onward. Whether either page existed earlier and was later removed cannot be determined from the archive: the gap between the link appearing and the first crawl attempt is two years in one case and eleven in the other. They open a page stating exactly this. An earlier version of this reconstruction pointed them at each body's present-day page onupr.edu; that was withdrawn, because offering a 2025 page in place of a lost one papers over the loss even when labelled. - The 2008-2009 annual report, re-linked. This document was not available when
the site was published. José Luis Cruz Rivera submitted it for publication later, once it
had become available and he had left his position, which is why the link appears in
captures from January 2010 onward and not on the September 2009 home page this
reconstruction is built from. The document itself was recovered, so leaving it unlinked
would have made it present but unreachable from the navigation. It was added to the
"Informes Anuales UPR" list, carrying
data-added="1"and a tooltip giving the reason. This is a link the September 2009 page did not have. No other later material was carried back. - Outbound links open period captures. The site linked to eight UPR properties in its sidebar and, throughout its pages, to campuses, accreditors and services. Those hosts still exist but show 2026 content. Each outbound link now opens a local page showing that site as captured closest to September 29, 2009, with the capture date stated in the caption, plus links to the live site and to the Internet Archive. Only captures from the era are shown (2012 or earlier): a later capture does not document what the site linked to, so where the archive holds nothing from the period the page says so rather than showing a 2013 or 2025 version. Every screenshot also carries a note that an archived capture shows only what the crawler managed to save.
- Reconstruction notice and this page. A banner was added at the top of every page, deliberately outside the site's own visual language, identifying the document as a reproduction and linking here. Neither the banner nor this page was part of the original site.
What was not done
No text was edited, rewritten, corrected or reordered. No document was altered: every PDF is byte-identical to what the archive served. No dates, authorship or metadata were changed. No new content page was written, and no content was added beyond items 4 and 9. Nothing was removed from the record: the text of the single deactivated link remains visible, and every gap is enumerated in the accompanying report.
7. What is missing
711 of 729 resources (97.5%) of everything the site offered were recovered: 483 of 485 documents the site hosted itself, and 82 of the 83 pages listed in its own sitemap (the remaining one is a blank Google Sites template).
Measured only over what the site hosted, the figure would be 710/713 (99.6%). That is not used as the headline because it leaves out 15 documents the site published from a Dropbox public folder, which are equally gone: to a reader clicking the link, the document fails to appear either way.
Not recovered:
- 15 documents hosted outside the site, mostly the Memorial del Presidente de la UPR, Presupuesto series (2002-2003 through 2009-2010). They sat in a Dropbox public folder; Dropbox retired those links in 2017 and the Wayback Machine never captured the files, because they were direct downloads behind a redirect.
UPRINVERSIONESTRATEGICA.pdf, never captured by any crawler. It was linked once, from the home page, only in the September 29, 2009 capture.- Two navigation targets never captured by any crawl, already returning an error by the time a crawler first tried them (item 6.6).
- The embedded video, recovered from a personal copy rather than an archive (item 6.4).
Anything published and withdrawn before September 29, 2009 is unrecoverable, since no capture predates it, but since the site went up that same month, this window is days wide, not months.
8. How to verify
Check any document. The downloadable inventory lists every recovered file; the project ledger records, for each, the exact Internet Archive address and capture date it came from. That address can be fetched today and compared byte for byte.
Check the page list. The site's own sitemap is archived, and its embedded code enumerates every page it contained. That, not an inference from links, is the denominator the completeness figures are measured against:
https://web.archive.org/web/20091003125041/http://hoy.upr.edu/system/app/pages/sitemap/hierarchy
Check that a document is missing rather than omitted. The Internet Archive's CDX index can be queried directly; it returns nothing for the absent document under any address form:
curl "http://web.archive.org/cdx/search/cdx?url=upr.edu&matchType=domain&filter=urlkey:.*inversionestrategica.*"
9. Downloadable evidence
The data behind every figure in this document:
The first file in the list is the complete package as a bag conforming to BagIt
(RFC 8493): it contains bagit.txt, bag-info.txt, the payload
manifest and the tag manifest, with the payload under data/. It can be
downloaded and validated directly, for instance with bagit.py --validate,
without reassembling anything. The loose files that follow are the same content, for anyone
who simply wants to read one.
10. Standards followed
The structure of this disclosure follows established digital-preservation practice, so that it can be assessed against recognized criteria:
| OAIS (ISO 14721) | Organization of preservation description information: reference, context, provenance, fixity and access. |
|---|---|
| PREMIS 3.0 | Preservation metadata vocabulary: agents, events, and fixity checking via cryptographic checksums. |
| W3C PROV-O | Machine-readable provenance (entities, activities, agents), included in the bundle as JSON-LD. |
| BagIt (RFC 8493) | Checksum manifest for the evidence bundle. |
| Memento (RFC 7089) | Citation of archived resources by capture datetime. |
11. Known limitations
What follows are not hidden defects but the points where this reconstruction is weakest. They are listed because a reader should not have to discover them unaided.
The video rests on testimony, not on an archive
It is the only object in this reconstruction without externally checkable provenance. The original video was hosted on YouTube, has been deleted from there, and the Internet Archive never captured it; the only trace left in the archived pages is the video's identifier, with no duration or other metadata to compare against. There is therefore no independent way to verify that this file is that video. It was supplied by José Luis Cruz Rivera from his personal backup and rests on his word.
What can be guaranteed is that the file does not change from here on. Its fixity values are recorded:
| File | UPR-Mensaje-Presidente-18-ago.mp4 |
|---|---|
| Size | 27,722,817 bytes |
| Format | ISO Media, MP4 version 2 (ISO/IEC 14496-14), brand mp42 |
| Duration | 4:49 as reported by the player |
| SHA-256 | 79de0fe605248c01eca3c662b77d8ce34f4fa0b315fe13aedf9590ec4535adca |
| SHA-1 | 9e45bab2a782d4cb9dd387a41f2d6f316b91edfc |
No original content passed through a language model
This is worth stating precisely, because saying that no file was edited by hand does not cover it. The models wrote the programs, this page, and the text of the interstitial pages behind outbound links. No byte of the original site's content passed through a language model. The programs copy bytes from the archive to disk and verify them; content is never read into a model, summarised, regenerated or corrected. All text on this site written by a model belongs to the reconstruction and is marked as such.
A single session, with no independent review
All of this was done in one continuous eleven-hour session, without peer review. The documentation tries to compensate: the process is reproducible end to end and every claim can be checked against the source material. But that is not a substitute for a second pair of eyes, and such review is expressly invited.
The denominator rests largely on one source
The list of pages that ought to exist comes from the site's own map, cross-checked against the link graph extracted from every capture. The two agree, but the map is the authority and survives in a single capture. If an independent inventory ever surfaced (Google Sites administrative records, analytics from the period) it would be worth reconciling against ours.
The reconstruction can be lost too
The irony is not lost: a project that exists because a site disappeared needs its own continuity plan. Depositing the code and the evidence package in repositories with permanent identifiers, and requesting that the site itself be archived, is the outstanding next step.