{"id":1807,"date":"2021-03-02T20:48:16","date_gmt":"2021-03-02T20:48:16","guid":{"rendered":"https:\/\/jan.schnasse.org\/blog\/?p=1807"},"modified":"2026-09-28T11:38:03","modified_gmt":"2026-09-28T09:38:03","slug":"database-for-decentralized-web","status":"publish","type":"post","link":"https:\/\/jan.schnasse.org\/blog\/2021\/03\/02\/database-for-decentralized-web\/","title":{"rendered":"Database for Decentralized Web"},"content":{"rendered":"<p><a href=\"https:\/\/orbitdb.org\/\">https:\/\/orbitdb.org\/<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/orbitdb\/orbit-db\">OrbitDB<\/a> is a serverless, distributed, peer-to-peer database. OrbitDB uses <a href=\"https:\/\/ipfs.io\">IPFS<\/a> as its data storage and <a href=\"https:\/\/github.com\/ipfs\/go-ipfs\/blob\/master\/core\/commands\/pubsub.go#L23\">IPFS Pubsub<\/a> to automatically sync databases with peers. It\u2019s an eventually consistent database that uses <a href=\"https:\/\/en.wikipedia.org\/wiki\/Conflict-free_replicated_data_type\">CRDTs<\/a> for conflict-free database merges making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications and offline-first web applications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/orbitdb.org\/ OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. It\u2019s an eventually consistent database that uses CRDTs for conflict-free database merges making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications and offline-first web applications.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1807","post","type-post","status-publish","format-standard","hentry","category-bookmarks"],"_links":{"self":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/comments?post=1807"}],"version-history":[{"count":1,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions"}],"predecessor-version":[{"id":4005,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions\/4005"}],"wp:attachment":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/media?parent=1807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/categories?post=1807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/tags?post=1807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}