Introducing The Gathering: IPFS Camp, 2019

The first ever public deployment of The Gathering

Victor Rortvedt
The Gathering
4 min readJul 8, 2019

--

IPFS Camp 2019

In February, Justin Maier and I met at ETHDenver 2019, where we conceived the basics of The Gathering, a decentralized, incentivized contact sharing tool for in-person gatherings of communities of affinity. Because we kept discussing, challenging and ideating on the project’s features for most of that hackathon, we didn’t get around to submitting anything there. But we left Colorado knowing that we had developed the root of something compelling — something that would help us manifest our shared view of the way the web should be rebuilt. We were eager to build something that enhanced real-world experiences in a delightful and productive way, but that left users fully in control of their own data because it was built on distributed web infrastructure like IPFS and Ethereum. We also wanted it to be lightweight, have cross-platform functionality, leverage cryptoeconomics to promote positive outcomes, and eventually work even without an internet connection.

In the ensuing months, we kept working on the code, scrapping and tweaking different components of the stack and the user interface until at approximately noon on June 27, we pushed a version of the mobile app built on IPFS, OrbitDB and Ethereum smart contracts, and created a new Gathering that would run through IPFS Camp 2019 in Barcelona, Spain. We created our own profiles, connected with each other, and then headed out to catch the shuttle to Campus La Mola, where we’d spend the next three days interacting with some of the smartest and most thoughtful people on the planet.

We started onboarding our friends immediately on arrival, so we were able to get feedback and make a few changes Thursday night. On Friday afternoon, we gave a lightning talk to the whole camp (slides here), and invited everyone to join the Gathering via QR code.

The final result was a wondrous experience of midwifing our decentralized creation into the world. Out of the 160 IPFS Camp attendees, 90 (!) joined the Gathering and there were 219 total connections made among them. This despite numerous technical challenges that slowed or prevented onboarding — it turns out that 160 distributed web enthusiasts can place a mighty strain on otherwise adequate wifi infrastructure. However, Justin was able to push dozens of improvements during the event, including adding a half dozen or so UX affordances, and by the final day we had a much slicker, faster, cooler browser experience. Keep an eye out for a separate story about the specific issues we encountered and the fixes that were implemented.

Our fellow campers deserve wholehearted thanks, as they were uniformly kind and helpful in offering feedback and pointing us toward solutions. Kudos also go to the IPFS Camp organizers for making such a special event happen — it set a new high water mark for tech conferences for both Justin and I.

At the Gathering’s conclusion, we minted ERC721 NFTs for the Schmoozer Trophy (most direct connections), Cupid Trophy (most matches made) and the MVP Trophy (total points) via this deployed smart contract on Ethereum mainnet. Links to metadata about each trophy were written to the blockchain and the metadata itself was published to IPFS here, here and here. Trophy winners are identified by a SHA2 256 hash of their names, allowing winners to easily prove their accomplishment without having to publicly disclose that information.

Key Lessons Learned

Browser Choice Wasn’t a Major Issue — The good news was that The Gathering worked on most every desktop and mobile browser we tried, including Chrome, Safari, Brave, and others. The only browser that couldn’t run it was, surprisingly, Opera. There were also a few features that wouldn’t work in browsers that were launched by Android QR code reader apps.

Code Names Needs Better Explanation — People weren’t certain what the purposes and uses of code names were, so we saw several instances of people using their normal handle from say Twitter or Github, or choosing a common word like “root” that could end up colliding with another code name. Code names are supposed to be unique to each Gathering so that they are not guessable from anyone outside the Gathering. We plan to add better onboarding explanations to correct these issues.

User Created Affinities Worked Well — Users created 34 total affinities for the Gathering, with the most popular being Libp2p, Ethereum, IPFS, IPNS, IPLD and Filecoin.

Speed Variance Helped Us Figure Out How to Optimize — Under ideal conditions, connections were made and updated in under a second. However, ideal conditions did not prevail at all times. For the first day or two, the app would re-build and update each time a user rejoined the network (whenever waking up a phone and navigating to the browser page). Ditto for using the QR code scanner, which would launch a new browser tab. Given a 10–15 second build time, this was much less than ideal. Justin made some improvements during the camp and we’ve iterated ways to eliminate successive re-builds.

ERC721 Trophy Tweaks — It may make sense to omit some trophies that end up being slightly redundant to one another. After taking Justin and myself off the points leaderboard, the same person won all three trophies for IPFS Camp. Perhaps a single MVP trophy may make the most sense at the start with additions to be vetted against actual user data in order to incentivize certain distinct behaviors.

Conclusion

While at times it creaked rather than sailed, and despite missing documentation to help with onboarding, we are counting the first deployment of the Gathering as a resounding success. People generally liked it, and we got tons of actionable feedback to make it clearer, sleeker and more performant. Looking forward to deploying a second round soon!

--

--

Victor Rortvedt
The Gathering

Ethereum and web3 dapp developer interested in programmable interest — former lawyer — lover of lateral thinking puzzles. rDAI & Tribute & rTrees