Reconstruction of hoy.upr.edu, originally published in September 2009 to memorialize the presidential transition of the University of Puerto Rico.

About this reproduction · not the original site

How this site was reconstructed

Sources, fixity verification, a complete register of modifications, and gaps.

Versión en español   ← Back to the site

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.

97.5%
of what the site offered
82/83
pages in the site's own map
483
documents recovered
16
documents lost
484 MB
of recovered material

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

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 sitehoy.upr.edu, La Universidad Hoy, published September 2009
Native addresssites.google.com/a/upr.edu/launiversidadhoy
InstitutionUniversity of Puerto Rico
Source of this reproductionWayback Machine, Internet Archive (web.archive.org)
Capture range2009-09-29, 2024-08-05
Date of reconstruction2026-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 designClaude Fable 5
Implementation and executionClaude Opus 5
Direction, decisions and validationJosé Luis Cruz Rivera
Date2026-07-28 / 29
Session28 de julio, 21:15, 29 de julio, 06:45, MST (UTC-7), Flagstaff, Arizona
Exchanges in the conversation24

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:

SourceArchived periodRecords
hoy.upr.edu (custom domain)2009-09-29 → 2014517
sites.google.com/a/upr.edu/launiversidadhoymostly the November 2020 sweep before Google Sites closed2643
*-sites.googlegroups.com (attachment hosts)reached by following archived redirectsn/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 downloads1422
SHA-1 recomputed and matching the Internet Archive's own911
HTML pages downloaded684
HTML pages checksum-verified682 (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

  1. Link rewriting. Absolute addresses pointing at hoy.upr.edu or the native address were converted to relative paths. Link text, order and destination are unchanged.
  2. Character-set declaration. The archive served charset=utf-8 in 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.
  3. 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

  1. 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 as data-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.
  2. 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.
  3. Two links repointed. junta-de-subastas and junta-de-apelaciones-1 appeared 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 on upr.edu; that was withdrawn, because offering a 2025 page in place of a lost one papers over the loss even when labelled.
  4. 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.
  5. 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.
  6. 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:

  1. 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.
  2. UPRINVERSIONESTRATEGICA.pdf, never captured by any crawler. It was linked once, from the home page, only in the September 29, 2009 capture.
  3. Two navigation targets never captured by any crawl, already returning an error by the time a crawler first tried them (item 6.6).
  4. 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:

launiversidadhoy-evidence-bag.zipComplete package as a BagIt bag (RFC 8493), validatable with bagit.py · 49 KBinventory.csvComplete inventory of recovered files · 92 KBgaps.csvItems not recovered, with classification · <1 KBlink_audit.csvAudit of every link in this reproduction · 116 KBsnapshots.csvPeriod snapshots of outbound links · 13 KBCHANGE_CHECK.mdText comparison across captures · <1 KBGAPS.mdGap report · 6 KBPROVENANCE.mdThis document in plain text · 18 KBSEARCH_RECORD.mdWhat was done to try to recover the missing documents · 9 KBMISSING_DOCUMENTS.mdList of documents not recovered · 3 KBprovenance.jsonldMachine-readable provenance (W3C PROV-O) · 3 KBmanifest-sha256.txtChecksum manifest for this bundle (BagIt, RFC 8493) · <1 KB

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.0Preservation metadata vocabulary: agents, events, and fixity checking via cryptographic checksums.
W3C PROV-OMachine-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:

FileUPR-Mensaje-Presidente-18-ago.mp4
Size27,722,817 bytes
FormatISO Media, MP4 version 2 (ISO/IEC 14496-14), brand mp42
Duration4:49 as reported by the player
SHA-25679de0fe605248c01eca3c662b77d8ce34f4fa0b315fe13aedf9590ec4535adca
SHA-19e45bab2a782d4cb9dd387a41f2d6f316b91edfc

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.