⚑ Pages Deployer Engine

Platform self-hosted untuk deploy proyek .zip Anda β€” kompatibel dengan Cloudflare Pages, GitHub Pages, & static host lainnya.

SW: Unknown Engine Online

πŸ“¦ Deploy Proyek Baru

Hanya huruf kecil, angka, strip (-), atau garis bawah (_). Maks 32 karakter.

πŸ“

Klik atau seret file .zip ke sini

Maks 100MB

πŸ’‘ Tips Deploy

  • Pastikan arsip .zip berisi index.html di root.
  • Data tersimpan di IndexedDB browser Anda (lokal, persisten).
  • Live Preview pakai Service Worker β†’ render akurat seperti hosting asli.
  • Gunakan path relatif di HTML Anda untuk navigasi internal.

πŸ’Ύ Penyimpanan

Memuat info storage...

🌐 Daftar Proyek Ter-deploy

0 Proyek
`); zip.file('style.css', `* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 40px 20px; color: white; } .container { max-width: 800px; margin: 0 auto; } .hero { text-align: center; background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border-radius: 24px; padding: 48px 32px; margin-bottom: 32px; border: 1px solid rgba(255,255,255,0.2); } .avatar { font-size: 64px; margin-bottom: 16px; } h1 { font-size: 36px; margin-bottom: 12px; font-weight: 800; } .hero p { opacity: 0.9; margin-bottom: 24px; line-height: 1.5; } .badges { display: flex; gap: 8px; justify-content: center; margin-bottom: 24px; flex-wrap: wrap; } .badge { background: rgba(255,255,255,0.2); padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 600; } button#counterBtn { background: white; color: #764ba2; border: none; padding: 12px 32px; border-radius: 999px; font-size: 16px; font-weight: 700; cursor: pointer; transition: transform 0.15s; } button#counterBtn:hover { transform: scale(1.05); } .features { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; } .card { background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border-radius: 16px; padding: 24px; border: 1px solid rgba(255,255,255,0.2); } .card h3 { margin-bottom: 8px; font-size: 18px; } .card p { opacity: 0.85; font-size: 14px; line-height: 1.5; }`); zip.file('app.js', `let count = 0; const btn = document.getElementById('counterBtn'); const display = document.getElementById('count'); btn.addEventListener('click', () => { count++; display.textContent = count; btn.style.transform = 'scale(0.95)'; setTimeout(() => btn.style.transform = 'scale(1)', 100); }); console.log('Sample project loaded successfully! πŸš€');`); const blob = await zip.generateAsync({ type: 'blob' }); const file = new File([blob], 'sample-portfolio.zip', { type: 'application/zip' }); const dt = new DataTransfer(); dt.items.add(file); fileInput.files = dt.files; fileNameLabel.textContent = file.name; fileNameLabel.classList.add('text-slate-800', 'font-semibold'); document.getElementById('projectName').value = 'sample-portfolio'; showStatus('✨ Proyek sampel dimuat. Klik Mulai Proses Deploy untuk deploy.', 'info', true); } // ============ Init ============ window.addEventListener('load', () => { loadProjects(); registerServiceWorker(); updateStorageInfo(); setPreviewSizeButtons('desktop'); document.addEventListener('keydown', e => { if (e.key === 'Escape') { if (!document.getElementById('previewModal').classList.contains('hidden')) closePreview(); if (!document.getElementById('inspectorModal').classList.contains('hidden')) closeInspector(); } }); }); // Expose to global for inline onclick handlers window.handleDeploy = handleDeploy; window.deleteProject = deleteProject; window.inspectProject = inspectProject; window.previewProject = previewProject; window.closePreview = closePreview; window.openExternal = openExternal; window.reloadPreview = reloadPreview; window.setPreviewSize = setPreviewSize; window.exportProject = exportProject; window.closeInspector = closeInspector; window.loadSampleProject = loadSampleProject; window.filterProjects = filterProjects; })();