decent-bookmarks

Decent Bookmarks, a Farcaster shared data project launched 20 May 2024

MIT License

Stars
0
Committers
2

Decent Bookmarks

a Farcaster shared data project, launched in beta 20 May 2024

Works hand-in-hand with [decent-bookmarks-cast-action]. Further discussion in the [beta launch thread] and in the gc.

HOWTO for Users

Decent Bookmarks is beta and details are subject to change.

ANY BOOKMARK YOU SAVE IS VISIBLE TO DEVS but kept private with respect to the general public.

  1. execute the Cast Action on any cast. [Install here].

  2. execute the Cast Action on the same cast to remove. Example video [here].

  3. view in a client that has enabled Decent Bookmarks:

Technical HOWTO for Client devs

  • see shape of GET API results

    curl -X GET 'https://decent-bookmarks.artlu.xyz/?fid=6546'
    
    curl -X GET 'https://decent-bookmarks.artlu.xyz/?fid=6546' | jq
    
    • this is an open FID which chooses to share data unencrypted
    • almost all FIDs are closed, that is, data is only made available to authorized clients
  • example API call to get encrypted data

    curl -X GET 'https://decent-bookmarks.artlu.xyz/?fid=391262' -H 'Authorization: Basic {secret}'
    
  • message @artlu99 for credentials

  • show Decent Bookmarks in your FC client

    • [live] example in Next/React, sorted by time-added-to-list [code]

    • in beta, all user-saved Decent Bookmarks are available to any client on the allowlist. Future development needed to allow users to opt-in to a more cumbersome flow, in order to further customize and segregate access to their data.

  • Basic mental model is a shared pool of data, with a privileged gatekeeper who can rotate keys in order to cut off future access. This invalidates current/future state, but does nothing with data that already was shared broadly. Not suitable for sharing sensitive, unencrypted information.


A Cloudflare Worker endpoint with 3 methods:

  • GET - retrieves the entire list of stored bookmarks, decrypting as necessary and as authorized

  • POST - adds a cast to the bookmarks list, adding a timestamp

  • DELETE - deletes a bookmark from the bookmarks list

study types.ts, run-time validation performed with @cfworker/json-schema

Data Availability is handled in beta by my "L4", i.e., a Cloudflare datastore. Next step is writing to Hub, L3, or L2.