The goal is to bootstrap the project, familiarize ourselves with some of the technical details and constraints, and to build a functional prototype for the Receiver launcher. The prototype should be opened and closed using a floating launch button and we should be able to pass the user's connected wallet to the iframe.
Overview
Relay Receiver is implemented as an iframe that points at relay.cc. Most of the application functionality is implemented in the Relay repo. The functionality required in this repo is:
window management
communication between the Receiver window and the host site
Some technical preferences/details:
This project and library should be pretty light and I'd like to keep things as straightforward as possible.
Window management is a pretty straightforward global state kind of thing. React.Context would probably work but I'd be ok with using zustand because I don't like Context and zustand is great.
Vanilla CSS is probably ideal
comlink for the iframe to host site communication. comlink is small, battle-tested, and we're already using it in xmtp-hooks
There's two primary kinds of data that need to flow between the host and the iframe: open/close events and the user's connected wallet. I can/will provide more details about wallets.
Goal
The goal is to bootstrap the project, familiarize ourselves with some of the technical details and constraints, and to build a functional prototype for the Receiver launcher. The prototype should be opened and closed using a floating launch button and we should be able to pass the user's connected wallet to the
iframe
.Overview
Relay Receiver is implemented as an
iframe
that points atrelay.cc
. Most of the application functionality is implemented in the Relay repo. The functionality required in this repo is:Some technical preferences/details:
React.Context
would probably work but I'd be ok with usingzustand
because I don't likeContext
andzustand
is great.comlink
for theiframe
to host site communication.comlink
is small, battle-tested, and we're already using it in xmtp-hooksiframe
: open/close events and the user's connected wallet. I can/will provide more details about wallets.References
comlink
https://github.com/GoogleChromeLabs/comlinkSpec
More info coming soon.