# IPFS Demos
Demos and explanations I’ve found effective for communicating the value of IPFS, and illustrating the differences between it and HTTP.
## Content Independence
Demonstrate how content can live independent from websites, by using HTTP gateways to the IPFS network.
* add a photo to your local node
* get the CID
* open a browser
* open https://ipfs.github.io/public-gateway-checker/ and explain what it is
* open `ipfs.io/ipfs/{CID}`
* open `cloudflare-ipfs.com/ipfs/{CID}`
Notes
* Sometimes your local node can't be reached by the IPFS network, so test first. If you can't load quickly from local node, instead first upload to Estuary.tech, Pinata, Web3.storage, Infura, etc before loading from gateways. Also a way to showcase some of those services.
## Local Network
Typical web application usage depends on DNS resolution and SSL certificates - which means apps typically do not work over the local network easily, or often at all.
Full IPFS nodes have mDNS support, and can discover each other over the local subnet.
Setup
* have everyone install IPFS Desktop
* set up a wifi hotspot on your phone and turn off mobile data, resulting in wifi network not connected to the internet
* have everyone connect to your hotspot
Activity
* open the webui
* upload a photo
* get the CID
* share w/ everyone
* have them load it from the webui
(TODO: add the bit about localhost URLs to access local node)
Notes
* sometimes better to have a web app people can load, instead of just photo sharing
* first test that your hotspot works for local subnet communication, sometimes networks isolate IPs
## Collaboration
For IPFS Camp, one of the courses walked devs through using PubSub to post to a common topic and generating content in real time as they did, up on the screen.
Would be interesting to do a non-technical version of this where people work on something together on mobile.
## Infra-less Independent publishing
Publish your website or zine directly from your computer. This is what made Beaker Browser so viscerally impactful. Can do same with IPFS, but the deployment ergonomics are different.
## Transport Agnosticism
* mDNS example
* HTTP gateways are kinda example as well
* Berty BLE libp2p transport
* need to build into Durin for easy demoing
## Bookshelf - what I see is *my* web
* viewing an IPFS website means you have a full and complete copy
* your IPFS node is an accessible cache of everything you've seen (unlike browser cache, which isn't accessible)
* is like a browser where the cache is first class idea - your bookshelf
* with HTTP, the websites use HTTP headers to tell the browser what to delete from cache and when
* the decision power is all in the hands of the website
* to delete stuff from *your* bookshelf?!
* with IPFS you have a functional copy for as long as *you* decide