protocol agnostic decentralized social media toolkit
Find a file
2025-01-04 20:45:22 -07:00
adapter implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
cli implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
config implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
frontend implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
models implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
server implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
.gitignore change webpack config and fine tune to use the frontend as a library 2024-12-07 18:04:04 -07:00
build.sh change webpack config and fine tune to use the frontend as a library 2024-12-07 18:04:04 -07:00
go.mod implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
go.sum implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
package-lock.json cleanup node deps 2024-07-06 12:55:34 -06:00
package.json cleanup node deps 2024-07-06 12:55:34 -06:00
README.md update README a bit 2024-12-07 18:15:45 -07:00
tsconfig.json clean up frontend build config 2024-07-07 11:07:18 -06:00
underbbs.go implement authorized fetch and cors 2025-01-04 20:45:22 -07:00
webpack.config.js change webpack config and fine tune to use the frontend as a library 2024-12-07 18:04:04 -07:00

underBBS

underBBS is a protocol-agnostic decentralized social media client and toolkit

design

underbbs can run in two modes depending on its executable name:

web client

underbbs supports multiple simultaneous account logins, mediating them for each user through a gateway server that handles all protocol-specific logic via adapters and streaming content to the user through a single websocket connection with a singular data interface.

adapters receive commands via a quartzgun web API and send data back on their shared websocket connection; when data comes in on the websocket, underbbs will save it and then notify any relevant web components that the data has changed.

CLI

underbbs-cli pulls adapter credentials from ~/.config/underbbs/cli.conf and accepts commands on individual adapters, printing data to standard output.

building and running

requirements are

  • go 1.22 (for the backend)
  • any recent nodejs that can do typescript and webpack 5 (for the frontend)

from the project root:

  1. ./build.sh front (if you will use the web components)
  2. ./build.sh server
  3. ./underbbs or ./underbbs-cli ADAPTER ACTION ARGS...

integrating

with the API and web components

  1. fill Settings._instance with adapter settings; these will mostly be authentication data (SettingsElement illustrates this)
  2. instantiate whatever components you want on your page with their data-adapter, data-gateway and data-target appropriately set; further docs to come on these
  3. call DatagramSocket.connect(GATEWAY) where GATEWAY is the domain of the underbbs API. SettingsElement's connect button does this for you.

with the CLI

  1. Call the CLI directly from the serverside or locally
  2. Process any output to your preference