2020-04-29 09:51:56 +02:00
< h2 align = "center" >
< a href = "https://conversejs.org" target = "_blank" rel = "noopener" >
2020-06-08 17:24:08 +02:00
< img alt = "Converse.js" src = "https://github.com/conversejs/converse.js/blob/master/logo/readme.png" width = "480" >
2020-04-29 09:51:56 +02:00
< / a >
< / h2 >
2016-05-20 11:46:53 +02:00
2021-08-28 22:39:46 +02:00
[![XMPP Chat ](https://conference.conversejs.org/muc_badge/discuss@conference.conversejs.org )](https://inverse.chat/#converse/room?jid=discuss@conference.conversejs.org)
2022-02-24 06:19:52 +01:00
[![CI Tests ](https://github.com/conversejs/converse.js/actions/workflows/karma-tests.yml/badge.svg )](https://github.com/conversejs/converse.js/actions/workflows/karma-tests.yml)
2017-03-15 12:04:10 +01:00
[![Bountysource bounties ](https://img.shields.io/bountysource/team/converse.js/activity.svg?maxAge=2592000 )](https://www.bountysource.com/teams/converse.js/issues?tracker_ids=194169)
[![Translation status ](https://hosted.weblate.org/widgets/conversejs/-/svg-badge.svg )](https://hosted.weblate.org/engage/conversejs/?utm_source=widget)
2016-05-20 11:46:53 +02:00
2018-09-23 21:26:03 +02:00
[Converse ](https://conversejs.org ) is a web based [XMPP/Jabber ](https://xmpp.org ) chat client.
2016-05-20 11:46:53 +02:00
2018-09-23 21:26:03 +02:00
You can either use it as a webchat app, or you can integrate it into your own website.
2018-09-24 09:52:09 +02:00
It's 100% client-side JavaScript, HTML and CSS and the only backend required
2018-09-23 21:26:03 +02:00
is a modern XMPP server.
2016-05-20 11:46:53 +02:00
2017-12-06 11:40:04 +01:00
Please support this project via [Patreon ](https://www.patreon.com/jcbrand ) or [Liberapay ](https://liberapay.com/jcbrand )
2017-12-05 14:11:48 +01:00
2016-06-21 09:07:22 +02:00
## Demo
2016-05-20 11:46:53 +02:00
2018-09-23 21:26:03 +02:00
Converse is hosted and can be used at [https://conversejs.org ](https://conversejs.org ).
2017-06-14 15:42:25 +02:00
A demo showing anonymous login is available at [https://conversejs.org/demo/anonymous.html ](https://conversejs.org/demo/anonymous.html )
and a demo which shows how you can embed a single chat room into a page is
avialable at [https://conversejs.org/demo/embedded.html ](https://conversejs.org/demo/embedded.html ).
2019-12-04 15:17:13 +01:00
## Documentation
The developer/integrator documentation can be found at [https://conversejs.org/docs/html ](https://conversejs.org/docs/html ).
You'll probably want to begin with the [quickstart guide ](https://conversejs.org/docs/html/quickstart.html ),
which shows you how to use the CDN (content delivery network) to quickly get a demo up and running.
## Converse modes
### Overlay
2017-06-14 15:42:25 +02:00
2019-12-04 15:17:13 +01:00
In overlay mode, Converse appears overlayed chats on top of the website.
2017-07-05 13:02:36 +02:00
2021-08-29 14:20:31 +02:00
![Screenshot of Converse in overlay mode ](https://conversejs.org/screenshots/Converse-overlayed.png )
2019-12-04 15:17:13 +01:00
### Fullpage
In fullpage mode, Converse behaves like a single-page app that covers the whole browser viewport.
2017-06-14 15:42:25 +02:00
2022-04-02 16:28:01 +02:00
![Screenshot of Converse 9.0.0 in fullpage mode ](https://conversejs.org/screenshots/Converse-fullscreen.png )
### Dark mode
![Screenshot of Converse 9.1.0 with a dark theme ](https://conversejs.org/screenshots/Converse-Dracula-Theme.png )
2016-06-21 09:07:22 +02:00
2019-12-04 15:17:13 +01:00
### Embedded
2016-06-21 09:07:22 +02:00
2019-12-04 15:17:13 +01:00
In embedded mode, Converse can be embedded into an element in the DOM.
2016-06-21 09:07:22 +02:00
2021-08-29 14:20:31 +02:00
![Screenshot of Converse in embedded mode ](https://conversejs.org/screenshots/Converse-embedded.png )
2016-06-21 09:07:22 +02:00
## Features
2018-09-08 02:16:04 +02:00
- Available as overlayed chat boxes or as a fullscreen application. See [inverse.chat ](https://inverse.chat ) for the fullscreen version.
2019-09-24 15:33:41 +02:00
- Custom status messages
- Desktop notifications
2018-03-17 00:40:03 +01:00
- A [plugin architecture ](https://conversejs.org/docs/html/plugin_development.html ) based on [pluggable.js ](https://conversejs.github.io/pluggable.js/ )
2016-05-20 11:46:53 +02:00
- Chat statuses (online, busy, away, offline)
2019-09-24 15:33:41 +02:00
- Anonymous logins, see the [anonymous login demo ](https://conversejs.org/demo/anonymous.html )
2021-03-05 15:00:01 +01:00
- URL Previews (requires server support, for example [mod_ogp ](https://modules.prosody.im/mod_ogp.html )
2019-09-24 15:33:41 +02:00
- Translated into over 30 languages
2016-05-20 11:46:53 +02:00
2020-04-24 15:13:40 +02:00
### Supported XMPP Extensions
- [RFC-7395 ](https://tools.ietf.org/html/rfc7395 ) XMPP Subprotocol support for WebSocket
- [XEP-0004 ](https://xmpp.org/extensions/xep-0004.html ) Data Forms
- [XEP-0030 ](https://xmpp.org/extensions/xep-0030.html ) Service discovery
- [XEP-0045 ](https://xmpp.org/extensions/xep-0045.html ) Multi-user chat rooms
- [XEP-0048 ](https://xmpp.org/extensions/xep-0048.html ) Bookmarks
- [XEP-0050 ](https://xmpp.org/extensions/xep-0050.html ) Ad-Hoc Commands
- [XEP-0054 ](https://xmpp.org/extensions/xep-0054.html ) VCard-temp
- [XEP-0059 ](https://xmpp.org/extensions/xep-0059.html ) Result Set Management
- [XEP-0060 ](https://xmpp.org/extensions/xep-0060.html ) Publish-Subscribe (limited support)
- [XEP-0066 ](https://xmpp.org/extensions/xep-0066.html ) Out of Band Data
- [XEP-0077 ](https://xmpp.org/extensions/xep-0077.html ) In-band registration
- [XEP-0085 ](https://xmpp.org/extensions/xep-0085.html ) Chat State Notifications
2021-03-14 00:54:19 +01:00
- [XEP-0115 ](https://xmpp.org/extensions/xep-0115.html ) Entity Capabilities
2020-04-24 15:13:40 +02:00
- [XEP-0124 ](https://xmpp.org/extensions/xep-0124.html ) Bidirectional-streams Over Synchronous HTTP (BOSH)
- [XEP-0144 ](https://xmpp.org/extensions/xep-0144.html ) Roster item exchange
2020-09-02 12:37:02 +02:00
- [XEP-0156 ](https://xmpp.org/extensions/xep-0156.html ) Discovering Alternative XMPP Connection Methods
2020-04-24 15:13:40 +02:00
- [XEP-0163 ](https://xmpp.org/extensions/xep-0163.html ) Personal Eventing Protocol (limited support)
- [XEP-0184 ](https://xmpp.org/extensions/xep-0184.html ) Message Receipt
- [XEP-0198 ](https://xmpp.org/extensions/xep-0198.html ) Stream Management
- [XEP-0199 ](https://xmpp.org/extensions/xep-0199.html ) XMPP Ping
- [XEP-0203 ](https://xmpp.org/extensions/xep-0203.html ) Delayed Delivery
- [XEP-0206 ](https://xmpp.org/extensions/xep-0206.html ) XMPP Over BOSH
- [XEP-0245 ](https://xmpp.org/extensions/xep-0245.html ) The /me Command
- [XEP-0249 ](https://xmpp.org/extensions/xep-0249.html ) Direct MUC Invitations
- [XEP-0280 ](https://xmpp.org/extensions/xep-0280.html ) Message Carbons
- [XEP-0297 ](https://xmpp.org/extensions/xep-0297.html ) Stanza Forwarding (limited support)
- [XEP-0308 ](https://xmpp.org/extensions/xep-0308.html ) Last Message Correction
- [XEP-0313 ](https://xmpp.org/extensions/xep-0313.html ) Message Archive Management
2021-08-13 10:18:24 +02:00
- [XEP-0316 ](https://xmpp.org/extensions/xep-0316.html ) MUC Eventing protocol (limited support)
2020-04-24 15:13:40 +02:00
- [XEP-0317 ](https://xmpp.org/extensions/xep-0317.html ) Hats (limited support)
- [XEP-0333 ](https://xmpp.org/extensions/xep-0333.html ) Chat Markers (limited support)
- [XEP-0352 ](https://xmpp.org/extensions/xep-0352.html ) Client State Indication
- [XEP-0357 ](https://xmpp.org/extensions/xep-0357.html ) Push Notifications
- [XEP-0359 ](https://xmpp.org/extensions/xep-0359.html ) Unique and Stable Stanza IDs
- [XEP-0363 ](https://xmpp.org/extensions/xep-0363.html ) HTTP File Upload
- [XEP-0372 ](https://xmpp.org/extensions/xep-0372.html ) References
- [XEP-0382 ](https://xmpp.org/extensions/xep-0382.html ) Spoiler messages
- [XEP-0384 ](https://xmpp.org/extensions/xep-0384.html ) OMEMO Encryption
2020-10-16 09:02:12 +02:00
- [XEP-0393 ](https://xmpp.org/extensions/xep-0393.html ) Message styling
2020-04-24 15:13:40 +02:00
- [XEP-0422 ](https://xmpp.org/extensions/xep-0422.html ) Message Fastening (limited support)
- [XEP-0424 ](https://xmpp.org/extensions/xep-0424.html ) Message Retractions
- [XEP-0425 ](https://xmpp.org/extensions/xep-0425.html ) Message Moderation
2020-12-08 14:51:04 +01:00
- [XEP-0437 ](https://xmpp.org/extensions/xep-0437.html ) Room Activity Indicators
2021-08-13 10:18:24 +02:00
- [XEP-0453 ](https://xmpp.org/extensions/xep-0453.html ) DOAP Usage in XMPP
2021-07-01 12:57:28 +02:00
- [XEP-0454 ](https://xmpp.org/extensions/xep-0454.html ) OMEMO Media sharing
2020-04-24 15:13:40 +02:00
2019-11-30 00:09:06 +01:00
## Integration into other servers and frameworks
2016-05-20 11:46:53 +02:00
2022-04-28 16:08:08 +02:00
### XMPP servers
- ** [Openfire ](https://www.igniterealtime.org/projects/openfire/index.jsp )**: [inverse.jar ](https://www.igniterealtime.org/projects/openfire/plugins.jsp )
- ** [Prosody ](https://prosody.im/ )**: [mod_conversejs ](https://modules.prosody.im/mod_conversejs.html )
- ** [Ejabberd ](https://ejabberd.im/ )**: [mod-conversejs ](https://docs.ejabberd.im/admin/configuration/modules/#mod-conversejs )
### Other
2020-09-18 11:19:44 +02:00
- ** [Alfresco ](https://www.alfresco.com )**: [alfresco-js-chat-share ](https://github.com/keensoft/alfresco-js-chat-share )
2018-07-21 08:20:40 +02:00
- ** [Django ](https://www.djangoproject.com )**: [django-conversejs ](https://pypi.python.org/pypi/django-conversejs ) or [django-xmpp ](https://github.com/fpytloun/django-xmpp )
2020-09-18 11:19:44 +02:00
- ** [Elgg ](https://elgg.org )**: [plugin ](https://elgg.org/plugins/2997196 )
- ** [Friendica ](https://friendi.ca )**: [converse ](https://github.com/friendica/friendica-addons/tree/master/xmpp/converse )
2018-09-08 02:16:04 +02:00
- ** [Patternslib ](http://patternslib.com )**: [patterns.converse ](https://github.com/jcbrand/patterns.converse )
- ** [Plone ](https://plone.com )**: [collective.converse ](https://github.com/collective/collective.converse )
2020-09-18 11:19:44 +02:00
- ** [Pàdé ](https://www.igniterealtime.org/projects/pade/index.jsp )**: [Pàdé ](https://www.igniterealtime.org/projects/pade/index.jsp )
- ** [Roundcube ](https://roundcube.net )**: [roundcube-converse.js-xmpp-plugin ](https://github.com/devurandom/roundcube-converse.js-xmpp-plugin )
- ** [Ruby on Rails ](https://rubyonrails.org )**: [conversejs-rails ](https://github.com/mikemarsian/conversejs-rails )
2018-07-21 08:20:40 +02:00
- ** [Tiki Wiki CMS Groupware ](https://tiki.org )**: [built-in optional feature ](https://doc.tiki.org/XMPP )
2020-09-18 11:19:44 +02:00
- ** [Wordpress ](https://wordpress.org )**: [ConverseJS ](https://wordpress.org/plugins/conversejs/ )
2016-05-20 11:46:53 +02:00
2016-06-21 09:07:22 +02:00
## Tests
2016-05-20 11:46:53 +02:00
2016-10-07 10:35:57 +02:00
We use behavior-driven tests written with [jasmine.js ](https://jasmine.github.io/ ).
2016-05-20 11:46:53 +02:00
2020-06-08 17:24:08 +02:00
Run `make check` to execute all the tests.
2016-05-20 11:46:53 +02:00
2016-06-21 09:07:22 +02:00
## Licence
2016-05-20 11:46:53 +02:00
`Converse.js` is released under the [Mozilla Public License (MPL) ](https://www.mozilla.org/MPL/2.0/index.txt ).
2018-09-03 14:06:18 +02:00
## Attribution
Emoji images are courtesy of [Twemoji ](https://emojitwo.github.io/ ).
2016-06-21 09:07:22 +02:00
## Support
2016-05-20 11:46:53 +02:00
2018-03-17 00:40:03 +01:00
Issues can be logged on the [Github issue tracker ](https://github.com/conversejs/converse.js/issues ).
2018-01-29 16:06:07 +01:00
## Donations
A heartfelt thanks for everyone who has supported this project over the years.
Many people have contributed testing, bugfixes, features and corrections.
2019-02-05 21:50:30 +01:00
We accept donations via [Patreon ](https://www.patreon.com/jcbrand ) and [Liberapay ](https://liberapay.com/jcbrand ).
2021-03-05 15:23:38 +01:00
## Sponsors
2021-03-08 09:35:44 +01:00
< p >
2023-06-05 16:53:49 +02:00
< a href = "https://bairesdev.com/sponsoring-open-source-projects/?utm_source=conversejs" target = "_blank" rel = "noopener" >
< img alt = "BairesDev" src = "https://raw.githubusercontent.com/conversejs/media/main/logos/bairesdev-primary.png" width = "200" >
2021-03-05 18:51:45 +01:00
< / a >
2021-03-08 09:35:44 +01:00
< / p >
< p >
2023-06-05 16:53:49 +02:00
< a href = "https://blokt.com?utm_source=conversejs" target = "_blank" rel = "noopener" >
< img alt = "Blokt Crypto & Privacy" src = "https://raw.githubusercontent.com/conversejs/converse.js/541613d1fea8aef364af00180f60e959162e5e4b/logo/blokt.png" width = "200" >
2021-03-05 18:51:45 +01:00
< / a >
2021-03-08 09:35:44 +01:00
< / p >
2022-02-14 14:57:58 +01:00
< p >
< a href = "https://primesound.org/?utm_source=conversejs" target = "_blank" rel = "noopener" >
< img alt = "Prime Sound" src = "https://raw.githubusercontent.com/conversejs/media/main/logos/primesound.png" width = "200" >
< / a >
< / p >
2023-06-05 16:53:49 +02:00
< p >
< a href = "https://www.keycdn.com?utm_source=conversejs" target = "_blank" rel = "noopener" >
< img alt = "KeyCDN" src = "https://raw.githubusercontent.com/conversejs/converse.js/541613d1fea8aef364af00180f60e959162e5e4b/logo/keycdn.png" width = "200" >
< / a >
< / p >