[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"term-r\u002Fremote-caching":3,"related-r\u002Fremote-caching":213},{"id":4,"title":5,"acronym":6,"body":7,"category":193,"description":194,"difficulty":195,"extension":196,"letter":197,"meta":198,"navigation":199,"path":200,"related":201,"seo":207,"sitemap":208,"stem":211,"subcategory":6,"__hash__":212},"terms\u002Fterms\u002Fr\u002Fremote-caching.md","Remote Caching",null,{"type":8,"value":9,"toc":187},"minimark",[10,15,19,23,26,30,176,180,183],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 - The Vibe Check",[16,17,18],"p",{},"Remote caching means if a teammate already built the exact same code with the exact same inputs an hour ago, your machine doesn't rebuild it, it just downloads their result from a shared cache. It's the build-system version of not re-cooking a meal someone in your kitchen already made from the identical recipe five minutes ago, you just grab their plate.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Remote caching stores build and test outputs in a shared, content-addressed cache keyed by the inputs that produced them, so any machine, local or CI, can reuse a previous result instead of recomputing it. Build systems like Bazel, Turborepo, and Nx use it to make monorepo builds and CI runs dramatically faster by skipping work that's already been done elsewhere.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"remoteCache\": { \"enabled\": true },\n  \"tasks\": {\n    \"build\": {\n      \"outputs\": [\"dist\u002F**\"],\n      \"cache\": true\n    }\n  }\n}\n","json","",[38,39,40,49,85,100,115,143,158,164,170],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sMK4o","{\n",[41,50,52,55,59,62,65,68,71,75,77,79,82],{"class":43,"line":51},2,[41,53,54],{"class":47},"  \"",[41,56,58],{"class":57},"spNyl","remoteCache",[41,60,61],{"class":47},"\"",[41,63,64],{"class":47},":",[41,66,67],{"class":47}," {",[41,69,70],{"class":47}," \"",[41,72,74],{"class":73},"sBMFI","enabled",[41,76,61],{"class":47},[41,78,64],{"class":47},[41,80,81],{"class":47}," true",[41,83,84],{"class":47}," },\n",[41,86,88,90,93,95,97],{"class":43,"line":87},3,[41,89,54],{"class":47},[41,91,92],{"class":57},"tasks",[41,94,61],{"class":47},[41,96,64],{"class":47},[41,98,99],{"class":47}," {\n",[41,101,103,106,109,111,113],{"class":43,"line":102},4,[41,104,105],{"class":47},"    \"",[41,107,108],{"class":73},"build",[41,110,61],{"class":47},[41,112,64],{"class":47},[41,114,99],{"class":47},[41,116,118,121,125,127,129,132,134,138,140],{"class":43,"line":117},5,[41,119,120],{"class":47},"      \"",[41,122,124],{"class":123},"sbssI","outputs",[41,126,61],{"class":47},[41,128,64],{"class":47},[41,130,131],{"class":47}," [",[41,133,61],{"class":47},[41,135,137],{"class":136},"sfazB","dist\u002F**",[41,139,61],{"class":47},[41,141,142],{"class":47},"],\n",[41,144,146,148,151,153,155],{"class":43,"line":145},6,[41,147,120],{"class":47},[41,149,150],{"class":123},"cache",[41,152,61],{"class":47},[41,154,64],{"class":47},[41,156,157],{"class":47}," true\n",[41,159,161],{"class":43,"line":160},7,[41,162,163],{"class":47},"    }\n",[41,165,167],{"class":43,"line":166},8,[41,168,169],{"class":47},"  }\n",[41,171,173],{"class":43,"line":172},9,[41,174,175],{"class":47},"}\n",[11,177,179],{"id":178},"when-youll-hear-this","When You'll Hear This",[16,181,182],{},"\"Remote caching took our CI build from 12 minutes to 40 seconds on cache hits.\" \u002F \"Make sure the cache key includes the env vars, or remote caching will serve stale results.\"",[184,185,186],"style",{},"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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":36,"searchDepth":51,"depth":51,"links":188},[189,190,191,192],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":178,"depth":51,"text":179},"cicd","Remote caching means if a teammate already built the exact same code with the exact same inputs an hour ago, your machine doesn't rebuild it, it just downl...","intermediate","md","r",{},true,"\u002Fterms\u002Fr\u002Fremote-caching",[202,203,204,205,206],"Bazel","Turborepo","Nx","Monorepo Tools","CI Testing",{"title":5,"description":194},{"changefreq":209,"priority":210},"weekly",0.7,"terms\u002Fr\u002Fremote-caching","pVT_IDMQfqUYmpBRHkVUPF9wKl7dEkTsoSvx20hnVbo",[214,217,222,225,229],{"title":202,"path":215,"acronym":6,"category":193,"difficulty":195,"description":216},"\u002Fterms\u002Fb\u002Fbazel","Bazel is Google's build tool for when your codebase gets so big that just running an install and build script stops being good enough.",{"title":206,"path":218,"acronym":6,"category":219,"difficulty":220,"description":221},"\u002Fterms\u002Fc\u002Fci-testing","testing","beginner","CI Testing is running all your tests automatically every time someone pushes code.",{"title":205,"path":223,"acronym":6,"category":193,"difficulty":195,"description":224},"\u002Fterms\u002Fm\u002Fmonorepo-tools","Monorepo tools help you manage a massive codebase where everything — frontend, backend, shared libraries — lives in one repository without losing your mind",{"title":204,"path":226,"acronym":6,"category":227,"difficulty":195,"description":228},"\u002Fterms\u002Fn\u002Fnx","general","Nx is like a smart contractor for your monorepo.",{"title":203,"path":230,"acronym":6,"category":193,"difficulty":195,"description":231},"\u002Fterms\u002Ft\u002Fturborepo","Turborepo makes your monorepo fast by figuring out which things need to rebuild and which can be skipped. Change the homepage?",1792528116906]