# bbnet (ᴎoT THɘ wiᴙɘb)
=> gemini://xj-ix.luxe/posts/2020-11-17-nyu-tokyo-roadmap.gmi roadmap
=> gemini://xj-ix.luxe/posts/2019-programming-for-the-next-billion.gmi programming for the next billion
every (chat) app sucks because engineers think they need to build your interface for you! bbnet takes a different approach: here you can create and share virtual spaces that work however you need them to, over whatever protocol.
> some chat networks have terms of service which prohibit third party clients, so these won't be possible to support (*cough* discord).
if you're thinking, "this sounds kind of like google wave" i wouldn't correct you. that's not the focal point of the project though. messaging is an interesting and useful *application* for experimenting with practical end user programming.
## avi chat
avi chat will only be supported by some networks because your client needs to exchange background messages with other clients so that avatars can interact. bbnet wants to be a good citizen of the network it communicates with. within the scripting environment, each channel is annotated with a type that indicates what features it supports. while there is no way to explicitly prevent a component from being impolite and lying about its capabilities, the typed interfaces at least allow end users to confidently assemble well-behaved interfaces.
* typed interfaces
* typed widgets
* typed high-level functional components
the runtime environment is highly constrained to allow easy composition.
## trad chat
a stream of text and a list of members, what else? (inc uwu emoji obv)
## media viewer
> accidental cytube
## lain scripting
=> https://wiki.xxiivv.com/site/lain.html lain
(add (sub 5 3) 2) ; Basic Math
(λ (a b c) (concat a b c)) ; Lambda
(def obj:foo "bar") ; Creating object
(obj:foo) ; Reading object parameters
(def _sidebar (dom:create "sidebar")) ; Creating DOM elements
## see also
=> gemini://gemini.circumlunar.space/docs/specification.gmi gemini spec
=> https://donate.sunshinegardens.org/?project=8 Donate with fosspay