[{"data":1,"prerenderedAt":77},["ShallowReactive",2],{"term-o\u002Foffline-first":3,"related-o\u002Foffline-first":59},{"id":4,"title":5,"acronym":6,"body":7,"category":40,"description":41,"difficulty":42,"extension":43,"letter":44,"meta":45,"navigation":46,"path":47,"related":48,"seo":53,"sitemap":54,"stem":57,"subcategory":6,"__hash__":58},"terms\u002Fterms\u002Fo\u002Foffline-first.md","Offline-First",null,{"type":8,"value":9,"toc":33},"minimark",[10,15,19,23,26,30],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 - The Vibe Check",[16,17,18],"p",{},"Offline-first means you design your mobile app assuming the network is the exception, not the rule, because on a phone it genuinely is: subway tunnels, airplane mode, spotty rural coverage, a dead zone in a parking garage. The app reads and writes to a local database first and syncs with the server whenever a connection happens to show up, instead of freezing every time the signal drops.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Offline-first is an architectural approach where an app's primary source of truth is a local, on-device database, with changes synchronized to a remote server opportunistically when connectivity is available, rather than treating the network as required for basic functionality. It typically involves a local persistence layer, a sync engine that reconciles local and remote state, and a conflict resolution strategy for changes made while offline.",[11,27,29],{"id":28},"when-youll-hear-this","When You'll Hear This",[16,31,32],{},"\"We rebuilt the app offline-first after users kept losing form data every time they went through a tunnel.\" \u002F \"The hardest part of going offline-first wasn't the local database, it was conflict resolution when two devices edited the same record.\"",{"title":34,"searchDepth":35,"depth":35,"links":36},"",2,[37,38,39],{"id":13,"depth":35,"text":14},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},"frontend","Offline-first means you design your mobile app assuming the network is the exception, not the rule, because on a phone it genuinely is: subway tunnels, air...","intermediate","md","o",{},true,"\u002Fterms\u002Fo\u002Foffline-first",[49,50,51,52],"IndexedDB","CRDT","Eventual Consistency","Sync",{"title":5,"description":41},{"changefreq":55,"priority":56},"weekly",0.7,"terms\u002Fo\u002Foffline-first","gjw-Chvyp0u6pnXcrBVJ7vb-DZLLIhvNOByE--_ArnE",[60,65,69,72],{"title":50,"path":61,"acronym":50,"category":62,"difficulty":63,"description":64},"\u002Fterms\u002Fc\u002Fcrdt","architecture","advanced","A CRDT (Conflict-free Replicated Data Type) is a data structure that multiple users can edit simultaneously without conflicts.",{"title":51,"path":66,"acronym":6,"category":67,"difficulty":42,"description":68},"\u002Fterms\u002Fe\u002Feventual-consistency","database","Eventual consistency means 'give it a moment and everything will match up.' You write data to one server, and the other servers will get the update...",{"title":49,"path":70,"acronym":6,"category":40,"difficulty":63,"description":71},"\u002Fterms\u002Fi\u002Findexeddb","IndexedDB is a full-on database living inside your browser.",{"title":52,"path":73,"acronym":6,"category":74,"difficulty":75,"description":76},"\u002Fterms\u002Fs\u002Fsync","general","beginner","Sync means one thing at a time, in order. You order food, stare at the kitchen wall, and only get to sit down when the food arrives.",1792528104593]