BoardStreams consists of a server-side and a client-side component.

Server (Perl)

The server-side library is a Mojolicious plugin. You need to have a Mojolicious server and a PostgreSQL database (postgresql server v9 and above) to use BoardStreams.


> cpanm BoardStreams


$app->plugin(BoardStreams => {
    db_string => "postgresql://$db_user:$db_pass\@$db_host/$db_name",

Client (JavaScript)

The client-side library is framework-agnostic, and runs on any modern browser. See for version compatibility between server and client components.


Via npm:
> npm install boardstreams@x.y.z
Via CDN:
<script src=""></script>


import BoardStreams from 'boardstreams';              // only needed if installed from npm

const BS = new BoardStreams('/ws');                   // if the websocket server is on the same host
const BS = new BoardStreams('wss://');  // otherwise


While developing your BoardStreams site, it's worth disabling your browser's websocket reconnection delay. In Firefox, that's the network.websocket.delay-failed-reconnects setting in about:config.