#aiwsb{max-width:1100px;margin:30px auto;border:1px solid #ddd8ce;background:#fbfaf7;color:#171717;font:16px/1.5 Arial;}#aiwsb .top{display:grid;grid-template-columns:1fr 330px;gap:20px;padding:28px;background:#fbfaf7}#aiwsb .k{margin:0 0 8px;color:#0f766e;font-weight:800;text-transform:uppercase;font-size:.8rem}#aiwsb h2{margin:0 0 12px;font-size:clamp(2rem,4vw,3rem);line-height:1}#aiwsb p{color:#5f6368}#aiwsb form,#aiwsb .card{background:#fff;border:1px solid #ddd8ce;border-radius:6px;padding:15px}#aiwsb label{display:block;margin:0 0 4px;font-size:.85rem;font-weight:800}#aiwsb select{width:100%;min-height:40px;margin:0 0 9px;border:1px solid #ddd8ce;border-radius:6px;background:#fff;padding:7px}#aiwsb button{min-height:38px;padding:7px 11px;border:1px solid #ddd8ce;border-radius:6px;background:#fff;font-weight:800;cursor:pointer;}#aiwsb .pri{background:#0f766e;color:#fff;border-color:#0f766e}#aiwsb .out{padding:24px;border-top:1px solid #ddd8ce}#aiwsb .head{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:14px}#aiwsb h3{margin:0;font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.15}#aiwsb .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}#aiwsb .tag{display:inline-block;margin-bottom:7px;padding:4px 7px;border-radius:999px;background:#fff4e5;color:#b45309;font-size:.72rem;font-weight:900;text-transform:uppercase}#aiwsb h4{margin:0 0 6px;font-size:1rem}#aiwsb ul,#aiwsb ol{list-style:none;padding:0;margin:8px 0 0}#aiwsb li{border-top:1px solid #ddd8ce;padding:8px 0;font-size:.95rem}.msg{color:#0f766e;font-weight:800}@media(max-width:800px){#aiwsb .top,#aiwsb .grid{grid-template-columns:1fr}#aiwsb .head{display:block}}@media(max-width:520px){#aiwsb{border-radius:0;border-left:0;border-right:0}#aiwsb .top,#aiwsb .out{padding:18px 14px}#aiwsb button{width:100%;margin-top:6px}} AI Stack BuilderBuild your AI stackChoose your role, goal, budget, skill level, and style. Get a practical AI stack.RoleYouTubeFounderMarketingCoderFilmResearchStudentAgencyGoalVideosContentCodeAutomateResearchImagesBudgetFree<$50<$200ProSkillBeginnerIntermediateAdvancedStyleFastQualityTeamPrivateAPIBuild stackCopy stackBestStackFreeFreeStepsSteps (function(){var root=document.getElementById("aiwsb"),R={y:"YouTube|ChatGPT,Descript,CapCut,Canva,vidIQ,11Labs,Runway",fo:"Founders|ChatGPT,Claude,Perplexity,Notion,Zapier,Gamma,Airtable",m:"Marketing|ChatGPT,Claude,Jasper,Canva,Surfer SEO,Semrush,Buffer",c:"Coders|ChatGPT,Claude,Cursor,Copilot,Replit,v0,Bolt",fi:"Film|Runway,Kling,11Labs,DaVinci,Midjourney,Descript",re:"Research|Perplexity,Elicit,Consensus,Claude,NotebookLM,Zotero,Scite",st:"Students|ChatGPT,Perplexity,NotebookLM,Quizlet,Grammarly,Canva,Notion",a:"Agencies|ChatGPT,Claude,Zapier,Canva,Airtable"},G={v:"Runway,Descript,CapCut,11Labs|Draft hook|Collect visuals|Edit cut|Add captions|Publish",w:"ChatGPT,Claude,Grammarly,Jasper|Research topic|Outline|Draft|Edit|Repurpose",ap:"Cursor,Copilot,Replit,v0|Define feature|Plan build|Code|Test|Ship",au:"Zapier,Make,Airtable,OpenAI API|Map task|Pick trigger|Build flow|Test|Monitor",rs:"Perplexity,Elicit,NotebookLM,Zotero|Ask question|Collect sources|Summarize|Compare|Brief",im:"Midjourney,DALL-E,Canva|Set style|Prompt|Choose|Edit|Export"},F="ChatGPT,Claude,Perplexity,Canva,CapCut,NotebookLM,Zotero,Trends,Buffer,Replit,DaVinci,Trello".split(",");function q(i){return root.querySelector("#"+i)}function u(a){return a.filter(function(x,i){return x&&a.indexOf(x)==i})}function items(a){return a.map(function(x){return"<li><b>"+x+"</b></li>"}).join("")}function build(){var rd=R[q("zr").value].split("|"),gd=G[q("zg").value].split("|"),lab=rd[0],base=rd[1].split(","),boost=gd[0].split(","),lim=q("zb").value=="free"?5:7,stack=u(boost.concat(base)).slice(0,lim),free=u(stack.concat(F)).filter(function(x){return F.indexOf(x)>-1}).slice(0,6);q("zt").textContent="Stack for "+lab;q("zu").textContent=q("zo").value+" stack for "+q("zs").value.toLowerCase()+" users on "+q("zb").options[q("zb").selectedIndex].text+".";q("zp").innerHTML=items(stack);q("zfr").innerHTML=items(free);q("zst").innerHTML=gd.slice(1).map(function(x,i){return"<li><b>Step "+(i+1)+":</b> "+x+"</li>"}).join("");root.dataset.copy=["AI Stack","Role: "+lab,"Goal: "+q("zg").options[q("zg").selectedIndex].text,"Recommended: "+stack.join(", "),"Free: "+free.join(", ")].join("\n");q("zm").textContent=""}q("zf").addEventListener("submit",function(e){e.preventDefault();build()});["zr","zg","zb","zs","zo"].forEach(function(i){q(i).addEventListener("change",build)});q("zcp").addEventListener("click",function(){var txt=root.dataset.copy||"";if(navigator.clipboard){navigator.clipboard.writeText(txt)}q("zm").textContent="Stack copied."});build()})();