The Big Announcement is a simple prototype designed to teach us, and others, how to build decentralized applications on Ethereum and IPFS, with web3.js and js-ipfs. It is an IPFS-hosted website that displays a single message. This message is stored in IPFS, and the content hash of the message is stored in an Ethereum contract. Users can edit the message, provided that they pay more ETH than the author of the previous message. When the message is submitted, it is uploaded to IPFS, and the content hash written to the Ethereum contract. That's it. That's the whole thing.
How It's Made
Our main goals were to a) complete the simplest possible MVP, and b) not depend on any centralized services. To those ends The Big Announcement is using only the most basic distributed application technologies: it is a simple web site that uses web3.js to access the Ethereum network, and js-ipfs to access the IPFS network. There are no backend components. So when the site is registered with a distributed domain name via either ENS or Unstoppable Domains, a suitably-equipped web browser can in theory use the application without the possibility of censorship. We use Fleek to deploy the site to IPFS and to manage our traditional domain name (bigannouncement.news), but not to manage our ENS name (bigannouncement.eth) or our Unstoppable Domain name (bigannouncement.crypto). We investigated Textile and Pinata for storing data to IPFS, but both solutions require a centralized backend component for authentication, and we did not want to deploy any servers. We encountered a number of challenges during development, and wrote down our experiences as we went here: https://github.com/Aimeedeer/bigannouncement/blob/master/doc/hacklog.md