April 2024 Vancouver Hack Day Recap

A recap of the April 2024 Vancouver Hack Day at Z Space. Learn, Code, Share!

April 2024 Vancouver Hack Day Recap

Last weekend we organized our first DWeb Vancouver Hack Day, ​a one day event to learn about new-to-you tech, spend some time coding, and finishing off by sharing what you've learned, hacked, or built during the day.

Thanks to Z Space for hosting, and all of the Learn presenters for sharing.

Learn

Here are the different presentations in the order they were given:

Bluesky? AT Protocol? WTF!? An Un-Enshittifiable Social Web?

A Title Slide containing the text "Bluesky? AT Protocol? WTF?! An un-enshittifiable social web?

By: Wesley Finck

Slides & Presentation recording

Wesley gave a broad overview of Bluesky and the underlying AT Protocol that it's built on. Diving in to what sets it apart from other social media platforms and protocols. And explores how and why it may just be "un-enshittifiable".

Bluesky is a twitter-like social media app, but it is built on an underlying federated protocol. There are other federated social protocols like Activity Pub (what Mastodon runs on), but Bluesky's AT Protocol approach to federation is different and the kind of social networking experience it aims to create is different (i.e. a public global conversation system). Federated here means that a third party (whether another company or a developer who is self-hosting) can swap out parts of the system that are provided/run by Bluesky with their own tools.

From personal data to handles/usernames, algorithms and feed generators to stackable moderation, all the way to indexing and even the shape of the social data itself (micro-blogs, long-form articles, discussion threads, photos and videos, groups and events, etc), all of these parts are configurable, opening the doors to innovation wider than any other social media platform with millions of users.

Its design and scale make it one of the easiest and more interesting social media tools for tinkering on a hack day! In fact, as you'll learn at the end, Wesley managed to build and ship a working custom feed which you can use in the Bluesky app.

The Local First web

a cartoon image of birds at a space station on Mars

By: David

Slides

Next up we had David from Feathers.js presenting about local first software, exploring the power of the browser as an engine for running local-first collaborative applications, along with using public/private key pairs for passwordless authentication.

David first started out by giving a broad overview of web apps in the first place. What are the main components we need to build functional apps? He broke these down into four elements:

  • Identity
  • Database
  • Storage
  • Compute

Handling identity in an app is dreadfully and notoriously challenging and complex. Specifically, David looked back over years of issues filed in feathers and found that the majority of problems were related to auth.

But, it doesn't need to be this way. With advancements in browser and cryptography technology, we now can securely handle public/private key pairs in the browser. So, David builds on that and introduced an auth node package @featherscloud/auth (examples). What it does is generate a DID in the browser of each device a user wants to sign in to an application with. Then a JWT can be created with the DID in the payload and the private key used to sign the token. All of this can happen in a modern passwordless way, using email sign up, for example.

Next, going into the database component, this is thought of more as a collaboration engine, or an "event log". This is the heart of making applications multi-user and collaborative. He discussed CRDTs and the Automerge project as a quick and easy way to create powerful, local-first data synchronization experiences.

Storage is the persistence layer. The way to make our apps stateful and interesting, even after we refresh the page. Here he briefly touched on content addressing and IPFS.

And lastly, compute. The energy that gives life to any web application. This section of the talk was more of an introduction to another presentation (everywhere computer). We got an overview of WebAssembly (Wasm) which turns the browser into a much more universal computation environment, allowing many more languages to compile to a format executable in a web-native way.

Enhance

By: Brian

Purple cloud letter spelling "enhance" with small white fairy-sheep creatures.

Brian made a compelling case to bring back HTML-first tooling. Enhance is an html-first full stack web framework. It's simple, light, and performant. And, more importantly, accessible. Using browser standards, rather than heavy, opinionated and non-standards based frameworks, Enhance lets web developers do what they love more easily: build usable websites. It's the framework that... isn't really a framework.

When you learn Enhance, you’re learning development approaches that will last as long as the web does.

Brian mentioned a brief sneak peek of what Enhance ended up launching this past week, which is Web Assembly based server side rendering (SSR).

Decentralized Compute with IPVM

By: Boris

Finally, Boris gave an overview of Everywhere Computer, an "Uber for compute". It is a set of protocols along with a reference implementation for running web assembly functions in a distributed network of compute providers. The Everywhere Computer leverages "content-addressed data, PKI, and capabilities, it ensures computational freedom and interoperability, avoiding lock-in with any single cloud provider."

Think about the convenience of "serverless" functions like AWS Lambda, without locking yourself into the proprietary implementation details of the service provider. Instead, gain the assurance that your web app's compute is executed in an open format, whereby the implementation is decoupled from the compute provider.

This means you have a viable exit strategy (a necessary countermeasure against enshittification) and you can contribute to a more open ecosystem of arbitrary functions that can be composed across the network with full provenance. This opens up the possibility for a whole marketplace of functions and workflows.

Code

After all the presentations we spent the rest of the day hacking away. The Z Space studio had been going for 9 years, and recently opened up a new room with desks available for coworking. There are a few desks still available for flex desk or permanent access.

Share

We ended the day with some demos and sharing of what everyone was working on, as well as some beer and snacks sponsored by Boris.

David showed us how he connected his local first messaging app (built using automerge's CRDT) and his authentication service, to provide passwordless login to the app. No passwords, no headache. Check out the code on GitHub.

Wesley shipped a custom feed generator on bluesky which shows a feed of posts containing links to events. There are some rough edges, but it is available inside the bluesky app.

BK showed us their Farcaster frame for creating web3 fundraising campaigns directly inside the Warpcast app.

Murat showed us their highly configurable governance toolkit for online spaces, check out spiel beta.

Danny walked us through Taddy Ink, which extends RSS to use it for Webcomic distribution, much like the podcasting standard does for audio.

Next

Overall, it was a super fun day and we are definitely planning on doing more in the months to come. Subscribe to the DWebYVR Luma calendar, contribute to the wiki, and join us in chat to find out more or get involved as an organizer.