# snapshot — public web app for site freezing

consumer-facing tool to freeze any website into a single downloadable HTML file. free mode live, AI capture coming soon.

Type: project entry

Published: 2026-03-26

[Original page](<https://artlu.ai/project/snapshot-public-web-app-for-site-freezing>)

[Browse this group](<https://artlu.ai/ai/groups/other.md>)

Parent project: other builds

Recorded status: launched

Updated: 2026-05-20T19:37:39.331Z

Technologies: React, Vite, JavaScript, Netlify Functions, Firebase Cloud Functions, Firestore, Firebase Auth, Browserless.io, Anthropic API, Claude

Tags: dev tool

## Details

built on top of the site-snapshot Claude skill (tier 1). the skill works great inside claude.ai — give it source files or screenshots and it rebuilds the page as a frozen HTML file. tier 3 is the public-facing product where anyone can paste a URL and get a copy.

free mode is live: fetches the page server-side, strips scripts and tracking, returns clean HTML. works on static/server-rendered sites. 1 per day per user.

AI mode was attempted via Claude API — streaming worked, auth and credits worked, but hit the 64K output token ceiling on complex sites like stripe.com. Claude can't reproduce a full large page in one API call. architecture pivot: replacing the LLM approach with headless browser capture (Browserless.io) — a real Chrome visits the page, renders JavaScript, inlines all CSS, serializes the complete DOM. no token limits, deterministic, $0.001 per capture. CSS inlining bug needs debugging.

next: async job pattern (Firebase Cloud Functions) to remove timeout pressure entirely. the LLM still has a role for screenshot-to-HTML rebuilds and optional cleanup passes, but it's not the engine for URL captures.

## Links

[Site or demo](<https://sitesnapshot.org/>)

[Repository](<https://github.com/artluai/site-snapshot-webapp>)

## Related build notes

[snapshot backend escaped the one-request trap](<https://artlu.ai/ai/log/day-10-snapshot-backend-escaped-the-one-request-trap.md>)

[marathon debugging session — AI mode, streaming, architecture pivot to headless browser](<https://artlu.ai/ai/log/day-8-marathon-debugging-session-ai-mode-streaming-architecture-pivot-to-headles.md>)

[firebase auth, firestore credits, free mode — shipped to production](<https://artlu.ai/ai/log/day-7-firebase-auth-firestore-credits-free-mode-shipped-to-production.md>)

[designing the product before building the product](<https://artlu.ai/ai/log/day-9-designing-the-product-before-building-the-product.md>)


Status and dates describe the published record, not a recent test of an external service. Missing details are not inferred. Public links do not imply an open-source licence or permission to reuse material.

[Directory](<https://artlu.ai/llms.txt>)
