Skip to content

Defining dogfooding webapps #1784

Open
Open
@fryorcraken

Description

@fryorcraken

This is a bug report/feature or change request/support request

Problem

Follow-up of waku-org/examples.waku.org#275

@waku-org/js-waku-developers needs to define a small number of dogfooding webapp in lab.waku.org that enable:

  • dogfooding of new features, APIs and library
  • handover to Docs & Dev Rel of the feature for documentation and Dev Rel asset creation purposes.

Also note that it may interesting to unit test this small set of example to ensure they do not break as they will be critical to deliver any new feature.
There is already some work done in this direction

name: Playwright tests
but web-chat might not be the best choice.

Proposed Solutions

To avoid unnecessary and duplicate effort, the set of dogfood web app in lab.waku.org should be minimal and demonstrate as many API as possible.

In rough term of API to be covered:

  • Node creation, usage of RLN and autosharding with default bootstrap and peer discovery
  • Usage of req-res protocols: store, light push, filter
  • encryption and signature: ECIES, AES, noise
  • Other SDKs: @waku/react

Proposal: have two examples.

  • Very simple React app that demonstrate usage of @waku/react
  • Web app that demonstrate usage of most API listed above.

For the Web app, I recommend the usage of the notes web app as it can allow you demonstrated req-res protocol usage but also encryption:

  • When creating a note or using the app, user creates a new ECIES keypair as identity for the note
  • A note is always signed by owner of the note, signature is verify by reader to confirm original author (from oldest note they can retrieve) does a note update
  • note are encrypted using AES (symmetrics), symkey is included in URL passed to share a note

Potentially, noise-js could also be demonstrated: Alice links her browser phone to her browser desktop instance via noise.
When doing a note update on her phone, the desktop receives the note update via noise channel and proceed with signing it and propagating it to the network. This demonstrated how Alice can pair devices without copying private keys on other devices.

Notes

Feel free to edit this description once you agreed on the solution.

Some liveness is also necessary to easily spot disconnection, etc. I would recommend that when viewing a not, the page is automatically refreshed if a message with an update on the same note is received.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    To Do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions