[{"data":1,"prerenderedAt":301},["ShallowReactive",2],{"term-p\u002Fpwa":3,"related-p\u002Fpwa":292},{"id":4,"title":5,"acronym":5,"body":6,"category":274,"description":275,"difficulty":276,"extension":277,"letter":15,"meta":278,"navigation":279,"path":280,"related":281,"seo":285,"sitemap":286,"stem":289,"subcategory":290,"__hash__":291},"terms\u002Fterms\u002Fp\u002Fpwa.md","PWA",{"type":7,"value":8,"toc":268},"minimark",[9,14,18,22,25,29,257,261,264],[10,11,13],"h2",{"id":12},"eli5-the-vibe-check","ELI5 — The Vibe Check",[15,16,17],"p",{},"A PWA is a website that pretends to be an app. You can install it on your phone's home screen, it works offline, gets push notifications, and looks like a native app. It's not in the App Store — it lives on the web, but it acts like it belongs on your phone.",[10,19,21],{"id":20},"real-talk","Real Talk",[15,23,24],{},"A Progressive Web App (PWA) is a web application that uses modern browser APIs to deliver app-like capabilities: installability (via a web manifest), offline support (via Service Workers), push notifications, and background sync. PWAs are indexed by search engines and distributed via URLs, not app stores.",[10,26,28],{"id":27},"show-me-the-code","Show Me The Code",[30,31,36],"pre",{"className":32,"code":33,"language":34,"meta":35,"style":35},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F manifest.json — makes the site installable\n{\n  \"name\": \"Vibecoder Dictionary\",\n  \"short_name\": \"VibeDict\",\n  \"start_url\": \"\u002F\",\n  \"display\": \"standalone\",\n  \"background_color\": \"#ffffff\",\n  \"icons\": [\n    { \"src\": \"\u002Ficon-192.png\", \"sizes\": \"192x192\", \"type\": \"image\u002Fpng\" }\n  ]\n}\n","json","",[37,38,39,48,55,83,104,125,146,167,182,245,251],"code",{"__ignoreMap":35},[40,41,44],"span",{"class":42,"line":43},"line",1,[40,45,47],{"class":46},"sHwdD","\u002F\u002F manifest.json — makes the site installable\n",[40,49,51],{"class":42,"line":50},2,[40,52,54],{"class":53},"sMK4o","{\n",[40,56,58,61,65,68,71,74,78,80],{"class":42,"line":57},3,[40,59,60],{"class":53},"  \"",[40,62,64],{"class":63},"spNyl","name",[40,66,67],{"class":53},"\"",[40,69,70],{"class":53},":",[40,72,73],{"class":53}," \"",[40,75,77],{"class":76},"sfazB","Vibecoder Dictionary",[40,79,67],{"class":53},[40,81,82],{"class":53},",\n",[40,84,86,88,91,93,95,97,100,102],{"class":42,"line":85},4,[40,87,60],{"class":53},[40,89,90],{"class":63},"short_name",[40,92,67],{"class":53},[40,94,70],{"class":53},[40,96,73],{"class":53},[40,98,99],{"class":76},"VibeDict",[40,101,67],{"class":53},[40,103,82],{"class":53},[40,105,107,109,112,114,116,118,121,123],{"class":42,"line":106},5,[40,108,60],{"class":53},[40,110,111],{"class":63},"start_url",[40,113,67],{"class":53},[40,115,70],{"class":53},[40,117,73],{"class":53},[40,119,120],{"class":76},"\u002F",[40,122,67],{"class":53},[40,124,82],{"class":53},[40,126,128,130,133,135,137,139,142,144],{"class":42,"line":127},6,[40,129,60],{"class":53},[40,131,132],{"class":63},"display",[40,134,67],{"class":53},[40,136,70],{"class":53},[40,138,73],{"class":53},[40,140,141],{"class":76},"standalone",[40,143,67],{"class":53},[40,145,82],{"class":53},[40,147,149,151,154,156,158,160,163,165],{"class":42,"line":148},7,[40,150,60],{"class":53},[40,152,153],{"class":63},"background_color",[40,155,67],{"class":53},[40,157,70],{"class":53},[40,159,73],{"class":53},[40,161,162],{"class":76},"#ffffff",[40,164,67],{"class":53},[40,166,82],{"class":53},[40,168,170,172,175,177,179],{"class":42,"line":169},8,[40,171,60],{"class":53},[40,173,174],{"class":63},"icons",[40,176,67],{"class":53},[40,178,70],{"class":53},[40,180,181],{"class":53}," [\n",[40,183,185,188,190,194,196,198,200,203,205,208,210,213,215,217,219,222,224,226,228,231,233,235,237,240,242],{"class":42,"line":184},9,[40,186,187],{"class":53},"    {",[40,189,73],{"class":53},[40,191,193],{"class":192},"sBMFI","src",[40,195,67],{"class":53},[40,197,70],{"class":53},[40,199,73],{"class":53},[40,201,202],{"class":76},"\u002Ficon-192.png",[40,204,67],{"class":53},[40,206,207],{"class":53},",",[40,209,73],{"class":53},[40,211,212],{"class":192},"sizes",[40,214,67],{"class":53},[40,216,70],{"class":53},[40,218,73],{"class":53},[40,220,221],{"class":76},"192x192",[40,223,67],{"class":53},[40,225,207],{"class":53},[40,227,73],{"class":53},[40,229,230],{"class":192},"type",[40,232,67],{"class":53},[40,234,70],{"class":53},[40,236,73],{"class":53},[40,238,239],{"class":76},"image\u002Fpng",[40,241,67],{"class":53},[40,243,244],{"class":53}," }\n",[40,246,248],{"class":42,"line":247},10,[40,249,250],{"class":53},"  ]\n",[40,252,254],{"class":42,"line":253},11,[40,255,256],{"class":53},"}\n",[10,258,260],{"id":259},"when-youll-hear-this","When You'll Hear This",[15,262,263],{},"We built it as a PWA so users can install it without the App Store.,PWAs need HTTPS, a manifest, and a Service Worker.,The PWA install banner appeared automatically after 3 visits.",[265,266,267],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":35,"searchDepth":50,"depth":50,"links":269},[270,271,272,273],{"id":12,"depth":50,"text":13},{"id":20,"depth":50,"text":21},{"id":27,"depth":50,"text":28},{"id":259,"depth":50,"text":260},"frontend","A PWA is a website that pretends to be an app.","intermediate","md",{},true,"\u002Fterms\u002Fp\u002Fpwa",[282,283,284],"Service Worker","Favicon","Offline-First",{"title":5,"description":275},{"changefreq":287,"priority":288},"weekly",0.7,"terms\u002Fp\u002Fpwa",null,"peEUu03UiwHlIoqhFsF903IJHBG8VCLljfpWlCbVnzw",[293,297],{"title":283,"path":294,"acronym":290,"category":274,"difficulty":295,"description":296},"\u002Fterms\u002Ff\u002Ffavicon","beginner","The favicon is that tiny little icon in your browser tab next to the page title.",{"title":282,"path":298,"acronym":290,"category":274,"difficulty":299,"description":300},"\u002Fterms\u002Fs\u002Fservice-worker","advanced","A Service Worker is a JavaScript script that runs in the background, separate from your web page.",1776518300367]