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.
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.
pnpm install
pnpm devOpen http://localhost:3000.
The app renders before screenshots exist. Site pages show empty states until local archive data is generated.
pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm typecheck
pnpm resolve:snapshots
pnpm capture:screenshots
pnpm generate:data
pnpm prepare:archiveResolve public Wayback captures into .data/resolved-snapshots.json:
pnpm resolve:snapshotsFor a single site:
pnpm resolve:snapshots -- --site amazonThe 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.
Save local screenshots and thumbnails from resolved Wayback URLs:
pnpm capture:screenshotsFor a single site:
pnpm capture:screenshots -- --site amazonScreenshots are saved into public/snapshots/{siteSlug}/. Thumbnails are saved into public/thumbnails/{siteSlug}/.
Combine the manifest, resolved captures, screenshot files, and thumbnails:
pnpm generate:dataThis writes data/snapshots.generated.json, which is the only snapshot dataset read by the frontend.
pnpm prepare:archiveFor faster local proof, run the three commands above with -- --site amazon for resolve and capture, then run pnpm generate:data.
Add a new entry to data/sites.ts with:
slugnamedomaincategorycanonicalUrlaliasesdescription- optional
accent - curated
targetSnapshots
Then run the archive preparation scripts to create local snapshot data and images.
The app is configured for static export with output: "export" and unoptimized images. Run:
pnpm buildDeploy the exported static output with the host of your choice.
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.
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.