<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrator</id>
	<title>Kosmos Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kosmos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrator"/>
	<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/Special:Contributions/Administrator"/>
	<updated>2026-04-29T06:07:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Greg&amp;diff=640</id>
		<title>User:Greg</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Greg&amp;diff=640"/>
		<updated>2020-01-27T11:59:24Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page User:Gregkare to User:Greg: Automatically moved page while renaming the user &amp;quot;Gregkare&amp;quot; to &amp;quot;Greg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''Real name:''' Greg Karékinian&lt;br /&gt;
* '''Freenode nick:''' gregkare&lt;br /&gt;
* '''Personal website:''' https://karekinian.com&lt;br /&gt;
* '''GitHub:''' https://github.com/gregkare&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=User:Gregkare&amp;diff=641</id>
		<title>User:Gregkare</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=User:Gregkare&amp;diff=641"/>
		<updated>2020-01-27T11:59:24Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page User:Gregkare to User:Greg: Automatically moved page while renaming the user &amp;quot;Gregkare&amp;quot; to &amp;quot;Greg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:Greg]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=371</id>
		<title>Feature:Incoming notifications / (web)hooks</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=371"/>
		<updated>2016-04-22T12:26:12Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Fix capitalisation of remoteStorage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Sockethub Butlers ===&lt;br /&gt;
&lt;br /&gt;
* Incoming Webhook (usually HTTP POST) to channel/storage&lt;br /&gt;
** Data formats and message rendering for known hooks/services&lt;br /&gt;
** Vanilla hook with defined message format and plain/common rendering for custom services&lt;br /&gt;
* RSS feed to channel/storage (detect known types, e.g. MediaWiki recent-changes feed)&lt;br /&gt;
* Bitcoin wallet transactions to channel/storage&lt;br /&gt;
* Email/IMAP to channel/storage. Would check for emails and parse one or all of sender/recipient/subject/text in order to trigger extracting information and/or post/store to channel/storage.&lt;br /&gt;
* Webpage change tracking to channel/storage (check regularly if content on a page changed)&lt;br /&gt;
* remoteStorage resource change to channel/storage&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* [GitHub] Apparently it's now possible to define a single hook for all activities within an organization: https://developer.github.com/changes/2014-12-03-preview-the-new-organization-webhooks-api/ — that means we might be able to set that once per API/OAuth call and have a single catcher for all GitHub-related things (no more forgetting to configure channel notifications for new repos e.g.). Also, notifications for not just commits, but other activities as well.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=370</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=370"/>
		<updated>2016-04-22T12:23:14Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Kosmos comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC ([http://webrtc.org &amp;quot;Web Real-time Communication&amp;quot;]) is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC ([http://ortc.org &amp;quot;Object RTC&amp;quot;]) at some point, which is a lower-level standard that will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== HyperChannel Integration ===&lt;br /&gt;
&lt;br /&gt;
A video stream (or audio symbol for non-video) will be integrated into the Hyperchannel UI (maybe in an extra tab?) You can also &amp;quot;pop-out&amp;quot; this UI component, which makes working on multiple screens easier (and requesting full screen simpler).&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system (e.g. via [https://www.sipgate.io sipgate] or similar)&lt;br /&gt;
&lt;br /&gt;
==== Stand Alone Application ====&lt;br /&gt;
&lt;br /&gt;
The WebRTC stand-alone application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current Kosmos organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc) - This will be done via IRC or WebRTC's DataChannels.&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
It is implemented on top of the existing IRC channels (via SocketHub) using special message formats, which will get parsed by the HC Client. For backwards compatibility (later), it could include a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
== Before feature launch ==&lt;br /&gt;
&lt;br /&gt;
* In order to be able to quickly launch meetings before having our own integration, we could create scripts for hal8000 to start new meetings at e.g. g2m, meet.jit.si, talky, palava.tv.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* http://socket.io/blog/socket.io-p2p&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=369</id>
		<title>Feature:Migration from existing systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=369"/>
		<updated>2016-04-22T12:11:57Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
In order to make migration from other systems/services easy and enjoyable, both for just trying out the software as well as transferring all data for a complete org migration to Kosmos, there will be a subsystem for importing data and configuration.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Import user names/accounts&lt;br /&gt;
* Import channels, including their chat history&lt;br /&gt;
* Import shared files&lt;br /&gt;
&lt;br /&gt;
== Migration sources ==&lt;br /&gt;
&lt;br /&gt;
* Slack&lt;br /&gt;
* Flowdock&lt;br /&gt;
* Campfire&lt;br /&gt;
* HipChat&lt;br /&gt;
* IRCCloud&lt;br /&gt;
* Grove.io&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Grove.io has JSON files for single days or complete history. Resource names are guessable/common.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=368</id>
		<title>Feature:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=368"/>
		<updated>2016-04-22T12:07:42Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Another test edit for the hook&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Kosmos's chat functionality is initially based on the IRC protocol (used via Sockethub), but enhances it with input/output app components, which enable rich-snippet rendering and other features. Let's call these components satellites, for lack of a better codename atm. (Feel free to brainstorm names on this wiki page. Would be great to have something where people say &amp;quot;dude, just write a [perfectname] for Kosmos&amp;quot;. Kind of like DuckDuckGo &amp;quot;spices&amp;quot; for example.)&lt;br /&gt;
&lt;br /&gt;
Chat is the main user interface for channels, which act as the scopes for other features, like e.g. [[Feature: File sharing| File sharing]], as well.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Satellites ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|Code Snippet&lt;br /&gt;
|When pasting a multi-line text, it offers to convert it into a rendered, potentially code-highlighted rich snippet&lt;br /&gt;
|-&lt;br /&gt;
|Map&lt;br /&gt;
|When pasting geo coordinates, or a maps URL (e.g. GMaps or OSM), it renders a small map with a pin and possibly popup on click, as well as a link to a big version of the map in a new window/tab/app&lt;br /&gt;
|-&lt;br /&gt;
|Incoming notification&lt;br /&gt;
|Every incoming notification (e.g. a Travis build) is given a notification type (hardcoded), which in turn is associated with a rich-snippet template and data.&lt;br /&gt;
|-&lt;br /&gt;
|Channel link&lt;br /&gt;
|When a #channelname is detected, it renders a link to that channel. Even better, if the user is using channels with the same name in multiple spaces, it should open a menu to select which one to open.&lt;br /&gt;
|-&lt;br /&gt;
|Time zones&lt;br /&gt;
|When other users are using different time zones, show their local time as well. Either next to the normal timestamp, or highlight the timestamp to indicate that it's not the other person's time zone and show their time on hover or similar.&lt;br /&gt;
|-&lt;br /&gt;
|Username mention&lt;br /&gt;
|When a person's own username is detected in another person's message, it is highlighted and a notification is triggered, if the app is not in the foreground (optionally with audio sound).&lt;br /&gt;
|-&lt;br /&gt;
|Word-list mention&lt;br /&gt;
|Same as username mentions, but not enabled by default (i.e. empty word list in the beginning). Users can configure their own word list per channel.&lt;br /&gt;
|-&lt;br /&gt;
|Image&lt;br /&gt;
|When an image URL is detected, it renders the image inline (either inline, if nothing else surrounds the url, or as a second line)&lt;br /&gt;
|-&lt;br /&gt;
|Tweet&lt;br /&gt;
|When a link to a tweet is detected, the tweet is fetched an rendered with a rich snippet in a new line&lt;br /&gt;
|-&lt;br /&gt;
|GitHub/Bitbucket&lt;br /&gt;
|When pasting a link to a GitHub repository, it renders the basic information about that repository (name, description, language, ...).&lt;br /&gt;
|-&lt;br /&gt;
|Website link&lt;br /&gt;
|When a generic URL is detected (and not handled by another satellite), it tries to fetch the title of the linked Web page or document and add that as a second line&lt;br /&gt;
|-&lt;br /&gt;
|Emoji&lt;br /&gt;
|When [http://www.emoji-cheat-sheet.com/ emoji syntax] is detected, it renders an emoji image. When starting to type emoji syntax, it shows an auto-complete menu, similar to GitHub comment form fields.&lt;br /&gt;
|-&lt;br /&gt;
|Voting&lt;br /&gt;
|&amp;quot;Everyone in favor of [x]?&amp;quot; triggers a yes/not poll. Responding with +1 or -1 (or using the vote input that then writes a +1 for you) counts up votes in a widget that stays in view until the poll is closed. If the majority hasn't responded in x amount of time, it sends them reminders to vote.&lt;br /&gt;
|-&lt;br /&gt;
|Correct/replace previous line&lt;br /&gt;
|When an s/word/word pattern is detected, it applies the replacement to the previous line of that user (only as rendering in the Web UI). A discreet highlighting is added to the word to indicate it was replaced, and when hovering (or similar), you can see the details of the replacement.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hint: all of this is backwards-compatible to plain IRC, meaning that if something is too long or for other reasons not possible to render nicely in a line of chat, it needs to be posted somewhere and linked to. The Web Client can fetch extra information from that resource, while the plain chat can use minimal messages that don't pollute the UI for plain-old-IRC-client users (let's call these programs POICs from now on. :))&lt;br /&gt;
&lt;br /&gt;
=== Offline notifications for mentions ===&lt;br /&gt;
&lt;br /&gt;
When you're not connected to 67P on any device, it will send notifications for username mentions in channels. Configurable methods:&lt;br /&gt;
&lt;br /&gt;
* Email — Sent by Sockethub. Could even use the actual person's email address and SMTP account for sending a direct email person-to-person with the message content.&lt;br /&gt;
* W3C Push API / Service workers — As soon as possible&lt;br /&gt;
* None (maybe &amp;quot;weekend mode&amp;quot; or something)&lt;br /&gt;
* http://littlebigdetails.com/post/125515172684/slack-automatically-and-immediately-disables&lt;br /&gt;
&lt;br /&gt;
=== Channel logs / history replay ===&lt;br /&gt;
&lt;br /&gt;
Channel logs live in either the user's personal remote storage (for personal usage on public servers), or in the organization's common remote storage. A Sockethub butler daemon will publish the logs to the storage servers, while they can be retrieved from the Web Client (for replay) directly via remoteStorage.js. Also, the Web client may want to publish/read read-status for messages/message ranges to/from the storage.&lt;br /&gt;
&lt;br /&gt;
=== NickServ integration ===&lt;br /&gt;
&lt;br /&gt;
This should belong to the setup flow/UX for public channels, in case the server has NickServ running.&lt;br /&gt;
&lt;br /&gt;
When starting the app/prototype for the first time and/or setting up a public subspace/server, 67P will guide you through the process of either creating a reserved username or configuring an existing one.&lt;br /&gt;
&lt;br /&gt;
Most of this could actually be a satellite, being triggered by NickServ messages and writing the right ones back. It might make sense to make storing the password optional.&lt;br /&gt;
&lt;br /&gt;
=== Easy joining of public channels as entry point to becoming a user ===&lt;br /&gt;
&lt;br /&gt;
See e.g. something like https://github.com/rauchg/slackin (love the badge, too) or the various Web IRC programs, of course.&lt;br /&gt;
&lt;br /&gt;
=== Create channels on the fly ===&lt;br /&gt;
&lt;br /&gt;
As opposed to having to create new channels before being able to join them, it's possible to just join channels on the fly via the normal syntax and then configure them once you're in it. IRC got that right, but not possible on e.g. Grove. On pro, that needs to be limited to admins optionally (but maybe not in the first version).&lt;br /&gt;
&lt;br /&gt;
=== Feature ideas for later™ ===&lt;br /&gt;
&lt;br /&gt;
* Send-later for messages (e.g. wait until business hours with sending something)&lt;br /&gt;
* Big-screen mode/view. Can show activity in multiple/all/selected channels at once.&lt;br /&gt;
* History replay for normal IRC clients; could include a link to open complete history in browser (like Grove does)&lt;br /&gt;
* Real-time translation to user's language (with hover-to-see-source or something)&lt;br /&gt;
* Make channels linkable, even when they're on different networks (maybe needs a satellite for both input and display)&lt;br /&gt;
* [http://blog.flowdock.com/2015/04/16/team-is-the-new-everyone Team mentions]&lt;br /&gt;
* Move messages to other channels (Oftentimes I realize I should've posted in a different one, esp. on private servers. Very possible to implement cleanly in Kosmos.)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=367</id>
		<title>Feature:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=367"/>
		<updated>2016-04-22T12:05:13Z</updated>

		<summary type="html">&lt;p&gt;Administrator: s/sth/something&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Kosmos's chat functionality is initially based on the IRC protocol (used via Sockethub), but enhances it with input/output app components, which enable rich-snippet rendering and other features. Let's call these components satellites, for lack of a better codename atm. (Feel free to brainstorm names on this wiki page. Would be great to have something where people say &amp;quot;dude, just write a [perfectname] for Kosmos&amp;quot;. Kind of like DuckDuckGo &amp;quot;spices&amp;quot; for example.)&lt;br /&gt;
&lt;br /&gt;
Chat is the main user interface for channels, which act as the scopes for other features, like e.g. [[Feature: File sharing| File sharing]], as well.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Satellites ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|Code Snippet&lt;br /&gt;
|When pasting a multi-line text, it offers to convert it into a rendered, potentially code-highlighted rich snippet&lt;br /&gt;
|-&lt;br /&gt;
|Map&lt;br /&gt;
|When pasting geo coordinates, or a maps URL (e.g. GMaps or OSM), it renders a small map with a pin and possibly popup on click, as well as a link to a big version of the map in a new window/tab/app&lt;br /&gt;
|-&lt;br /&gt;
|Incoming notification&lt;br /&gt;
|Every incoming notification (e.g. a Travis build) is given a notification type (hardcoded), which in turn is associated with a rich-snippet template and data.&lt;br /&gt;
|-&lt;br /&gt;
|Channel link&lt;br /&gt;
|When a #channelname is detected, it renders a link to that channel. Even better, if the user is using channels with the same name in multiple spaces, it should open a menu to select which one to open.&lt;br /&gt;
|-&lt;br /&gt;
|Time zones&lt;br /&gt;
|When other users are using different time zones, show their local time as well. Either next to the normal timestamp, or highlight the timestamp to indicate that it's not the other person's time zone and show their time on hover or similar.&lt;br /&gt;
|-&lt;br /&gt;
|Username mention&lt;br /&gt;
|When a person's own username is detected in another person's message, it is highlighted and a notification is triggered, if the app is not in the foreground (optionally with audio sound).&lt;br /&gt;
|-&lt;br /&gt;
|Word-list mention&lt;br /&gt;
|Same as username mentions, but not enabled by default (i.e. empty word list in the beginning). Users can configure their own word list per channel.&lt;br /&gt;
|-&lt;br /&gt;
|Image&lt;br /&gt;
|When an image URL is detected, it renders the image inline (either inline, if nothing else surrounds the url, or as a second line)&lt;br /&gt;
|-&lt;br /&gt;
|Tweet&lt;br /&gt;
|When a link to a tweet is detected, the tweet is fetched an rendered with a rich snippet in a new line&lt;br /&gt;
|-&lt;br /&gt;
|GitHub/Bitbucket&lt;br /&gt;
|When pasting a link to a Github repository, it renders the basic information about that repository (name, description, language, ...).&lt;br /&gt;
|-&lt;br /&gt;
|Website link&lt;br /&gt;
|When a generic URL is detected (and not handled by another satellite), it tries to fetch the title of the linked Web page or document and add that as a second line&lt;br /&gt;
|-&lt;br /&gt;
|Emoji&lt;br /&gt;
|When [http://www.emoji-cheat-sheet.com/ emoji syntax] is detected, it renders an emoji image. When starting to type emoji syntax, it shows an auto-complete menu, similar to GitHub comment form fields.&lt;br /&gt;
|-&lt;br /&gt;
|Voting&lt;br /&gt;
|&amp;quot;Everyone in favor of [x]?&amp;quot; triggers a yes/not poll. Responding with +1 or -1 (or using the vote input that then writes a +1 for you) counts up votes in a widget that stays in view until the poll is closed. If the majority hasn't responded in x amount of time, it sends them reminders to vote.&lt;br /&gt;
|-&lt;br /&gt;
|Correct/replace previous line&lt;br /&gt;
|When an s/word/word pattern is detected, it applies the replacement to the previous line of that user (only as rendering in the Web UI). A discreet highlighting is added to the word to indicate it was replaced, and when hovering (or similar), you can see the details of the replacement.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hint: all of this is backwards-compatible to plain IRC, meaning that if something is too long or for other reasons not possible to render nicely in a line of chat, it needs to be posted somewhere and linked to. The Web Client can fetch extra information from that resource, while the plain chat can use minimal messages that don't pollute the UI for plain-old-IRC-client users (let's call these programs POICs from now on. :))&lt;br /&gt;
&lt;br /&gt;
=== Offline notifications for mentions ===&lt;br /&gt;
&lt;br /&gt;
When you're not connected to 67P on any device, it will send notifications for username mentions in channels. Configurable methods:&lt;br /&gt;
&lt;br /&gt;
* Email — Sent by Sockethub. Could even use the actual person's email address and SMTP account for sending a direct email person-to-person with the message content.&lt;br /&gt;
* W3C Push API / Service workers — As soon as possible&lt;br /&gt;
* None (maybe &amp;quot;weekend mode&amp;quot; or something)&lt;br /&gt;
* http://littlebigdetails.com/post/125515172684/slack-automatically-and-immediately-disables&lt;br /&gt;
&lt;br /&gt;
=== Channel logs / history replay ===&lt;br /&gt;
&lt;br /&gt;
Channel logs live in either the user's personal remote storage (for personal usage on public servers), or in the organization's common remote storage. A Sockethub butler daemon will publish the logs to the storage servers, while they can be retrieved from the Web Client (for replay) directly via remoteStorage.js. Also, the Web client may want to publish/read read-status for messages/message ranges to/from the storage.&lt;br /&gt;
&lt;br /&gt;
=== NickServ integration ===&lt;br /&gt;
&lt;br /&gt;
This should belong to the setup flow/UX for public channels, in case the server has NickServ running.&lt;br /&gt;
&lt;br /&gt;
When starting the app/prototype for the first time and/or setting up a public subspace/server, 67P will guide you through the process of either creating a reserved username or configuring an existing one.&lt;br /&gt;
&lt;br /&gt;
Most of this could actually be a satellite, being triggered by NickServ messages and writing the right ones back. It might make sense to make storing the password optional.&lt;br /&gt;
&lt;br /&gt;
=== Easy joining of public channels as entry point to becoming a user ===&lt;br /&gt;
&lt;br /&gt;
See e.g. something like https://github.com/rauchg/slackin (love the badge, too) or the various Web IRC programs, of course.&lt;br /&gt;
&lt;br /&gt;
=== Create channels on the fly ===&lt;br /&gt;
&lt;br /&gt;
As opposed to having to create new channels before being able to join them, it's possible to just join channels on the fly via the normal syntax and then configure them once you're in it. IRC got that right, but not possible on e.g. Grove. On pro, that needs to be limited to admins optionally (but maybe not in the first version).&lt;br /&gt;
&lt;br /&gt;
=== Feature ideas for later™ ===&lt;br /&gt;
&lt;br /&gt;
* Send-later for messages (e.g. wait until business hours with sending something)&lt;br /&gt;
* Big-screen mode/view. Can show activity in multiple/all/selected channels at once.&lt;br /&gt;
* History replay for normal IRC clients; could include a link to open complete history in browser (like Grove does)&lt;br /&gt;
* Real-time translation to user's language (with hover-to-see-source or something)&lt;br /&gt;
* Make channels linkable, even when they're on different networks (maybe needs a satellite for both input and display)&lt;br /&gt;
* [http://blog.flowdock.com/2015/04/16/team-is-the-new-everyone Team mentions]&lt;br /&gt;
* Move messages to other channels (Oftentimes I realize I should've posted in a different one, esp. on private servers. Very possible to implement cleanly in Kosmos.)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=366</id>
		<title>Feature:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=366"/>
		<updated>2016-04-22T12:00:28Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Test edit for the hook&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Kosmos's chat functionality is initially based on the IRC protocol (used via Sockethub), but enhances it with input/output app components, which enable rich-snippet rendering and other features. Let's call these components satellites, for lack of a better codename atm. (Feel free to brainstorm names on this wiki page. Would be great to have something where people say &amp;quot;dude, just write a [perfectname] for Kosmos&amp;quot;. Kind of like DuckDuckGo &amp;quot;spices&amp;quot; for example.)&lt;br /&gt;
&lt;br /&gt;
Chat is the main user interface for channels, which act as the scopes for other features, like e.g. [[Feature: File sharing| File sharing]], as well.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Satellites ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
|Code Snippet&lt;br /&gt;
|When pasting a multi-line text, it offers to convert it into a rendered, potentially code-highlighted rich snippet&lt;br /&gt;
|-&lt;br /&gt;
|Map&lt;br /&gt;
|When pasting geo coordinates, or a maps URL (e.g. GMaps or OSM), it renders a small map with a pin and possibly popup on click, as well as a link to a big version of the map in a new window/tab/app&lt;br /&gt;
|-&lt;br /&gt;
|Incoming notification&lt;br /&gt;
|Every incoming notification (e.g. a Travis build) is given a notification type (hardcoded), which in turn is associated with a rich-snippet template and data.&lt;br /&gt;
|-&lt;br /&gt;
|Channel link&lt;br /&gt;
|When a #channelname is detected, it renders a link to that channel. Even better, if the user is using channels with the same name in multiple spaces, it should open a menu to select which one to open.&lt;br /&gt;
|-&lt;br /&gt;
|Time zones&lt;br /&gt;
|When other users are using different time zones, show their local time as well. Either next to the normal timestamp, or highlight the timestamp to indicate that it's not the other person's time zone and show their time on hover or similar.&lt;br /&gt;
|-&lt;br /&gt;
|Username mention&lt;br /&gt;
|When a person's own username is detected in another person's message, it is highlighted and a notification is triggered, if the app is not in the foreground (optionally with audio sound).&lt;br /&gt;
|-&lt;br /&gt;
|Word-list mention&lt;br /&gt;
|Same as username mentions, but not enabled by default (i.e. empty word list in the beginning). Users can configure their own word list per channel.&lt;br /&gt;
|-&lt;br /&gt;
|Image&lt;br /&gt;
|When an image URL is detected, it renders the image inline (either inline, if nothing else surrounds the url, or as a second line)&lt;br /&gt;
|-&lt;br /&gt;
|Tweet&lt;br /&gt;
|When a link to a tweet is detected, the tweet is fetched an rendered with a rich snippet in a new line&lt;br /&gt;
|-&lt;br /&gt;
|GitHub/Bitbucket&lt;br /&gt;
|When pasting a link to a Github repository, it renders the basic information about that repository (name, description, language, ...).&lt;br /&gt;
|-&lt;br /&gt;
|Website link&lt;br /&gt;
|When a generic URL is detected (and not handled by another satellite), it tries to fetch the title of the linked Web page or document and add that as a second line&lt;br /&gt;
|-&lt;br /&gt;
|Emoji&lt;br /&gt;
|When [http://www.emoji-cheat-sheet.com/ emoji syntax] is detected, it renders an emoji image. When starting to type emoji syntax, it shows an auto-complete menu, similar to GitHub comment form fields.&lt;br /&gt;
|-&lt;br /&gt;
|Voting&lt;br /&gt;
|&amp;quot;Everyone in favor of [x]?&amp;quot; triggers a yes/not poll. Responding with +1 or -1 (or using the vote input that then writes a +1 for you) counts up votes in a widget that stays in view until the poll is closed. If the majority hasn't responded in x amount of time, it sends them reminders to vote.&lt;br /&gt;
|-&lt;br /&gt;
|Correct/replace previous line&lt;br /&gt;
|When an s/word/word pattern is detected, it applies the replacement to the previous line of that user (only as rendering in the Web UI). A discreet highlighting is added to the word to indicate it was replaced, and when hovering (or similar), you can see the details of the replacement.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hint: all of this is backwards-compatible to plain IRC, meaning that if something is too long or for other reasons not possible to render nicely in a line of chat, it needs to be posted somewhere and linked to. The Web Client can fetch extra information from that resource, while the plain chat can use minimal messages that don't pollute the UI for plain-old-IRC-client users (let's call these programs POICs from now on. :))&lt;br /&gt;
&lt;br /&gt;
=== Offline notifications for mentions ===&lt;br /&gt;
&lt;br /&gt;
When you're not connected to 67P on any device, it will send notifications for username mentions in channels. Configurable methods:&lt;br /&gt;
&lt;br /&gt;
* Email — Sent by Sockethub. Could even use the actual person's email address and SMTP account for sending a direct email person-to-person with the message content.&lt;br /&gt;
* W3C Push API / Service workers — As soon as possible&lt;br /&gt;
* None (maybe &amp;quot;weekend mode&amp;quot; or sth)&lt;br /&gt;
* http://littlebigdetails.com/post/125515172684/slack-automatically-and-immediately-disables&lt;br /&gt;
&lt;br /&gt;
=== Channel logs / history replay ===&lt;br /&gt;
&lt;br /&gt;
Channel logs live in either the user's personal remote storage (for personal usage on public servers), or in the organization's common remote storage. A Sockethub butler daemon will publish the logs to the storage servers, while they can be retrieved from the Web Client (for replay) directly via remoteStorage.js. Also, the Web client may want to publish/read read-status for messages/message ranges to/from the storage.&lt;br /&gt;
&lt;br /&gt;
=== NickServ integration ===&lt;br /&gt;
&lt;br /&gt;
This should belong to the setup flow/UX for public channels, in case the server has NickServ running.&lt;br /&gt;
&lt;br /&gt;
When starting the app/prototype for the first time and/or setting up a public subspace/server, 67P will guide you through the process of either creating a reserved username or configuring an existing one.&lt;br /&gt;
&lt;br /&gt;
Most of this could actually be a satellite, being triggered by NickServ messages and writing the right ones back. It might make sense to make storing the password optional.&lt;br /&gt;
&lt;br /&gt;
=== Easy joining of public channels as entry point to becoming a user ===&lt;br /&gt;
&lt;br /&gt;
See e.g. something like https://github.com/rauchg/slackin (love the badge, too) or the various Web IRC programs, of course.&lt;br /&gt;
&lt;br /&gt;
=== Create channels on the fly ===&lt;br /&gt;
&lt;br /&gt;
As opposed to having to create new channels before being able to join them, it's possible to just join channels on the fly via the normal syntax and then configure them once you're in it. IRC got that right, but not possible on e.g. Grove. On pro, that needs to be limited to admins optionally (but maybe not in the first version).&lt;br /&gt;
&lt;br /&gt;
=== Feature ideas for later™ ===&lt;br /&gt;
&lt;br /&gt;
* Send-later for messages (e.g. wait until business hours with sending sth)&lt;br /&gt;
* Big-screen mode/view. Can show activity in multiple/all/selected channels at once.&lt;br /&gt;
* History replay for normal IRC clients; could include a link to open complete history in browser (like Grove does)&lt;br /&gt;
* Real-time translation to user's language (with hover-to-see-source or sth)&lt;br /&gt;
* Make channels linkable, even when they're on different networks (maybe needs a satellite for both input and display)&lt;br /&gt;
* [http://blog.flowdock.com/2015/04/16/team-is-the-new-everyone Team mentions]&lt;br /&gt;
* Move messages to other channels (Oftentimes I realize I should've posted in a different one, esp. on private servers. Very possible to implement cleanly in Kosmos.)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=MediaWiki:Common.css&amp;diff=220</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=MediaWiki:Common.css&amp;diff=220"/>
		<updated>2015-04-16T16:43:52Z</updated>

		<summary type="html">&lt;p&gt;Administrator: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=MediaWiki:Common.css&amp;diff=219</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=MediaWiki:Common.css&amp;diff=219"/>
		<updated>2015-04-16T16:42:58Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;/* CSS placed here will be applied to all skins */ body { color: #cc0; }&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
body {&lt;br /&gt;
color: #cc0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature&amp;diff=215</id>
		<title>Feature</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature&amp;diff=215"/>
		<updated>2015-03-23T18:18:26Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Created page with &amp;quot;== Features ==  *  Chat *  Incoming notifications / (web)hooks * Feature: Audio/video communication| Audio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Features ==&lt;br /&gt;
&lt;br /&gt;
* [[Feature: Chat| Chat]]&lt;br /&gt;
* [[Feature: Incoming notifications / (web)hooks| Incoming notifications / (web)hooks]]&lt;br /&gt;
* [[Feature: Audio/video communication| Audio/video communication]]&lt;br /&gt;
* [[Feature: File sharing| File sharing]]&lt;br /&gt;
* [[Feature: Migration from existing systems| Migration from existing systems]]&lt;br /&gt;
* [[Feature: Guest communication| Guest communication]]&lt;br /&gt;
* [[Feature: Themes| Themes]]&lt;br /&gt;
* [[Feature: Offline support| Offline support]]&lt;br /&gt;
* [[Feature: Onboarding / Setup| Onboarding / Setup]]&lt;br /&gt;
* [[Feature: Design| Design]]&lt;br /&gt;
* [[Feature: Multi-backend support| Multi-backend support]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=214</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=214"/>
		<updated>2015-03-23T18:16:51Z</updated>

		<summary type="html">&lt;p&gt;Administrator: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Codename 67P ==&lt;br /&gt;
&lt;br /&gt;
Codename 67P a.k.a. Nice Cave a.k.a Subspace is a team communication application based exclusively on open protocols, standards, and APIs. All of its components are free software, published under open-source licenses. User-facing programs will be built upon the [https://platform.html5.org/ Web Platform], communicating with server components via HTTP and WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Building blocks ==&lt;br /&gt;
&lt;br /&gt;
67P consists of several components, all of which can be configured separately, and thus be either hosted by a provider or self-hosted by the user/organization. These are:&lt;br /&gt;
&lt;br /&gt;
* [http://sockethub.org Sockethub] server for facilitating client/server communication between the Web client and the multiple protocols/backends/APIs it needs to talk to (e.g. IRC, SMTP, OStatus, Twitter, GitHub, SMS gateways, TURN etc.), as well handling incoming notifications like e.g. WebHooks from services that want to publish messages to 67P-handled IRC channels&lt;br /&gt;
* [http://remotestorage.io RemoteStorage] server for storing all user data in a user-defined/controlled storage backend&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] server for private communication servers (not needed for personal usage on public servers)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT TURN] server for WebRTC networking enhancements/fallback for audio and audio/video calls (optional)&lt;br /&gt;
* [https://github.com/67P/hyperchannel Web client], written in [http://emberjs.com/ Ember.js], using sockethub.js and remotestorage.js, and making heavy use of Ember/Web components for implementing its functionality&lt;br /&gt;
&lt;br /&gt;
[[Technical overview]]&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
* Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use&lt;br /&gt;
* Eventually provide a fully hosted, one-click-setup solution for private team communication (keeping the possibility to exchange any component at will, e.g. storing all data on a user-controller remoteStorage server instead of the 67P company's own remoteStorage servers&lt;br /&gt;
* Use common, open, documented data formats for storing all data, thus making it possible to use/manage/input stored data from other apps (no matter if new or existing). This is where the remoteStorage protocol is different than all other personal data storage protocols made for the Web.&lt;br /&gt;
* Make it possible for users to be part of and use both public and private channels/spaces/servers at the same time (no more Campfire/Hipchat/Slack for work and clients, and IRC only for open-source and hobby, all in different apps)&lt;br /&gt;
* Always keep the whole application in a state that can be deployed by anyone (with the necessary skills) who wishes to self-host the whole system. That explicitly includes excellent documentation for doing so.&lt;br /&gt;
* Reversing the trend of declining IRC users on public servers by giving everyone a great Web IRC client, most importantly making it easy to connect, register nicks, auto-log and replay messages while away — all the nitty-gritty details that even software developers struggle with these days&lt;br /&gt;
* Always be backwards-compatible to plain IRC. This will be achieved through smart client components, enhancing the rendering/fetching of messages on the client side, while messages transferred via servers are always plain-text and readable in IRC without spammy extra characters/lines&lt;br /&gt;
* Have an excellent mobile client (or multiple)&lt;br /&gt;
* Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). 67P is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* [[Feature: Chat| Chat]]&lt;br /&gt;
* [[Feature: Incoming notifications / (web)hooks| Incoming notifications / (web)hooks]]&lt;br /&gt;
* [[Feature: Audio/video communication| Audio/video communication]]&lt;br /&gt;
* [[Feature: File sharing| File sharing]]&lt;br /&gt;
* [[Feature: Migration from existing systems| Migration from existing systems]]&lt;br /&gt;
* [[Feature: Guest communication| Guest communication]]&lt;br /&gt;
* [[Feature: Themes| Themes]]&lt;br /&gt;
* [[Feature: Offline support| Offline support]]&lt;br /&gt;
* [[Feature: Onboarding / Setup| Onboarding / Setup]]&lt;br /&gt;
* [[Feature: Design| Design]]&lt;br /&gt;
* [[Feature: Multi-backend support| Multi-backend support]]&lt;br /&gt;
&lt;br /&gt;
== Development Roadmap ==&lt;br /&gt;
&lt;br /&gt;
See [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
== Naming / Branding ==&lt;br /&gt;
&lt;br /&gt;
67P is just a codename, because naming is hard. See [[Naming]].&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
See [[Team]].&lt;br /&gt;
&lt;br /&gt;
== Company ==&lt;br /&gt;
&lt;br /&gt;
See [[Company]].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Similar projects / inspiration ===&lt;br /&gt;
&lt;br /&gt;
* https://kiwiirc.com&lt;br /&gt;
* https://www.irccloud.com&lt;br /&gt;
* http://shout-irc.com&lt;br /&gt;
* https://gitter.im&lt;br /&gt;
* http://chat.stackoverflow.com&lt;br /&gt;
* https://chatgrape.com/ (good input field ideas)&lt;br /&gt;
* https://github.com/thedjpetersen/subway&lt;br /&gt;
* https://conversejs.org&lt;br /&gt;
* http://qoffee.io&lt;br /&gt;
* http://neovim.org (bounties for features)&lt;br /&gt;
* http://web.scrollback.io very similar in goals, open-source, claims to be used by a lot of different groups, has funding and appears to be hiring.&lt;br /&gt;
* http://sdelements.github.io/lets-chat/&lt;br /&gt;
* http://www.matrix.org/&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=213</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=213"/>
		<updated>2015-03-23T18:16:07Z</updated>

		<summary type="html">&lt;p&gt;Administrator: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Codename 67P ==&lt;br /&gt;
&lt;br /&gt;
Codename 67P a.k.a. Nice Cave a.k.a Subspace is a team communication application based exclusively on open protocols, standards, and APIs. All of its components are free software, published under open-source licenses. User-facing programs will be built upon the [https://platform.html5.org/ Web Platform], communicating with server components via HTTP and WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Building blocks ==&lt;br /&gt;
&lt;br /&gt;
67P consists of several components, all of which can be configured separately, and thus be either hosted by a provider or self-hosted by the user/organization. These are:&lt;br /&gt;
&lt;br /&gt;
* [http://sockethub.org Sockethub] server for facilitating client/server communication between the Web client and the multiple protocols/backends/APIs it needs to talk to (e.g. IRC, SMTP, OStatus, Twitter, GitHub, SMS gateways, TURN etc.), as well handling incoming notifications like e.g. WebHooks from services that want to publish messages to 67P-handled IRC channels&lt;br /&gt;
* [http://remotestorage.io RemoteStorage] server for storing all user data in a user-defined/controlled storage backend&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] server for private communication servers (not needed for personal usage on public servers)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT TURN] server for WebRTC networking enhancements/fallback for audio and audio/video calls (optional)&lt;br /&gt;
* [https://github.com/67P/hyperchannel Web client], written in [http://emberjs.com/ Ember.js], using sockethub.js and remotestorage.js, and making heavy use of Ember/Web components for implementing its functionality&lt;br /&gt;
&lt;br /&gt;
[[Technical overview]]&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
* Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use&lt;br /&gt;
* Eventually provide a fully hosted, one-click-setup solution for private team communication (keeping the possibility to exchange any component at will, e.g. storing all data on a user-controller remoteStorage server instead of the 67P company's own remoteStorage servers&lt;br /&gt;
* Use common, open, documented data formats for storing all data, thus making it possible to use/manage/input stored data from other apps (no matter if new or existing). This is where the remoteStorage protocol is different than all other personal data storage protocols made for the Web.&lt;br /&gt;
* Make it possible for users to be part of and use both public and private channels/spaces/servers at the same time (no more Campfire/Hipchat/Slack for work and clients, and IRC only for open-source and hobby, all in different apps)&lt;br /&gt;
* Always keep the whole application in a state that can be deployed by anyone (with the necessary skills) who wishes to self-host the whole system. That explicitly includes excellent documentation for doing so.&lt;br /&gt;
* Reversing the trend of declining IRC users on public servers by giving everyone a great Web IRC client, most importantly making it easy to connect, register nicks, auto-log and replay messages while away — all the nitty-gritty details that even software developers struggle with these days&lt;br /&gt;
* Always be backwards-compatible to plain IRC. This will be achieved through smart client components, enhancing the rendering/fetching of messages on the client side, while messages transferred via servers are always plain-text and readable in IRC without spammy extra characters/lines&lt;br /&gt;
* Have an excellent mobile client (or multiple)&lt;br /&gt;
* Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). 67P is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* [[Feature: Chat| Chat]]&lt;br /&gt;
* [[Feature: Incoming notifications / (web)hooks| Incoming notifications / (web)hooks]]&lt;br /&gt;
* [[Feature: Audio/video communication| Audio/video communication]]&lt;br /&gt;
* [[Feature: File sharing| File sharing]]&lt;br /&gt;
* [[Feature: Migration from existing systems| Migration from existing systems]]&lt;br /&gt;
* [[Feature: Guest communication| Guest communication]]&lt;br /&gt;
* [[Feature: Themes| Themes]]&lt;br /&gt;
* [[Feature: Offline support]]&lt;br /&gt;
* [[Feature: Onboarding / Setup| Onboarding / Setup]]&lt;br /&gt;
* [[Feature: Design| Design]]&lt;br /&gt;
* [[Feature: Multi-backend support| Multi-backend support]]&lt;br /&gt;
&lt;br /&gt;
== Development Roadmap ==&lt;br /&gt;
&lt;br /&gt;
See [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
== Naming / Branding ==&lt;br /&gt;
&lt;br /&gt;
67P is just a codename, because naming is hard. See [[Naming]].&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
See [[Team]].&lt;br /&gt;
&lt;br /&gt;
== Company ==&lt;br /&gt;
&lt;br /&gt;
See [[Company]].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Similar projects / inspiration ===&lt;br /&gt;
&lt;br /&gt;
* https://kiwiirc.com&lt;br /&gt;
* https://www.irccloud.com&lt;br /&gt;
* http://shout-irc.com&lt;br /&gt;
* https://gitter.im&lt;br /&gt;
* http://chat.stackoverflow.com&lt;br /&gt;
* https://chatgrape.com/ (good input field ideas)&lt;br /&gt;
* https://github.com/thedjpetersen/subway&lt;br /&gt;
* https://conversejs.org&lt;br /&gt;
* http://qoffee.io&lt;br /&gt;
* http://neovim.org (bounties for features)&lt;br /&gt;
* http://web.scrollback.io very similar in goals, open-source, claims to be used by a lot of different groups, has funding and appears to be hiring.&lt;br /&gt;
* http://sdelements.github.io/lets-chat/&lt;br /&gt;
* http://www.matrix.org/&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Offline_support&amp;diff=211</id>
		<title>Feature:Offline support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Offline_support&amp;diff=211"/>
		<updated>2015-03-23T18:14:18Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Offline support to Feature:Offline support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Not only when being offline, but especially when using an intermittent, slow, or otherwise bad connection, the app still works and behaves nicely.&lt;br /&gt;
&lt;br /&gt;
The Web client will check every message for actually having arrived in a channel and render the state of that nicely in the UI. If a message couldn't be sent, it offers a button to re-try sending it.&lt;br /&gt;
&lt;br /&gt;
The app is delivered with an Appcache manifest in production, so that its code and assets are cached in the Web runtime, not only making start-up extremely fast, but also enabling starting the app while being offline and e.g. checking the logs of the last day or so.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Themes&amp;diff=208</id>
		<title>Feature:Themes</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Themes&amp;diff=208"/>
		<updated>2015-03-23T18:12:33Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Themes to Feature:Themes without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Different people like different things. And a virtual office shouldn't be grey and boring, same as a physical one should not. That's why you can change the visual theme of the Web client to something you find more appealing than a white background with black text on it.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Choose between well-designed, beautiful, bundled themes&lt;br /&gt;
* If a theme isn't designed well enough, it won't be bundled. Contributed themes have to be approved by our UX/UI quality gatekeepers.&lt;br /&gt;
* New themes can be created easily using SCSS and the basic framework that is offered. The layout should be the same for all themes, but colors, fonts, background images, and sound effects can be adjusted by the theme.&lt;br /&gt;
* Theme directory with credit and votes for core bundling?&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Multi-backend_support&amp;diff=206</id>
		<title>Feature:Multi-backend support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Multi-backend_support&amp;diff=206"/>
		<updated>2015-03-23T18:12:07Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Multi-backend support to Feature:Multi-backend support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fact: a lot of people think we're crazy for using the IRC protocol as core transport.&lt;br /&gt;
&lt;br /&gt;
In the long run, it would probably make sense to add support for multiple protocols side-by-side. For example, why not have an XMPP group chat next to an IRC chat. That's what Sockethub is for after all. Could even be a Gitter channel or something other that is usually closed-source and centralized. And then we can choose which one offers the best performance and UX for Pro.&lt;br /&gt;
&lt;br /&gt;
Also, as we're building Hyperchannel as componentized app from the start, integrating different transport protocols isn't difficult in regards to the UI integration.&lt;br /&gt;
&lt;br /&gt;
If we add more, we should obviously also think about providing IRC gateways to those other ones, if possible.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* http://xmpp.org/extensions/xep-0045.html&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Guest_communication&amp;diff=205</id>
		<title>Feature:Guest communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Guest_communication&amp;diff=205"/>
		<updated>2015-03-23T18:11:46Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Guest communication to Feature:Guest communication without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Status: idea&lt;br /&gt;
&lt;br /&gt;
It's possible to create a temporary room that one can invite guests to or direct them to by their request, for both chat and audio/video communication.&lt;br /&gt;
&lt;br /&gt;
Use cases:&lt;br /&gt;
&lt;br /&gt;
* Invite clients, customers, contractors, or any other person(s) to a meeting/call&lt;br /&gt;
* Customer support&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Onboarding_/_Setup&amp;diff=204</id>
		<title>Feature:Onboarding / Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Onboarding_/_Setup&amp;diff=204"/>
		<updated>2015-03-23T18:11:31Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Onboarding / Setup to Feature:Onboarding / Setup without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Have a chat bot that asks questions and uses answers to configure the app for the user (from conversation with David)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=203</id>
		<title>Feature:Migration from existing systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=203"/>
		<updated>2015-03-23T18:11:16Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Migration from existing systems to Feature:Migration from existing systems without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
In order to make migration from other systems/services easy and enjoyable, both for just trying out the software as well as transferring all data for a complete org migration to 67P, there will be a subsystem for importing data and configuration.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Import user names/accounts&lt;br /&gt;
* Import channels, including their chat history&lt;br /&gt;
* Import shared files&lt;br /&gt;
&lt;br /&gt;
== Migration sources ==&lt;br /&gt;
&lt;br /&gt;
* Slack&lt;br /&gt;
* Flowdock&lt;br /&gt;
* Campfire&lt;br /&gt;
* Hipchat&lt;br /&gt;
* IRCCloud&lt;br /&gt;
* Grove.io&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Grove.io has JSON files for single days or complete history. Resource names are guessable/common.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:File_sharing&amp;diff=201</id>
		<title>Feature:File sharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:File_sharing&amp;diff=201"/>
		<updated>2015-03-23T18:10:56Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:File sharing to Feature:File sharing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with a complete, built-in file-sharing solution, optimized for the&lt;br /&gt;
quick sharing of screenshots, screencaps, documents and other files, both on&lt;br /&gt;
public channels as well as in private company channels.&lt;br /&gt;
&lt;br /&gt;
67P also offers a history view of recently shared files per channel, so it is&lt;br /&gt;
easy to find something without having to search the chat logs.&lt;br /&gt;
&lt;br /&gt;
When sharing a file in a channel, the Web client uses a nice [[Feature: Chat#Satellites|satellite]] to render the action and a preview of the file.&lt;br /&gt;
&lt;br /&gt;
== Technical implementation ==&lt;br /&gt;
&lt;br /&gt;
File sharing is based on the RemoteStorage protocol. Files are published&lt;br /&gt;
directly from the Web client to the remote storage.&lt;br /&gt;
&lt;br /&gt;
In public channels, using one's personal remoteStorage, the files are published&lt;br /&gt;
there, while in private channels (pro/paid), files are published to the&lt;br /&gt;
organizations storage.&lt;br /&gt;
&lt;br /&gt;
Image thumbnails are created directly in the browser by the&lt;br /&gt;
[https://github.com/remotestorage/modules/blob/master/src/shares.js remoteStorage shares] module.&lt;br /&gt;
Long-term the module will be extended for creating e.g. file list for zip files&lt;br /&gt;
and other preview/summary data.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Share file/image icon button next to text input field?&lt;br /&gt;
* Easily share a quick picture from the webcam (can even be animated, e.g. with https://yahoo.github.io/gifshot/)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=200</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=200"/>
		<updated>2015-03-23T18:10:29Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Audio/video communication to Feature:Audio/video communication without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC ([http://webrtc.org &amp;quot;Web Real-time Communication&amp;quot;]) is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC ([http://ortc.org &amp;quot;Object RTC&amp;quot;]) at some point, which is a lower-level standard that will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC is an integrated featuren in HyperChannel. Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== HyperChannel Integration ===&lt;br /&gt;
&lt;br /&gt;
A video stream (or audio symbol for non-video) will be integrated into the 67P UI (maybe in an extra tab?) You can also &amp;quot;pop-out&amp;quot; this UI component, which makes working on multiple screens easier (and requesting full screen simpler).&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
==== Stand Alone Application ====&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc) - This will be done via IRC or WebRTC's DataChannels.&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
It is implemented on top of the existing IRC channels (via SockerHub) using special message formats, which will get parsed by the HC Client. For backwards compat (later), it could include a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=198</id>
		<title>Feature:Incoming notifications / (web)hooks</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=198"/>
		<updated>2015-03-23T18:08:31Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature:Feature2:Incoming notifications / (web)hooks to Feature:Incoming notifications / (web)hooks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Sockethub Butlers ===&lt;br /&gt;
&lt;br /&gt;
* Incoming Webhook (usually HTTP POST) to channel/storage&lt;br /&gt;
** Data formats and message rendering for known hooks/services&lt;br /&gt;
** Vanilla hook with defined message format and plain/common rendering for custom services&lt;br /&gt;
* RSS feed to channel/storage (detect known types, e.g. MediaWiki recent-changes feed)&lt;br /&gt;
* Bitcoin wallet transactions to channel/storage&lt;br /&gt;
* Email/IMAP to channel/storage. Would check for emails and parse one or all of sender/recipient/subject/text in order to trigger extracting information and/or post/store to channel/storage.&lt;br /&gt;
* Webpage change tracking to channel/storage (check regularly if content on a page changed)&lt;br /&gt;
* RemoteStorage resource change to channel/storage&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* [GitHub] Apparently it's now possible to define a single hook for all activities within an organization: https://developer.github.com/changes/2014-12-03-preview-the-new-organization-webhooks-api/ — that means we might be able to set that once per API/OAuth call and have a single catcher for all GitHub-related things (no more forgetting to configure channel notifications for new repos e.g.). Also, notifications for not just commits, but other activities as well.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=197</id>
		<title>Feature:Incoming notifications / (web)hooks</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=197"/>
		<updated>2015-03-23T18:08:09Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Incoming notifications / (web)hooks to Feature:Feature2:Incoming notifications / (web)hooks without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Sockethub Butlers ===&lt;br /&gt;
&lt;br /&gt;
* Incoming Webhook (usually HTTP POST) to channel/storage&lt;br /&gt;
** Data formats and message rendering for known hooks/services&lt;br /&gt;
** Vanilla hook with defined message format and plain/common rendering for custom services&lt;br /&gt;
* RSS feed to channel/storage (detect known types, e.g. MediaWiki recent-changes feed)&lt;br /&gt;
* Bitcoin wallet transactions to channel/storage&lt;br /&gt;
* Email/IMAP to channel/storage. Would check for emails and parse one or all of sender/recipient/subject/text in order to trigger extracting information and/or post/store to channel/storage.&lt;br /&gt;
* Webpage change tracking to channel/storage (check regularly if content on a page changed)&lt;br /&gt;
* RemoteStorage resource change to channel/storage&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* [GitHub] Apparently it's now possible to define a single hook for all activities within an organization: https://developer.github.com/changes/2014-12-03-preview-the-new-organization-webhooks-api/ — that means we might be able to set that once per API/OAuth call and have a single catcher for all GitHub-related things (no more forgetting to configure channel notifications for new repos e.g.). Also, notifications for not just commits, but other activities as well.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Design&amp;diff=195</id>
		<title>Feature:Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Design&amp;diff=195"/>
		<updated>2015-03-23T18:06:53Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature2:Design to Feature:Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Brand / Identity ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* http://www.pubnub.com/blog/creating-a-polymer-chat-app-with-material-design/&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Themes&amp;diff=193</id>
		<title>Feature:Themes</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Themes&amp;diff=193"/>
		<updated>2015-03-23T18:05:52Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Themes to Feature2:Themes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Different people like different things. And a virtual office shouldn't be grey and boring, same as a physical one should not. That's why you can change the visual theme of the Web client to something you find more appealing than a white background with black text on it.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Choose between well-designed, beautiful, bundled themes&lt;br /&gt;
* If a theme isn't designed well enough, it won't be bundled. Contributed themes have to be approved by our UX/UI quality gatekeepers.&lt;br /&gt;
* New themes can be created easily using SCSS and the basic framework that is offered. The layout should be the same for all themes, but colors, fonts, background images, and sound effects can be adjusted by the theme.&lt;br /&gt;
* Theme directory with credit and votes for core bundling?&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Themes&amp;diff=194</id>
		<title>Feature: Themes</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Themes&amp;diff=194"/>
		<updated>2015-03-23T18:05:52Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Themes to Feature2:Themes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Themes]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Multi-backend_support&amp;diff=191</id>
		<title>Feature:Multi-backend support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Multi-backend_support&amp;diff=191"/>
		<updated>2015-03-23T18:05:38Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Multi-backend support to Feature2:Multi-backend support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fact: a lot of people think we're crazy for using the IRC protocol as core transport.&lt;br /&gt;
&lt;br /&gt;
In the long run, it would probably make sense to add support for multiple protocols side-by-side. For example, why not have an XMPP group chat next to an IRC chat. That's what Sockethub is for after all. Could even be a Gitter channel or something other that is usually closed-source and centralized. And then we can choose which one offers the best performance and UX for Pro.&lt;br /&gt;
&lt;br /&gt;
Also, as we're building Hyperchannel as componentized app from the start, integrating different transport protocols isn't difficult in regards to the UI integration.&lt;br /&gt;
&lt;br /&gt;
If we add more, we should obviously also think about providing IRC gateways to those other ones, if possible.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* http://xmpp.org/extensions/xep-0045.html&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Multi-backend_support&amp;diff=192</id>
		<title>Feature: Multi-backend support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Multi-backend_support&amp;diff=192"/>
		<updated>2015-03-23T18:05:38Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Multi-backend support to Feature2:Multi-backend support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Multi-backend support]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Guest_communication&amp;diff=189</id>
		<title>Feature:Guest communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Guest_communication&amp;diff=189"/>
		<updated>2015-03-23T18:05:30Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Guest communication to Feature2:Guest communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Status: idea&lt;br /&gt;
&lt;br /&gt;
It's possible to create a temporary room that one can invite guests to or direct them to by their request, for both chat and audio/video communication.&lt;br /&gt;
&lt;br /&gt;
Use cases:&lt;br /&gt;
&lt;br /&gt;
* Invite clients, customers, contractors, or any other person(s) to a meeting/call&lt;br /&gt;
* Customer support&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Guest_communication&amp;diff=190</id>
		<title>Feature: Guest communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Guest_communication&amp;diff=190"/>
		<updated>2015-03-23T18:05:30Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Guest communication to Feature2:Guest communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Guest communication]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Onboarding_/_Setup&amp;diff=187</id>
		<title>Feature:Onboarding / Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Onboarding_/_Setup&amp;diff=187"/>
		<updated>2015-03-23T18:05:21Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Onboarding / Setup to Feature2:Onboarding / Setup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Have a chat bot that asks questions and uses answers to configure the app for the user (from conversation with David)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Onboarding_/_Setup&amp;diff=188</id>
		<title>Feature: Onboarding / Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Onboarding_/_Setup&amp;diff=188"/>
		<updated>2015-03-23T18:05:21Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Onboarding / Setup to Feature2:Onboarding / Setup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Onboarding / Setup]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=185</id>
		<title>Feature:Migration from existing systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Migration_from_existing_systems&amp;diff=185"/>
		<updated>2015-03-23T18:05:13Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Migration from existing systems to Feature2:Migration from existing systems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
In order to make migration from other systems/services easy and enjoyable, both for just trying out the software as well as transferring all data for a complete org migration to 67P, there will be a subsystem for importing data and configuration.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Import user names/accounts&lt;br /&gt;
* Import channels, including their chat history&lt;br /&gt;
* Import shared files&lt;br /&gt;
&lt;br /&gt;
== Migration sources ==&lt;br /&gt;
&lt;br /&gt;
* Slack&lt;br /&gt;
* Flowdock&lt;br /&gt;
* Campfire&lt;br /&gt;
* Hipchat&lt;br /&gt;
* IRCCloud&lt;br /&gt;
* Grove.io&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Grove.io has JSON files for single days or complete history. Resource names are guessable/common.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Migration_from_existing_systems&amp;diff=186</id>
		<title>Feature: Migration from existing systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Migration_from_existing_systems&amp;diff=186"/>
		<updated>2015-03-23T18:05:13Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Migration from existing systems to Feature2:Migration from existing systems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Migration from existing systems]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_File_sharing&amp;diff=184</id>
		<title>Feature: File sharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_File_sharing&amp;diff=184"/>
		<updated>2015-03-23T18:05:07Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: File sharing to Feature2:File sharing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:File sharing]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:File_sharing&amp;diff=183</id>
		<title>Feature:File sharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:File_sharing&amp;diff=183"/>
		<updated>2015-03-23T18:05:06Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: File sharing to Feature2:File sharing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with a complete, built-in file-sharing solution, optimized for the&lt;br /&gt;
quick sharing of screenshots, screencaps, documents and other files, both on&lt;br /&gt;
public channels as well as in private company channels.&lt;br /&gt;
&lt;br /&gt;
67P also offers a history view of recently shared files per channel, so it is&lt;br /&gt;
easy to find something without having to search the chat logs.&lt;br /&gt;
&lt;br /&gt;
When sharing a file in a channel, the Web client uses a nice [[Feature: Chat#Satellites|satellite]] to render the action and a preview of the file.&lt;br /&gt;
&lt;br /&gt;
== Technical implementation ==&lt;br /&gt;
&lt;br /&gt;
File sharing is based on the RemoteStorage protocol. Files are published&lt;br /&gt;
directly from the Web client to the remote storage.&lt;br /&gt;
&lt;br /&gt;
In public channels, using one's personal remoteStorage, the files are published&lt;br /&gt;
there, while in private channels (pro/paid), files are published to the&lt;br /&gt;
organizations storage.&lt;br /&gt;
&lt;br /&gt;
Image thumbnails are created directly in the browser by the&lt;br /&gt;
[https://github.com/remotestorage/modules/blob/master/src/shares.js remoteStorage shares] module.&lt;br /&gt;
Long-term the module will be extended for creating e.g. file list for zip files&lt;br /&gt;
and other preview/summary data.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Share file/image icon button next to text input field?&lt;br /&gt;
* Easily share a quick picture from the webcam (can even be animated, e.g. with https://yahoo.github.io/gifshot/)&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Audio/video_communication&amp;diff=182</id>
		<title>Feature: Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Audio/video_communication&amp;diff=182"/>
		<updated>2015-03-23T18:04:33Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Audio/video communication to Feature2:Audio/video communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Audio/video communication]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=181</id>
		<title>Feature:Audio/video communication</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Audio/video_communication&amp;diff=181"/>
		<updated>2015-03-23T18:04:32Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Audio/video communication to Feature2:Audio/video communication&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
67P comes with integrated video- and audio chat capabilities. In the beginning, this is limited to 1on1 calls, but we will support conferencing and/or broadcasting at a later point. WebRTC ([http://webrtc.org &amp;quot;Web Real-time Communication&amp;quot;]) is used to enable this. WebRTC currently works in Firefox, Chrome, FF and Chrome on Android, Opera and some lesser known browsers (e.g. Bowser on iOS). We might switch to ORTC ([http://ortc.org &amp;quot;Object RTC&amp;quot;]) at some point, which is a lower-level standard that will be supported in Internet Explorer also.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
67P RTC is an integrated featuren in HyperChannel. Only direct 1on1 calls will be implemented for now.&lt;br /&gt;
&lt;br /&gt;
=== HyperChannel Integration ===&lt;br /&gt;
&lt;br /&gt;
A video stream (or audio symbol for non-video) will be integrated into the 67P UI (maybe in an extra tab?) You can also &amp;quot;pop-out&amp;quot; this UI component, which makes working on multiple screens easier (and requesting full screen simpler).&lt;br /&gt;
&lt;br /&gt;
=== Feature Ideas for Later™ ===&lt;br /&gt;
&lt;br /&gt;
* Screensharing&lt;br /&gt;
* Conferencing&lt;br /&gt;
* Broadcasting&lt;br /&gt;
* Call in to a WebRTC call via plain old phone system&lt;br /&gt;
&lt;br /&gt;
==== Stand Alone Application ====&lt;br /&gt;
&lt;br /&gt;
The WebRTC Stand Alone Application will be needed in the following cases:&lt;br /&gt;
&lt;br /&gt;
* One of the participants is not on HC, but using an IRC Client&lt;br /&gt;
* Both parties are using IRC. The Server/Mod generates a room link on the SA app for them. Or maybe: Don't support this scenario?&lt;br /&gt;
* Inviting people to an 1on1 chat that are not part of the current 67P organisation (maybe via email)&lt;br /&gt;
&lt;br /&gt;
The SA application displays the video stream of the other party, however, some kind of text communication channel is still needed (people want to exchange links etc) - This will be done via IRC or WebRTC's DataChannels.&lt;br /&gt;
&lt;br /&gt;
== Technical Implementation ==&lt;br /&gt;
&lt;br /&gt;
'''Components:''' Client/UI Integration, Signaling Backend (might be IRC/SH), TURN Relay, SFU/MCU for Conferencing &amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== Signaling ===&lt;br /&gt;
&lt;br /&gt;
WebRTC requires &amp;quot;signaling&amp;quot; which serves two purposes:&lt;br /&gt;
* Peers meet each other&lt;br /&gt;
* Peers can exchange some messages w/ each other (like &amp;quot;offer: i can do this codec&amp;quot; or &amp;quot;ice: i have this kind of nat&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
It is implemented on top of the existing IRC channels (via SockerHub) using special message formats, which will get parsed by the HC Client. For backwards compat (later), it could include a link to the SA app:&lt;br /&gt;
&lt;br /&gt;
    A → B [67p-rtc-invite] Here is your video call: https://playground.p67.io/rtc/bilfgneehlrieli&lt;br /&gt;
    B → A [67p-rtc-accept] Accepted&lt;br /&gt;
    A → B [67p-rtc-params] (Signaling messages)&lt;br /&gt;
    ...&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Offline_support&amp;diff=179</id>
		<title>Feature:Offline support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Offline_support&amp;diff=179"/>
		<updated>2015-03-23T18:04:23Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Offline support to Feature2:Offline support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
Not only when being offline, but especially when using an intermittent, slow, or otherwise bad connection, the app still works and behaves nicely.&lt;br /&gt;
&lt;br /&gt;
The Web client will check every message for actually having arrived in a channel and render the state of that nicely in the UI. If a message couldn't be sent, it offers a button to re-try sending it.&lt;br /&gt;
&lt;br /&gt;
The app is delivered with an Appcache manifest in production, so that its code and assets are cached in the Web runtime, not only making start-up extremely fast, but also enabling starting the app while being offline and e.g. checking the logs of the last day or so.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Offline_support&amp;diff=180</id>
		<title>Feature: Offline support</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Offline_support&amp;diff=180"/>
		<updated>2015-03-23T18:04:23Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Offline support to Feature2:Offline support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Offline support]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=177</id>
		<title>Feature:Incoming notifications / (web)hooks</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Incoming_notifications_/_(web)hooks&amp;diff=177"/>
		<updated>2015-03-23T18:04:12Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Incoming notifications / (web)hooks to Feature2:Incoming notifications / (web)hooks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
=== Sockethub Butlers ===&lt;br /&gt;
&lt;br /&gt;
* Incoming Webhook (usually HTTP POST) to channel/storage&lt;br /&gt;
** Data formats and message rendering for known hooks/services&lt;br /&gt;
** Vanilla hook with defined message format and plain/common rendering for custom services&lt;br /&gt;
* RSS feed to channel/storage (detect known types, e.g. MediaWiki recent-changes feed)&lt;br /&gt;
* Bitcoin wallet transactions to channel/storage&lt;br /&gt;
* Email/IMAP to channel/storage. Would check for emails and parse one or all of sender/recipient/subject/text in order to trigger extracting information and/or post/store to channel/storage.&lt;br /&gt;
* Webpage change tracking to channel/storage (check regularly if content on a page changed)&lt;br /&gt;
* RemoteStorage resource change to channel/storage&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* [GitHub] Apparently it's now possible to define a single hook for all activities within an organization: https://developer.github.com/changes/2014-12-03-preview-the-new-organization-webhooks-api/ — that means we might be able to set that once per API/OAuth call and have a single catcher for all GitHub-related things (no more forgetting to configure channel notifications for new repos e.g.). Also, notifications for not just commits, but other activities as well.&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Incoming_notifications_/_(web)hooks&amp;diff=178</id>
		<title>Feature: Incoming notifications / (web)hooks</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Incoming_notifications_/_(web)hooks&amp;diff=178"/>
		<updated>2015-03-23T18:04:12Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Incoming notifications / (web)hooks to Feature2:Incoming notifications / (web)hooks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Incoming notifications / (web)hooks]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Design&amp;diff=175</id>
		<title>Feature:Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Design&amp;diff=175"/>
		<updated>2015-03-23T18:03:58Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Design to Feature2:Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Brand / Identity ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
== Mobile ==&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* http://www.pubnub.com/blog/creating-a-polymer-chat-app-with-material-design/&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Design&amp;diff=176</id>
		<title>Feature: Design</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Design&amp;diff=176"/>
		<updated>2015-03-23T18:03:58Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Design to Feature2:Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Design]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=174</id>
		<title>Feature:Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:Chat&amp;diff=174"/>
		<updated>2015-03-23T18:03:28Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature:Chat to Feature2:Chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature2:Chat]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Feature:_Chat&amp;diff=172</id>
		<title>Feature: Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Feature:_Chat&amp;diff=172"/>
		<updated>2015-03-23T18:01:36Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Administrator moved page Feature: Chat to Feature:Chat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Feature:Chat]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=170</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.kosmos.org/index.php?title=Main_Page&amp;diff=170"/>
		<updated>2015-03-23T17:26:37Z</updated>

		<summary type="html">&lt;p&gt;Administrator: Protected &amp;quot;Main Page&amp;quot; ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Codename 67P ==&lt;br /&gt;
&lt;br /&gt;
Codename 67P a.k.a. Nice Cave a.k.a Subspace is a team communication application based exclusively on open protocols, standards, and APIs. All of its components are free software, published under open-source licenses. User-facing programs will be built upon the [https://platform.html5.org/ Web Platform], communicating with server components via HTTP and WebSockets.&lt;br /&gt;
&lt;br /&gt;
== Building blocks ==&lt;br /&gt;
&lt;br /&gt;
67P consists of several components, all of which can be configured separately, and thus be either hosted by a provider or self-hosted by the user/organization. These are:&lt;br /&gt;
&lt;br /&gt;
* [http://sockethub.org Sockethub] server for facilitating client/server communication between the Web client and the multiple protocols/backends/APIs it needs to talk to (e.g. IRC, SMTP, OStatus, Twitter, GitHub, SMS gateways, TURN etc.), as well handling incoming notifications like e.g. WebHooks from services that want to publish messages to 67P-handled IRC channels&lt;br /&gt;
* [http://remotestorage.io RemoteStorage] server for storing all user data in a user-defined/controlled storage backend&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] server for private communication servers (not needed for personal usage on public servers)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT TURN] server for WebRTC networking enhancements/fallback for audio and audio/video calls (optional)&lt;br /&gt;
* [https://github.com/67P/hyperchannel Web client], written in [http://emberjs.com/ Ember.js], using sockethub.js and remotestorage.js, and making heavy use of Ember/Web components for implementing its functionality&lt;br /&gt;
&lt;br /&gt;
[[Technical overview]]&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
&lt;br /&gt;
* Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use&lt;br /&gt;
* Eventually provide a fully hosted, one-click-setup solution for private team communication (keeping the possibility to exchange any component at will, e.g. storing all data on a user-controller remoteStorage server instead of the 67P company's own remoteStorage servers&lt;br /&gt;
* Use common, open, documented data formats for storing all data, thus making it possible to use/manage/input stored data from other apps (no matter if new or existing). This is where the remoteStorage protocol is different than all other personal data storage protocols made for the Web.&lt;br /&gt;
* Make it possible for users to be part of and use both public and private channels/spaces/servers at the same time (no more Campfire/Hipchat/Slack for work and clients, and IRC only for open-source and hobby, all in different apps)&lt;br /&gt;
* Always keep the whole application in a state that can be deployed by anyone (with the necessary skills) who wishes to self-host the whole system. That explicitly includes excellent documentation for doing so.&lt;br /&gt;
* Reversing the trend of declining IRC users on public servers by giving everyone a great Web IRC client, most importantly making it easy to connect, register nicks, auto-log and replay messages while away — all the nitty-gritty details that even software developers struggle with these days&lt;br /&gt;
* Always be backwards-compatible to plain IRC. This will be achieved through smart client components, enhancing the rendering/fetching of messages on the client side, while messages transferred via servers are always plain-text and readable in IRC without spammy extra characters/lines&lt;br /&gt;
* Have an excellent mobile client (or multiple)&lt;br /&gt;
* Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). 67P is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* [[Feature: Chat| Chat]]&lt;br /&gt;
* [[Feature: Incoming notifications / (web)hooks| Incoming notifications / (web)hooks]]&lt;br /&gt;
* [[Feature: Audio/video communication| Audio/video communication]]&lt;br /&gt;
* [[Feature: File sharing| File sharing]]&lt;br /&gt;
* [[Feature: Migration from existing systems| Migration from existing systems]]&lt;br /&gt;
* [[Feature: Guest communication| Guest communication]]&lt;br /&gt;
* [[Feature: Themes| Themes]]&lt;br /&gt;
* [[Feature: Offline support| Offline support]]&lt;br /&gt;
* [[Feature: Onboarding / Setup| Onboarding / Setup]]&lt;br /&gt;
* [[Feature: Design| Design]]&lt;br /&gt;
* [[Feature: Multi-backend support| Multi-backend support]]&lt;br /&gt;
&lt;br /&gt;
== Development Roadmap ==&lt;br /&gt;
&lt;br /&gt;
See [[Roadmap]].&lt;br /&gt;
&lt;br /&gt;
== Naming / Branding ==&lt;br /&gt;
&lt;br /&gt;
67P is just a codename, because naming is hard. See [[Naming]].&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
See [[Team]].&lt;br /&gt;
&lt;br /&gt;
== Company ==&lt;br /&gt;
&lt;br /&gt;
See [[Company]].&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
=== Similar projects / inspiration ===&lt;br /&gt;
&lt;br /&gt;
* https://kiwiirc.com&lt;br /&gt;
* https://www.irccloud.com&lt;br /&gt;
* http://shout-irc.com&lt;br /&gt;
* https://gitter.im&lt;br /&gt;
* http://chat.stackoverflow.com&lt;br /&gt;
* https://chatgrape.com/ (good input field ideas)&lt;br /&gt;
* https://github.com/thedjpetersen/subway&lt;br /&gt;
* https://conversejs.org&lt;br /&gt;
* http://qoffee.io&lt;br /&gt;
* http://neovim.org (bounties for features)&lt;br /&gt;
* http://web.scrollback.io very similar in goals, open-source, claims to be used by a lot of different groups, has funding and appears to be hiring.&lt;br /&gt;
* http://sdelements.github.io/lets-chat/&lt;br /&gt;
* http://www.matrix.org/&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
		
	</entry>
</feed>