Skip to content

Latest commit

 

History

History
97 lines (75 loc) · 2.88 KB

File metadata and controls

97 lines (75 loc) · 2.88 KB

🗺️ google-sites-clone — Roadmap

Paste a Google Sites URL → get a complete static HTML clone


📋 Decisions

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

✅ Phase 1: Core Pipeline (done)

  • 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)

✅ Phase 2: Landing Page (done)

  • Landing page at gsclone.osovsky.com
  • Dark mode toggle
  • Google OAuth stub
  • GitHub OAuth stub
  • Clone form with options
  • Pipeline visual
  • Comparison table

✅ Phase 3: npm publish (done)

  • npm publish (npx google-sites-clone URL)
  • MANUAL.md user manual
  • .npmignore, dynamic version in CLI

✅ Phase 4: Distribution (done)

  • GitHub Pages deploy (gsclone deploy)
  • ZIP export (--zip)
  • README per guidelines
  • Vercel landing page fix

✅ Phase 5: SaaS (done)

  • Real Google OAuth
  • Real GitHub OAuth
  • Email delivery (Resend)
  • Cloudflare R2 storage (ZIP 7d, report 360d)

🔜 Phase 6: Polish

  • Fix email input field visibility on landing page
  • Verify osovsky.com domain in Resend (DNS propagation pending)
  • Update RESEND_FROM to clone@osovsky.com
  • GitHub Pages deploy from email (after clone ready)
    • Expand GitHub OAuth scope to public_repo
    • Create /api/deploy?id=xxx endpoint (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)
  • 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)