XMPP-FTW Demo/Example System

XMPP-FTW (For The Web/Win) Demo/Examples

This repository runs a server which loads (xmpp-ftw)[https://github.com/xmpp-ftw/xmpp-ftw] and sets it up for experimentation/development.

The user is given acccess to both a demo system and the manual for xmpp-ftw.

For more information on xmpp-ftw please see https://xmpp-ftw.jit.su.

Try it out...

The code is now up and running at https://xmpp-ftw.jit.su so you can try it out. Be aware that this setup is only for trying xmpp-ftw out and may be slow as we need to go client ↔ nodejitsu (east coast US) ↔ your XMPP server and back each time.

  • https://xmpp-ftw.jit.su/manual -- XMPP-FTW manual
  • https://xmpp-ftw.jit.su/demo -- Awesome demo tool, generated from manual

Build status


XMPP-FTW is built up of smaller components (although is currently in tne process of bieng split).

The main module XMPP-FTW has code for login, roster, and presence as well as a few utilities that are used through most of XMPP.


  • DISCO (XEP-0030):

  • Multi User Chat / MUC (XEP-0045)

  • Jabber Search (XEP-0055)

  • Publish-Subscribe / PubSub (XEP-0060)

  • In-Band Registration (XEP-0077)

  • Superfeedr

  • buddycloud

  • Item parser - builder and parser for "common" pubsub payloads

Run the demos locally

  • npm i -g xmpp-ftw-demo
  • xmpp-ftw-demo
  • Go to http://localhost:3000/

To work on the code in 'development mode' (where process restarts as files change) run npm run-script develop.

If installing globally then the xmpp-ftw-demo needs to be able to write to the public/scripts directory; this is so Primus can generate and save its client side javascript.

xmpp-ftw-demo uses winston for logging. xmpp-ftw itself will accept any logging object that implements the same interface as winston or will generate itself a null logger object.

By default the configuration for winston sits in config/logger.config.default.json. Output is sent to the console.

If you wish to use your own configuration for xmpp-ftw-demo create the file config/logger.json and this will be used instead.

For instructions on using the config file see winston-config.


License is Apache 2.0, please let me know if this doesn't suit.