Skip to content

Condenser — Quick guide

Condenser is Blurt's flagship web front-end — the React application that runs blurt.blog, where people read feeds, publish and comment, browse communities and profiles, and manage their wallet. It is server-side rendered (a Koa server does the first paint, the browser hydrates), and it talks to the rest of the stack through a single RPC endpoint.

A reader/writer, not a source of truth

Condenser holds no chain state of its own. It reads social and chain data through the RPC proxy and writes by signing transactions in the browser and broadcasting them to blurtd. Keys never leave the user's device.

Where it sits

text
  condenser (browser + Koa SSR)
     │  reads + broadcasts

  RPC proxy  ──►  nexus-go   (feeds, communities, profiles, drafts)
             ├──►  blurtd    (consensus reads + broadcast)
             └──►  wallet-indexer (only via the wallet app)

It reaches the stack through the RPC proxy at a single URL (SDC_CLIENT_BLURTD_URL in the browser, SDC_SERVER_BLURTD_URL for SSR): social reads resolve to nexus-go, consensus and broadcast to blurtd. Drafts and images go to their own services.

The stack it's built on

  • React + Redux + redux-saga — UI, application state, and side effects (the sagas make the RPC calls, sign, and broadcast).
  • react-router — client and server routing (ResolveRoute).
  • Koa — the server that renders the first response and manages sessions.
  • blurtjs (@blurtfoundation/blurtjs) — chain client and cryptography.
  • i18n — many locales (Translator), so the UI ships translated.

What it does

Feeds (trending / hot / new / promoted and per-community), the post and comment view, the markdown editor, community pages, profiles, the notifications panel, search, and wallet views — the full social read/write surface of Blurt.

Run it

Condenser runs as a Docker container and needs a stable session secret:

sh
export CHICKEN=$(base64 --wrap=0 /dev/urandom | head -c 64)
docker run -it -p 8080:8080 -e SDC_SESSION_SECRETKEY=$CHICKEN \
  registry.gitlab.com/blurt/blurt/condenser

Keep that secret consistent across restarts. Point it at your RPC endpoint and chain parameters with the SDC_* environment variables — see the Reference for the full configuration surface.

Next

  • Reference — architecture, how it talks to the stack, the main views, configuration, and signing.
  • Source: blurt/condenser.

Released under the MIT License.