Who is this tutorial for?
I like to think of Arweave as a decentralized application distribution platform.
Before we dive in, let's have a quick discussion about what we are trying to achieve.
View the YouTube tutorial
The entire tutorial and video walkthrough can be accessed here.
Learn on the Permaweb
You can also experience the full tutorial directly on the Permaweb, too! See it here (including videos): https://permanotes.app/#/notes/6szj6CnMhWbVcv05p_el8-r6HjSEqHeYeDslSABIPYU
A geopin application 8pin
8pin allows users to take some text and a photo and document a moment at a specific location. In this tutorial we will step through the process of using many of the Arweave developer tools and libraries to deliver our 8pin application to the Permaweb. See it in action here and give it a go! https://dev.8pin.app
Arweave is unique, because it serves as our storage service as well as our application service and is decentralized. So we will use Arweave to read and write data for our application as well as deploy our application's code to Arweave to serve the app via a web browser. This concept at first may take a little time to comprehend. Arweave is made up of nodes and gateways. The nodes manage the storage and blockweave bits, while the gateways manage the Cache, RPC API, and Query features. The gateway is where the magic happens for our decentralized applications. By storing data with metadata tags like 'Content-Type' we can provide information to the gateway servers how to present our data. This allows a web browser to interact directly with our application as if the gateway is a web server.
Why Arweave for web3?
- Git/Github - https://github.com
- JSON/GraphQL - https://graphql.org
- Mapbox account - https://www.mapbox.com/
Create a free mapbox account to take advantage of the mapping and geocoding features. You will need a free developer public API key.
Fork the following repository: https://github.com/OnlyArweave/8pin-arweave-tutorial#arweave-devtools, then clone it to your local environment, or spin it up in gitpod: https://gitpod.io#[yourforked repo]