Skip to content

Latest commit

 

History

99 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Badinage

Warning

This project is still alpha level software and being actively developed.

OpenSSF Scorecard

A self-hostable web XMPP client. Connects to any existing XMPP server over WebSocket or BOSH, supports multiple accounts at once.

Try the live demo

Badinage demo

Features

  • Chat like you expect: DMs and group chats, replies, reactions, edits, attachments, voice messages, typing and read indicators
  • All your accounts in one place
  • Works offline and feels fast: messages cached locally, resizable and split panes, dark mode, keyboard-first
  • Private by design: OMEMO encryption is our own permissively licensed implementation, validated against the reference stack
  • Self-host anywhere: static files behind any web server, or the included Docker image

Install

Requires Node 22+ and pnpm 11+.

pnpm install
pnpm dev

Build from source

pnpm build

Static output lands in dist/, serve it with any web server.

Docker

The production image is multi-stage, rootless, digest-pinned, and published to ghcr.io/quad4-software/badinage with keyless cosign signatures.

docker run -p 8080:8080 ghcr.io/quad4-software/badinage:latest

Or build locally:

docker compose -f docker/compose.yaml up --build

The dev stack under docker/dev/ adds a local Prosody server:

docker compose -f docker/dev/compose.yaml up

Verify

pnpm check     # types + svelte diagnostics
pnpm lint      # eslint
pnpm test      # unit tests
pnpm test:e2e  # playwright, needs browsers installed
pnpm test:omemo # OMEMO library tests incl. interop vectors

License

0BSD, see LICENSE.

About

Modern Web XMPP Client

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages