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.
Where the archive's published fingerprint describes the file itself rather than a redirect, it was recomputed and compared: 911 files matched. Section 4 explains why that check is not available for the rest, and what was done instead.
Why downloading from the Internet Archive was not enough
If the archive kept captures of the site, what was there to reconstruct? 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. Recognizing 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 484 HTML redirect files where 484 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 substantially; the link audit published with this page keeps them apart, and can be read.
- 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 recognized 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,422 files, and rendered 61 screenshots of linked sites. All 484 document links were checked one by one against the live host, and every internal reference in the site is re-checked in full on each rebuild. A later review, in a separate session, consolidated those programs and added tests: there are now 43 programs and roughly 6,600 lines, plus more than 180 automated checks that verify every figure on this page against the ledger. No figure in the tables on this page changed as a result. A later peer review did find drift in the files beside it — a version string, four rows whose capture date disagreed with the address next to it, and a count no longer reproducible from the audit — each corrected, and each described here.
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.
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. Verification, repeated after every change, is the only thing that finds them.
The method
The whole process is automated in 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 every figure on this page is computed from the ledger at build time and can be recomputed from the files below; the dated statements about the work itself are a record of what was done, not values that recompute. The rest of this page is that record.
A note for English readers. This disclosure exists in English; the reconstruction itself does not. The 2009 site was written in Spanish, and translating it would make it something other than a reproduction, so the pages behind “Back to the site” are Spanish throughout. The English support ends here, deliberately.
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. It was reviewed and extended over the following two days in separate sessions, in the same arrangement; the figures below describe the original session.
| 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 July, 21:15 – 29 July, 06:45, MST (UTC-7), Flagstaff, Arizona |
| Exchanges in the conversation | 24 |
The method was designed and agreed 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. That capture establishes that the site was published no later than that day, without depending on anyone's recollection.
4. Fixity verification
The Internet Archive's CDX index publishes its own SHA-1 checksum for each capture. Where that checksum describes the captured file itself, it was recomputed on the downloaded bytes and compared against the published one.
| 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, by content type, length and binary signature.
480 of them carry the %PDF magic number. The other 3 are ZIP
archives, which the site published alongside its PDFs; those were checked for being a
substantial payload rather than an HTML error page.
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. - Links with nothing behind them are shown in gray. This is a single convention across the whole site: where what a link pointed at cannot be shown, the link is grayed and opens a page saying what was there and why it is not. It applies equally to documents no crawl captured, to pages the archive does not hold, and to links that opened queries against databases that no longer exist. Link text and order are unchanged; the color and the destination are what differ. They are kept rather than removed because a link that existed documents what the site offered, and deleting it would delete that evidence.
- The site search was rebuilt. The "Search this site" box appears on every page and still submits, but the original Google Sites search queried an index on Google's own servers, and both the index and the service are gone. The box led to an archived results page that could never answer, so a search returning nothing could be read as "that document never existed". It was replaced by an index built when the site is compiled and queried in the browser. It covers the text of the reproduced pages and of the documents: of the 566 documents indexed, 378 carry a text layer and are searchable by their contents; the other 188 are image-only scans, with no text, and are found by title alone. That total exceeds the 483 in section 7 because it also covers the 85 cartas circulares recovered from the UPR portal's own captures, which section 7 keeps out of the headline because they came from a different host. No optical character recognition was applied, and no document was altered. The results page states this distinction itself, because "no results" and "not searchable" are different answers.
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 labeled. - 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.
- Dead controls inherited from the Google Sites theme. “Sign in”, “Terms”, “Report Abuse”, “Print page” and the “Powered by Google Sites” mark were served by the platform on every page and are reproduced as they were. They led to Google, not to this site, and they lead nowhere now. They are not reconstruction faults and they are not repaired: removing them would edit the page the archive captured.
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. The only things added to what the site itself offered are the restored video (modification 6) and the 2008-2009 link (modification 9); everything else this page describes — the banner, this page, the destination pages behind outbound links — belongs to the reconstruction and is marked as such. 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 484 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 the 16 documents the site published from a Dropbox public folder, 15 of 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 (modification 8).
- The embedded video, recovered from a personal copy rather than an archive (modification 6).
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.
Reconciling the headline with the inventory. inventory.csv lists 710 files, not 711: it records what was recovered from the archive, and the video came from a personal backup (modification 6), so it is counted in what the site offered but not in what the archive returned. The page rows in that file likewise number two more than the 82 of 83 reported here — the extras are the site root and the Google Sites system directory, which are platform machinery rather than pages the sitemap lists.
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. provenance.jsonld states the same account in
machine-readable form, as W3C PROV-O. The sections of this page are ordered on the
preservation-description categories of the OAIS reference model (ISO 14721) — reference,
context, provenance, fixity, access — because that is a shape an archivist can read
quickly, not because anything here was certified against it.
How to cite this deposit. The programs, the provenance record and the evidence package are deposited under a permanent identifier:
Cruz Rivera, J. L. (2026). Reconstruction of hoy.upr.edu (La Universidad Hoy): pipeline, provenance record and evidence package (2.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21696168
The deposit covers the programs, the reports and the documentation. It does not cover the recovered material: the pages and documents of La Universidad Hoy are institutional records of the University of Puerto Rico and retain whatever rights attach to them. They are published here, not in the deposit.
10. Known limitations
These are the points where this reconstruction is weakest.
The video is the only file that did not come from an archive
The original was a YouTube embed. It has been deleted from YouTube, and the Internet Archive never captured it. This copy was supplied by José Luis Cruz Rivera from a personal backup — the one place in this reconstruction where a file's provenance rests on someone's word.
Its content, though, is corroborated from outside this project. The recording is Antonio García Padilla's resignation message, and El Nuevo Día published that message as text at the time, under the headline «Mensaje de Antonio García Padilla — El Presidente de la UPR habla de su renuncia». The newspaper's page survives in the Internet Archive, as does its report of the resignation itself, timestamped August 19, 2009 at 6:40 a.m. The audio of this file was transcribed and compared against that published text: 84% of the spoken words fall inside runs of eight or more consecutive words that also appear in the newspaper, across 21 such runs, the longest of them 43 words. The file's own container records a creation time of August 18, 2009 at 21:41:42 — the evening before the Junta de Síndicos meeting that ran into the early hours and ended with the resignation.
That establishes what the recording is. It does not establish that this file is the exact one the site embedded: a re-encoding leaves no trace, and a container timestamp can be set to any value. What it removes is the possibility that the message is something other than what it is presented as.
Both articles are cited by their archived copies rather than by their addresses on the newspaper's site, which no longer resolve. The transcript is published with the rest of the evidence, so the comparison can be repeated:
https://web.archive.org/web/20090823012142/http://www.elnuevodia.com/mensajedeantoniogarciapadilla-605434.html
https://web.archive.org/web/20090821024526/http://www.elnuevodia.com/dimiteantoniogarciapadilla-604992.html
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; the container records 290 s |
| 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, summarized, regenerated or corrected. All text on this site written by a model belongs to the reconstruction and is marked as such.
There is one exception, disclosed here because the sentence above would otherwise not be true. The video's audio was transcribed automatically, once, in order to compare it against the text El Nuevo Día published — the check described above. Nothing recovered from the archive was involved, no published byte changed as a result, and the transcript is not part of the record.
Reviewed afterwards, but not independently
The reconstruction was made in a single continuous eleven-hour session on 28–29 July 2026. That session is not the whole of the work. Over the following two days a separate review went through it line by line, with the same assistance and under the same direction: the programs were consolidated behind shared modules, a test suite was written, four further stages were added, and errors were found — most of them in the claims this page makes rather than in the code. A capture from the year 2000 was described as far more recent than the 2009 page linking to it. The machine-readable provenance carried a date no validator would accept. An evidence file listed 572 links where the audit now publishes 896 distinct targets across 4,196 references. Each is corrected, and each correction is in the public record of the deposit.
That is the author rereading his own work with better instruments. It is not peer review, and it is not independent: no one outside this project has examined any of it. The documentation is meant to make such examination possible — the process is reproducible end to end and every claim can be checked against the source material — but that is an invitation, not a substitute. The 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
A project that exists because a site disappeared needs its own continuity plan. The programs, the provenance record and the evidence package now carry a
permanent identifier (10.5281/zenodo.21696168), the deposit is archived in Software Heritage
(swh:1:dir:d45297581ed513823d817a8c2d1d3e67c72762bc), and this reconstruction is archived in the Internet Archive
(2026-07-29). What still rests on personal infrastructure is the site
itself — the domain and the hosting. The recovered documents do not: they remain in the
Internet Archive, which is where they came from.