100% Free · PNG Export · No Signup
SWOT Analysis Generator
Build a professional Strengths, Weaknesses, Opportunities and Threats diagram and export it as a high quality PNG or copy as formatted text. Pro Mode adds 8 colour palettes, live stats, a print-ready view and strategy tips.
100% Private — saved only in your browser, never sent to a server
● Pro Version is Free for now
✓ 8 Colour Palettes · Monochrome · Stats ·
Live Preview · Print · .txt Download · Tips unlocked
Live Preview · Print · .txt Download · Tips unlocked
Day
Night
What are you analysing?
🏢 Business
📦 Product Launch
🧑 Personal Career
🚀 Startup
📋 Project
🎓 University
💪
S
Strengths
Internal positive factors, what you do well, unique resources, competitive advantages...
⚠️
W
Weaknesses
Internal negative factors, areas to improve, resource gaps, skill limitations...
🌟
O
Opportunities
External positive factors, market trends, emerging needs, untapped segments...
⚡
T
Threats
External negative factors, competition, regulatory changes, economic risks...
Auto-saved
📖 Quick Reference
SStrengths are internal, positive, things you already do well.
WWeaknesses are internal, negative, honest gaps worth naming.
OOpportunities are external, positive, trends you could use.
TThreats are external, negative, risks outside your control.
📊 Live Stats PRO
0
Strengths
0
Weaknesses
0
Opportunities
0
Threats
🎨 Colour Theme PRO
Default👁️ Live Export Preview PRO
Click to Download
💡 SWOT Tips PRO
Scroll for more options
${tip}
`).join('');
}function schedSave(){
const dot=document.getElementById('saveDot'),lbl=document.getElementById('saveLbl');
if(dot)dot.style.background='#f59e0b';if(lbl)lbl.textContent='Saving…';
clearTimeout(saveTimer);
saveTimer=setTimeout(()=>{try{localStorage.setItem(SK,JSON.stringify({...d,pal:curPal}));if(dot)dot.style.background='#10b981';if(lbl)lbl.textContent='Saved';}catch(e){}},1200);
}function clearAll(){
if(!d.S.length&&!d.W.length&&!d.O.length&&!d.T.length&&!d.subject)return;
if(confirm('Clear all SWOT data?')){d.subject='';d.S=[];d.W=[];d.O=[];d.T=[];document.getElementById('subjectInput').value='';renderAll();toast('Cleared!');}
}function setAppMode(m){
isPro=m==='pro';
document.getElementById('btnSimple').classList.toggle('active',!isPro);
document.getElementById('btnPro').classList.toggle('active',isPro);
widget().classList.toggle('pro-mode',isPro);
const pb=document.getElementById('proBar');if(pb)pb.style.display=isPro?'flex':'none';
const pr=document.getElementById('paletteRow');if(pr)pr.style.display=isPro?'flex':'none';
if(isPro){buildPaletteBar();updateCanvas();}
try{localStorage.setItem('sst_swot_mode',m);}catch(e){}
}function esc(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);}function init(){
try{
const saved=localStorage.getItem(SK);
if(saved){const s=JSON.parse(saved);d.subject=s.subject||'';d.S=s.S||[];d.W=s.W||[];d.O=s.O||[];d.T=s.T||[];document.getElementById('subjectInput').value=d.subject;if(s.pal)curPal=s.pal;}
const m=localStorage.getItem('sst_swot_mode');if(m==='pro')setAppMode('pro');
}catch(e){}
renderAll();
}
init();