# Cabal cabal ### Links [when2meet link](https://www.when2meet.com/?8595007-1oDh4) Jitsi: https://meet.jit.si/cabalCabalCabal Figma notes: https://www.figma.com/file/N2SWdJRPat743ntHZcs8IG/Cabal-design-decisions?node-id=0%3A1 ### Proposed Agenda * **check-ins** _15 min total (5 min per person)_ hey friends, how are you?! * **feels about cabal** _15 min total (5 min per person)_ how are you feeling with regard to cabal? what are yr unfiltered thoughts re the project atm, and in the near future * **riffing** _20 min_ talk about whatever comes up during the feels, or a proposed focused topic by someone? * **check out** _10 min total_ bye friends, it's good hearing yr voices. we should talk more often <3 ### Potential topics * replace hypercore with something simpler? or other ways to simplify the code * CPU usage with many feeds * How to forget old data * expiring feeds * sparse feeds * UX affordances we want but don't have yet * replication receipts / read receipts * presence info for people not directly connected to you * encryption to allow untrusted hosting * moderation features * /walkaway * private messages * per-user keys * invite-only cabals * sort messages by received time instead of authored time? * making it feel fun * fun to use * easy to invite & join * good user affordances * feels calm & cozy & safe & informal * ephemeral data * user research? who are we trying to serve * fun to develop on * simple code * tests? * kindness with each other * switch from discovery-swarm to hyperswarm? * creating a network protocol specification ### Things we're excited to work on cblgh * private messages * moderation, trust * quality of life in cli (backscroll, auto-complete nicknames!!) cinnamon * would like to have confidence that messages are making it across the void; read receipts-style functionality / _message has been received_ * private messages * accessibility & usability * same-as & other solutions to multi-device nettle * has had a shift in perspective re cabal / cabal perspective * first system - second system thinking * looking at cabal as a brainstorm, made into an app * CABAL 2.0 * specifications, network protocol * clear idea of who its trying to serve karissa * interested in accesibility * getting non-dev friends excited about being on something other than slack * even brave uses slack internally * cabal-desktop is actually really close to having everything that slack does for mainstream ppl usage?? * real excited about the desktop app, private messages * how could we make cabal a self-sustaining thing has been on the back of karissa's mind ### Meeting notes we want clients to be very simple to implement private messages!! has-my-data-been-sent random ideas * recursive cabals? * twist-style forum / issues style interface sqlite is cool https://actualbudget.com/ ## Sparse mode / ephemeral data two types of messages * state type messages (nicknames) * more ephemeral messages (chat messages) how to keep the state type messages: * rewrite nickname every 1000 messages so it's always recent and at a predictable index number ways to throw away data * Dat sparse mode * feeds that expire on a certain date; keep making new feeds * have 2 feeds, one for state (nickname) and one for messages * /walkaway ## Exciting across the board low hanging fruit * private messages!! * a simple "has my message been uploaded to someone else?" indicator * hypercore.on("uploaded/downloaded") * docs for cabal-client ## What security properties do we really need yes * signing * preventing reordering messages (this is easy though) not really needd * preventing a change to earlier in the log (by the author) invite-only * new hypercore authentication, knocking on the door * or have mostly private channels & people ask in the public lobby to get added ## Other thoughts reciprocal visibility * when you block someone, also keep them from seeing you * "know your audience" = feel cozy & safe gradient of intimacy * lobby, then someone lets you in * leaking the key can let people into the lobby, but requires an exlicit action to let you in beyond there * you can decide to see the lobby if you have energy & spoons, or not look there if you don't want to see spam etc * hidden places private channels excite everybody!!! ## other systems to look at couchdb - more of a set of objects, not an append-only log ipfs - a set of objects ## concluding thoughts private channels!! v1 is experimental, doesn't have to be perfect. v2 will be more carefully designed nice to hear people's voices, connect & feel enthusiasm hackmd for brainstorming: https://hackmd.io/WXRytoABSZSNYTP7E5Fd0g