Skip to content

ColumbusLabs/Web-Rewind

Repository files navigation

WebTimeMachine

WebTimeMachine is a static, curated visual timeline of famous company and brand websites. It lets visitors browse a public collection, open a site detail page, move through locally saved historical homepage screenshots, and compare two captures side by side.

The deployed app reads local TypeScript/JSON data and local images from public/. Wayback Machine access happens only in local preparation scripts.

What this is not

This is not an AI app. This does not use OpenAI. This does not analyze websites automatically. This does not crawl entire websites. This does not require accounts, a database, Redis, Prisma, or a backend.

Local setup

pnpm install
pnpm dev

Open http://localhost:3000.

The app renders before screenshots exist. Site pages show empty states until local archive data is generated.

Commands

pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm typecheck
pnpm resolve:snapshots
pnpm capture:screenshots
pnpm generate:data
pnpm prepare:archive

Generate Wayback snapshots

Resolve public Wayback captures into .data/resolved-snapshots.json:

pnpm resolve:snapshots

For a single site:

pnpm resolve:snapshots -- --site amazon

The resolver uses the CDX API first, checks the canonical URL first, then aliases, filters for text/html status 200, and chooses captures closest to July 1 of each target year. If CDX is unavailable, the local script falls back to the Wayback Availability API for the closest public capture around July 1.

Capture screenshots

Save local screenshots and thumbnails from resolved Wayback URLs:

pnpm capture:screenshots

For a single site:

pnpm capture:screenshots -- --site amazon

Screenshots are saved into public/snapshots/{siteSlug}/. Thumbnails are saved into public/thumbnails/{siteSlug}/.

Generate static data

Combine the manifest, resolved captures, screenshot files, and thumbnails:

pnpm generate:data

This writes data/snapshots.generated.json, which is the only snapshot dataset read by the frontend.

Full archive preparation

pnpm prepare:archive

For faster local proof, run the three commands above with -- --site amazon for resolve and capture, then run pnpm generate:data.

Add a new site

Add a new entry to data/sites.ts with:

  • slug
  • name
  • domain
  • category
  • canonicalUrl
  • aliases
  • description
  • optional accent
  • curated targetSnapshots

Then run the archive preparation scripts to create local snapshot data and images.

Deploy

The app is configured for static export with output: "export" and unoptimized images. Run:

pnpm build

Deploy the exported static output with the host of your choice.

Archive limitations

Old archived pages are imperfect. Some captures may have missing images, broken layouts, redirects, or scripts that no longer work. WebTimeMachine handles this by saving local screenshots and skipping broken captures when needed.

Public repository notes

Keep README.md, AGENTS.md, and IMPLEMENTATION_PROGRESS.md current. Do not add AI, account, auth, database, queue, Redis, Prisma, payment, or admin-dashboard features unless the project direction changes explicitly.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors