# 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