100% Free · No Signup · Export PNG
PESTLE Analysis Generator
Create a professional PESTLE analysis in minutes. Add Political, Economic, Social, Technological, Legal and Environmental factors — then export as PNG or save as PDF.
Privacy Guaranteed — Your analysis is saved only to your browser. Nothing is sent to any server.
What are you analysing?
🏢 Business
🛍️ Retail Industry
💻 Tech Startup
🏥 Healthcare
🎓 Education
⚡ Energy Sector
0
Political
0
Economic
0
Social
0
Technology
0
Legal
0
Environment
Auto-saved
Export Preview — Click to Download PNG
💡 PESTLE Analysis Tips
${tip}
`).join('');
}// ─── SAVE ────────────────────────────────────────────────────
function schedSave() {
const dot = document.getElementById('saveDot');
const lbl = document.getElementById('saveLabel');
if (dot) dot.style.background = '#f59e0b';
if (lbl) lbl.textContent = 'Saving…';
clearTimeout(saveTimer);
saveTimer = setTimeout(() => {
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
if (dot) dot.style.background = '#10b981';
if (lbl) lbl.textContent = 'Auto-saved';
} catch(e) {}
}, 1500);
}function clearAll() {
const total = FACTORS.reduce((s,f) => s + data[f.key].length, 0);
if (!total && !data.subject) return;
if (confirm('Clear all PESTLE data?')) {
data.subject = '';
FACTORS.forEach(f => { data[f.key] = []; });
document.getElementById('subjectInput').value = '';
renderAll();
toast('Cleared!');
}
}// ─── MODE ────────────────────────────────────────────────────
function setMode(mode) {
if (mode === 'advanced') {
document.body.classList.add('advanced-mode');
document.getElementById('btnSimple').classList.remove('active');
document.getElementById('btnAdvanced').classList.add('active');
document.getElementById('modeHint').textContent = 'PNG preview, stats, tips, download and print options';
updateCanvas();
} else {
document.body.classList.remove('advanced-mode');
document.getElementById('btnSimple').classList.add('active');
document.getElementById('btnAdvanced').classList.remove('active');
document.getElementById('modeHint').textContent = 'Build your PESTLE and export as PNG';
}
try { localStorage.setItem('sst_pestle_mode', mode); } catch(e) {}
}// ─── HELPERS ─────────────────────────────────────────────────
function escHtml(s) { return (s||'').replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); }
function toast(msg) {
const t = document.getElementById('toast');
t.textContent = msg; t.classList.add('show');
setTimeout(() => t.classList.remove('show'), 2400);
}init();