2014-05-06 21:19:35 +02:00
<!DOCTYPE html>
< html lang = "en" >
2013-03-28 17:52:07 +01:00
< head >
2014-05-06 15:25:31 +02:00
< title > Converse.js< / title >
2014-05-06 21:19:35 +02:00
< meta charset = "utf-8" >
2013-11-16 11:02:45 +01:00
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
2014-05-07 22:36:45 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2014-05-06 15:25:31 +02:00
< meta name = "description" content = "Converse.js: A free chat client for your website" / >
2014-05-07 22:36:45 +02:00
< meta name = "author" content = "JC Brand" / >
2014-05-06 15:25:31 +02:00
< meta name = "keywords" content = "xmpp chat webchat converse.js" / >
2014-09-21 19:05:19 +02:00
< link rel = "shortcut icon" type = "image/ico" href = "css/images/favicon.ico" / >
2014-07-19 23:54:52 +02:00
< link type = "text/css" rel = "stylesheet" media = "screen" href = "components/bootstrap/dist/css/bootstrap.min.css" / >
2014-07-20 00:20:28 +02:00
< link type = "text/css" rel = "stylesheet" media = "screen" href = "components/fontawesome/css/font-awesome.min.css" / >
2014-05-11 20:09:16 +02:00
< link type = "text/css" rel = "stylesheet" media = "screen" href = "css/theme.css" / >
2014-09-21 19:05:19 +02:00
< link type = "text/css" rel = "stylesheet" media = "screen" href = "css/converse.min.css" / >
2014-10-28 18:09:58 +01:00
<!-- Only for development: <script data - main="main" src="components/requirejs/require.js"></script> -->
<![if gte IE 9]>
< script src = "builds/converse.website.min.js" > < / script >
<![endif]>
<!-- [if lt IE 9]>
< script src = "builds/converse.website-no-otr.min.js" > < / script >
<![endif]-->
2013-03-28 17:52:07 +01:00
< / head >
2014-05-06 21:19:35 +02:00
< body id = "page-top" data-spy = "scroll" data-target = ".navbar-custom" >
< nav class = "navbar navbar-custom navbar-fixed-top" role = "navigation" >
< div class = "container" >
< div class = "navbar-header page-scroll" >
< button type = "button" class = "navbar-toggle" data-toggle = "collapse" data-target = ".navbar-main-collapse" >
< i class = "fa fa-bars" > < / i >
< / button >
< a class = "navbar-brand" href = "#page-top" >
< i class = "fa fa-play-circle" > < / i > < span class = "light" > Home< / span >
< / a >
< / div >
<!-- Collect the nav links, forms, and other content for toggling -->
< div class = "collapse navbar-collapse navbar-right navbar-main-collapse" >
< ul class = "nav navbar-nav" >
<!-- Hidden li included to remove active class from about link when scrolled up past about section -->
< li class = "hidden" >
< a href = "#page-top" > < / a >
< / li >
< li class = "page-scroll" >
< a href = "#about" > About< / a >
< / li >
< li class = "page-scroll" >
< a href = "#features" > Features< / a >
< / li >
2014-08-05 18:47:52 +02:00
<!--
2014-05-06 21:19:35 +02:00
< li class = "page-scroll" >
< a href = "#donate" > Donate< / a >
< / li >
2014-08-05 18:47:52 +02:00
-->
2014-05-06 21:19:35 +02:00
< li class = "page-scroll" >
< a href = "#contact" > Contact< / a >
< / li >
< li class = "page-scroll" >
< a href = "https://github.com/jcbrand/converse.js/releases" class = "button" target = "_blank" > Download< / a >
< / li >
< li class = "page-scroll" >
< a href = "/docs/html/index.html" target = "_blank" > Documentation< / a >
< / li >
< / ul >
< / div >
<!-- /.navbar - collapse -->
< / div >
<!-- /.container -->
< / nav >
< section class = "intro" >
< div class = "intro-body" >
< div class = "container" >
< div class = "row" >
< div class = "col-md-8 col-md-offset-2" >
2014-09-21 18:42:18 +02:00
< h1 class = "brand-heading" > < i class = "icon-conversejs" > < / i > Converse.js< / h1 >
2014-08-06 10:40:33 +02:00
< p class = "intro-text" > A free and open-source XMPP chat client for your website< / p >
2014-05-06 21:19:35 +02:00
< div class = "page-scroll" >
< a href = "#about" class = "btn btn-default btn-lg" > Learn More< / a >
2014-05-06 15:25:31 +02:00
< / div >
< / div >
< / div >
2014-05-06 21:19:35 +02:00
< div class = "row" >
< div class = "col-md-8 col-md-offset-2 banner-social-buttons" >
< ul class = "list-inline" >
< li > < a href = "https://twitter.com/jcopkode" class = "btn btn-circle btn-lg" title = "Twitter" target = "_blank" > < i class = "fa fa-twitter" > < / i > < / a >
< / li >
< li > < a href = "https://github.com/jcbrand/converse.js" class = "btn btn-circle btn-lg" title = "GitHub" target = "_blank" > < i class = "fa fa-github" > < / i > < / a >
< / li >
< / ul >
< / div >
< / div >
2014-05-06 15:25:31 +02:00
< / div >
2014-05-06 21:19:35 +02:00
< / div >
2014-09-21 19:05:19 +02:00
< / section >
2013-03-28 16:42:49 +01:00
2014-05-06 21:19:35 +02:00
< section id = "about" class = "container content-section text-center" >
< div class = "row" >
< div class = "col-lg-8 col-lg-offset-2" >
2014-08-05 18:47:52 +02:00
< h2 > < strong > Converse.js< / strong > is a free and open source chat client that runs in your browser. It can be integrated into any website.< / h3 >
2014-05-06 21:19:35 +02:00
< p > Similar to < a href = "https://www.facebook.com/sitetour/chat.php" target = "_blank" > Facebook chat< / a > but it also supports multi-user chatrooms.< / p >
< p >
< strong > Converse.js< / strong > can connect to any accessible < a href = "http://xmpp.org" target = "_blank" > XMPP/Jabber< / a > server,
either from a public provider such as < a href = "http://jabber.org" > jabber.org< / a > , or one you have set up yourself.
< / p >
< p >
It's possible to enable single-site-login, whereby users already authenticated in your website will also automatically be logged in on the chat server.
Please refer to the < strong > < a target = "_blank" href = "/docs/html/index.html" > documentation< / a > < / strong > for more info.
< / p >
< / div >
< / div >
< / section >
2014-05-06 22:30:37 +02:00
< section class = "features-section content-section" id = "features" >
2014-05-06 21:19:35 +02:00
< div class = "container" >
< div class = "row" >
< div class = "col-lg-4" >
< section >
2014-05-07 08:04:32 +02:00
< span class = "feature-icon page-scroll" > < a class = "fa fa-globe" href = "#features" title = "Integration" > < / a > < / span >
2014-05-06 21:19:35 +02:00
< header >
< h2 > Integration< / h2 >
< / header >
< ul class = "integration" >
< li > < a href = "http://github.com/collective/collective.xmpp.chat" target = "_blank" > Plone< / a > < / li >
< li > < a href = "https://pypi.python.org/pypi/django-conversejs" target = "_blank" > Django< / a > < / li >
< li > < a href = "https://github.com/priyadi/roundcube-converse.js-xmpp-plugin" target = "_blank" > Roundcube< / a > < / li >
< li > < a href = "http://wordpress.org/plugins/conversejs" target = "_blank" > Wordpress< / a > < / li >
2014-08-25 18:08:35 +02:00
< li > < a href = "https://github.com/jcbrand/patterns.converse" target = "_blank" > Patternslib< / a > < / li >
< li > < a href = "https://github.com/keensoft/alfresco-js-chat-share" target = "_blank" > Alfresco< / a > < / li >
2014-05-06 21:19:35 +02:00
< / ul >
< / section >
< / div >
< div class = "col-lg-4" >
< section >
2014-05-07 08:04:32 +02:00
< span class = "feature-icon page-scroll" > < a class = "fa fa-check-square-o" href = "#features" title = "Features" > < / a > < / span >
2014-05-06 21:19:35 +02:00
< / section >
< header >
< h2 > Features< / h2 >
< / header >
< ul class = "features" >
< li > Single-user chat< / li >
< li > Multi-user chatrooms (< a href = "http://xmpp.org/extensions/xep-0045.html" target = "_blank" > XEP 45< / a > )< / li >
< li > vCard support (< a href = "http://xmpp.org/extensions/xep-0054.html" target = "_blank" > XEP 54< / a > )< / li >
< li > Service discovery (< a href = "http://xmpp.org/extensions/xep-0030.html" target = "_blank" > XEP 30< / a > )< / li >
2014-08-05 18:47:52 +02:00
< li > Contact rosters and groups< / li >
2014-05-06 21:19:35 +02:00
< li > Contact subscriptions< / li >
< li > Accept or decline contact requests< / li >
< li > Roster item exchange (< a href = "http://xmpp.org/extensions/tmp/xep-0144-1.1.html" target = "_blank" > XEP 144< / a > )< / li >
< li > Chat statuses (online, busy, away, offline)< / li >
< li > Custom status messages< / li >
< li > Typing notifications< / li >
< li > Third person messages (/me )< / li >
2014-08-05 18:47:52 +02:00
< li > Translated into 14 languages< / li >
2014-05-06 21:19:35 +02:00
< li > Off-the-record encryption
< / ul >
2014-05-06 15:25:31 +02:00
< / div >
2014-05-06 21:19:35 +02:00
< div class = "col-lg-4" >
< section >
2014-05-07 08:04:32 +02:00
< span class = "feature-icon page-scroll" > < a class = "fa fa-video-camera" href = "#features" title = "Screencasts" > < / a > < / span >
2014-05-06 21:19:35 +02:00
< header >
< h2 > Screencasts< / h2 >
< / header >
< ul class = "screencasts" >
< li >
< a href = "http://opkode.com/media/blog/instant-messaging-for-plone-with-javascript-and-xmpp" target = "_blank" >
In a Plone site
< / a >
< / li >
< li >
< a href = "http://opkode.com/media/blog/2013/04/02/converse.js-xmpp-instant-messaging-with-javascript" target = "_blank" >
Chatting with buddies from Jabber.org and Gmail
< / a >
< / li >
< li >
< a href = "https://opkode.com/media/blog/2013/11/11/conversejs-otr-support" target = "_blank" >
Off-the-record encryption
< / a >
< / li >
< / ul >
< / section >
< / div >
< / div >
< / div >
< / section >
2014-05-06 15:25:31 +02:00
2014-08-05 18:47:52 +02:00
<!--
2014-05-06 21:19:35 +02:00
< section id = "donate" class = "donate-section content-section text-center" >
< div class = "container" >
< div class = "row" >
< div class = "col-lg-8 col-lg-offset-2" >
2014-05-06 15:25:31 +02:00
< h3 > Donate< / h3 >
2014-05-07 08:04:32 +02:00
< p class = "bitcoin-header" > Most of the work done on < strong > converse.js< / strong > is unpaid and a labor of love.< / p >
< p > A heartfelt thanks to those have donated already.< / p >
2014-05-06 21:19:35 +02:00
< p class = "bitcoin-header" > < strong > Bitcoin< / strong > < / p >
< img src = "css/images/bitcoin_qr_code.png" / >
< p > 16FsPqE9DhFTryxrUenpsGX4LJ1TPu8GqS< / p >
2014-05-06 15:25:31 +02:00
< / div >
< / div >
2014-05-06 21:19:35 +02:00
< / div >
< / section >
2014-08-05 18:47:52 +02:00
-->
2014-05-06 21:19:35 +02:00
2014-05-06 22:30:37 +02:00
< section class = "outro content-section" id = "contact" >
2014-05-06 21:19:35 +02:00
< div class = "intro-body" >
< div class = "container" >
< div class = "row" >
< div class = "col-lg-8 col-lg-offset-2" >
< h2 > Contact< / h2 >
2014-10-10 10:24:31 +02:00
< ul class = "contact" >
< li > Follow me on < a href = "http://twitter.com/jcopkode" target = "_blank" > Twitter< / a > .< / li >
< li > Chat with me via XMPP: < a href = "xmpp:jc@opkode.com" class = "xmpp JSnocheck" title = "XMPP/Jabber" > jc@opkode.com< / a > .< / li >
< li > For technical support, please write to the mailing list: < a href = "mailto:conversejs@librelist.com" > conversejs@librelist.com< / a > .< / li >
< li > Also check out the < a href = "http://librelist.com/browser/conversejs" target = "_blank" > mailing list archives< / a > .< / li >
< li > Please file < a target = "_blank" href = "https://github.com/jcbrand/converse.js/issues" > bugs on Github< / a > .< / li >
< li > I'm available for features and < a href = "http://opkode.com/contact" target = "_blank" > consulting< / a > .< / li >
2014-10-10 10:53:16 +02:00
< / ul >
2014-05-06 21:19:35 +02:00
< / div >
< / div >
2014-05-06 15:25:31 +02:00
< / div >
2014-05-06 21:19:35 +02:00
< / div >
< / section >
2014-05-06 15:25:31 +02:00
< / body >
2013-04-01 23:44:49 +02:00
2013-04-20 11:32:54 +02:00
< script type = "text/javascript" >
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
< / script >
< script type = "text/javascript" > try { var pageTracker = _gat . _getTracker ( "UA-2128260-8" ) ; pageTracker . _trackPageview ( ) ; } catch ( err ) { } < / script >
2014-07-06 15:56:44 +02:00
2013-07-24 23:58:04 +02:00
< script >
2014-09-21 19:05:19 +02:00
require(['converse'], function (converse) {
2014-09-26 11:30:56 +02:00
(function () {
/* XXX: This function initializes jquery.easing for the https://conversejs.org
* website. This code is only useful in the context of the converse.js
* website and converse.js itself is NOT dependent on it.
*/
2014-10-06 20:44:55 +02:00
var $ = converse.jQuery;
2014-09-26 11:30:56 +02:00
$(window).scroll(function() {
if ($(".navbar").offset().top > 50) {
$(".navbar-fixed-top").addClass("top-nav-collapse");
} else {
$(".navbar-fixed-top").removeClass("top-nav-collapse");
}
});
//jQuery for page scrolling feature - requires jQuery Easing plugin
$('.page-scroll a').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top
}, 700, 'easeInOutExpo');
event.preventDefault();
});
})();
2014-09-21 19:05:19 +02:00
converse.initialize({
2014-10-28 18:09:58 +01:00
allow_otr: true,
auto_list_rooms: false,
auto_subscribe: false,
bosh_service_url: 'https://bind.conversejs.org', // Please use this connection manager only for testing purposes
hide_muc_server: false,
i18n: locales['en'], // Refer to ./locale/locales.js to see which locales are supported
2014-09-21 19:05:19 +02:00
keepalive: true,
play_sounds: true,
2014-10-28 18:09:58 +01:00
roster_groups: true,
2014-09-21 19:05:19 +02:00
show_controlbox_by_default: true,
2014-10-28 18:09:58 +01:00
xhr_user_search: false
2013-07-24 23:58:04 +02:00
});
});
< / script >
2013-03-28 16:42:49 +01:00
< / html >