Paste a Google Sites URL → get a complete static HTML clone
| Question | Decision |
|---|---|
| Name | google-sites-clone |
| Platform | Google Sites only |
| Audience | Everyone (Web UI + CLI) |
| Images | Download from CDN → local files |
| Navigation | Original / Custom sidebar |
| YouTube | Thumbnails with link / iframe embed |
| Mode | One-time clone |
| License | MIT (open-source) |
| Output | ZIP / GitHub Pages |
| Landing | gsclone.osovsky.com |
- Auto-crawl: Puppeteer → parse sidebar → page-map.json
- SingleFile pass for all pages (CSS + base64 images)
- Puppeteer batch pass (5/batch, 60s pause)
- SPA navigation fallback for failed pages
- Merge: SingleFile styles + Puppeteer content
- Download images from Google CDN → local files
- YouTube/Vimeo → thumbnails + play button
- Video grid (YT/Vimeo/GDrive) injected into SF pages
- Root page filtering (index.html reserved for nav shell)
- Generate sitemap.xml + robots.txt
- Footer badge on all pages
- CLI interface (Commander.js)
- Clone report dashboard (clickable chips, total size)
- Landing page at gsclone.osovsky.com
- Dark mode toggle
- Google OAuth stub
- GitHub OAuth stub
- Clone form with options
- Pipeline visual
- Comparison table
- npm publish (
npx google-sites-clone URL) - MANUAL.md user manual
-
.npmignore, dynamic version in CLI
- GitHub Pages deploy (
gsclone deploy) - ZIP export (
--zip) - README per guidelines
- Vercel landing page fix
- Real Google OAuth
- Real GitHub OAuth
- Email delivery (Resend)
- Cloudflare R2 storage (ZIP 7d, report 360d)
- Fix email input field visibility on landing page
- Verify
osovsky.comdomain in Resend (DNS propagation pending) - Update
RESEND_FROMtoclone@osovsky.com - GitHub Pages deploy from email (after clone ready)
- Expand GitHub OAuth scope to
public_repo - Create
/api/deploy?id=xxxendpoint (download ZIP from R2 → push to gh-pages) - Add "Deploy to GitHub Pages" button in clone-ready email
- Handle Vercel timeout (offload to GitHub Actions workflow)
- Expand GitHub OAuth scope to
- Custom domain
gsclone.osovsky.com→ Vercel - R2 lifecycle rules (zips 7d, previews 7d, reports 360d)
- Rate limit per user (Upstash Redis: Free 1 clone, Starred 5/day + 20/month)
- GitHub star gate (require ⭐ for Starred tier)
- 250 MB ZIP size limit
- Post-crawl email with accurate page count (webhook from Actions after crawl step)
- Unlimited tier email offer ($99/mo)