Difference between revisions of "Main Page"

From Kosmos Wiki
Jump to navigation Jump to search
(40 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Kosmos (ex Codename 67P) ==
+
'''Kosmos''' (ex ''Codename 67P'') is a team communication application based exclusively on open protocols, standards, APIs, and data formats. All of its components are free software, published under open-source licenses. User-facing programs are built upon the [https://platform.html5.org/ Web Platform], communicating with server components via HTTP and WebSockets.
 
 
Kosmos is a team communication application based exclusively on open protocols, standards, APIs, and data formats. All of its components are free software, published under open-source licenses. User-facing programs are built upon the [https://platform.html5.org/ Web Platform], communicating with server components via HTTP and WebSockets.
 
  
 
== Building blocks ==
 
== Building blocks ==
Line 7: Line 5:
 
Kosmos 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:
 
Kosmos 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:
  
* [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 Kosmos-handled IRC channels
+
* [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.)
 
* [http://remotestorage.io RemoteStorage] server for storing all user data in a user-defined/controlled storage backend
 
* [http://remotestorage.io RemoteStorage] server for storing all user data in a user-defined/controlled storage backend
* [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] server for private communication servers (not needed for personal usage on public servers)
+
* [https://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] or [https://en.wikipedia.org/wiki/XMPP XMPP] server for private communication servers (not needed for personal usage on public servers)
* [https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT TURN] server for WebRTC networking enhancements/fallback for audio and audio/video calls (optional)
+
* [https://github.com/67P/hyperchannel Web client], written in [http://emberjs.com/ Ember.js], using sockethub-client.js and remoteStorage.js
* [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
+
* Daemon for logging channels, handling incoming notifications (e.g. Webhooks), sending push notifications (e.g. for offline mentions). Functionality is currently being prototyped with [https://github.com/67P?utf8=%E2%9C%93&q=hubot&type=&language= Hubot scripts] (running on [https://github.com/67P/botka botka] and [https://github.com/67P/hal8000 hal8000]).
  
 
[[Technical overview]]
 
[[Technical overview]]
Line 18: Line 16:
  
 
* Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use
 
* Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use
* 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 Kosmos company's own remoteStorage servers
+
* 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 user-controlled remoteStorage servers
* 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.
+
* 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 really shines compared to all other personal data storage protocols made for the Web.
* 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)
+
* Make it possible for users to be part of and use both public and private channels/spaces/servers at the same time and in the same window (no more Campfire/HipChat/Slack for work and clients, and IRC only for open-source and hobby, all in different apps)
* 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.
+
* 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 documentation for doing so.
* 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
+
* Enable *anyone* to join the conversation on public servers by offering a great Web IRC client, 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
* 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
+
* Be backwards-compatible to plain text chat/clients
 
* Have an excellent mobile client (or multiple)
 
* Have an excellent mobile client (or multiple)
 
* Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). Kosmos is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.
 
* Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). Kosmos is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.
 +
 +
We also summarized our goals for a grant application with the Prototype Fund in German language on 31/03/2017: see [[Prototype Fund]]
  
 
== Features ==
 
== Features ==
Line 40: Line 40:
 
* [[Feature: Design| Design]]
 
* [[Feature: Design| Design]]
 
* [[Feature: Multi-backend support| Multi-backend support]]
 
* [[Feature: Multi-backend support| Multi-backend support]]
 +
* [[Feature: Accessibility| Accessibility]]
  
 
== Development Roadmap ==
 
== Development Roadmap ==
  
 
See [[Roadmap]].
 
See [[Roadmap]].
 
== Team ==
 
 
See [[Team]].
 
  
 
== Kredits ==
 
== Kredits ==
Line 56: Line 53:
  
 
See [[Notes]].
 
See [[Notes]].
 +
 +
== Community / Getting in touch / Getting involved ==
 +
 +
All of our communication currently happens on [https://github.com/67P/ GitHub], and on IRC in [https://waves.kosmos.org/logs/freenode/kosmos/today #kosmos] and [https://waves.kosmos.org/logs/freenode/kosmos-dev/today #kosmos-dev] on Freenode.
 +
 +
You can also follow and ping us on the fediverse (Mastodon, GNU Social, Hubzilla, etc.): https://kosmos.social/@kosmos
 +
 +
== Events ==
 +
 +
This is a list of events with Kosmos activities going on. Please add more, in case you're working on something related somewhere.
 +
 +
=== Upcoming ===
 +
 +
* [https://neworder.hcpp.cz/ HCPP] - Oct 2018, Prague (lio17, raucao)
 +
* [https://hackerbeach.org/ Hacker Beach #7] - Jan 2019, location tbd
 +
 +
=== Past ===
 +
 +
* [[Kosmos Hackdays 2018/1]] — Tuscany (Italy) in April (~11-end)
 +
* [[Hacker Beach #6]] (January 2018, Petite Côte, Sénégal)
 +
* [[SHA2017]] (August 4-8, 2017, Zeewolde, NL)
 +
* [[Kosmos Hackdays 2017/1]] (May 2-5, 2017 | during [http://wwwtf.berlin/ WWWTF Berlin])
 +
 +
== Code of Conduct ==
 +
 +
[[Contributor Code of Conduct]]

Revision as of 12:56, 14 June 2018

Kosmos (ex Codename 67P) is a team communication application based exclusively on open protocols, standards, APIs, and data formats. All of its components are free software, published under open-source licenses. User-facing programs are built upon the Web Platform, communicating with server components via HTTP and WebSockets.

Building blocks

Kosmos 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:

  • 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.)
  • RemoteStorage server for storing all user data in a user-defined/controlled storage backend
  • IRC or XMPP server for private communication servers (not needed for personal usage on public servers)
  • Web client, written in Ember.js, using sockethub-client.js and remoteStorage.js
  • Daemon for logging channels, handling incoming notifications (e.g. Webhooks), sending push notifications (e.g. for offline mentions). Functionality is currently being prototyped with Hubot scripts (running on botka and hal8000).

Technical overview

Goals

  • Provide users/organizations/businesses with a modern, full-featured team communication solution, which is easy to set up and use
  • 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 user-controlled remoteStorage servers
  • 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 really shines compared to all other personal data storage protocols made for the Web.
  • Make it possible for users to be part of and use both public and private channels/spaces/servers at the same time and in the same window (no more Campfire/HipChat/Slack for work and clients, and IRC only for open-source and hobby, all in different apps)
  • 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 documentation for doing so.
  • Enable *anyone* to join the conversation on public servers by offering a great Web IRC client, 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
  • Be backwards-compatible to plain text chat/clients
  • Have an excellent mobile client (or multiple)
  • Make use of the latest Web Platform standards, not caring about backwards-compatibility in Web runtimes (much). Kosmos is a modern Web application, and people not running modern Web runtimes can use plain IRC clients.

We also summarized our goals for a grant application with the Prototype Fund in German language on 31/03/2017: see Prototype Fund

Features

Development Roadmap

See Roadmap.

Kredits

See Kredits.

Notes

See Notes.

Community / Getting in touch / Getting involved

All of our communication currently happens on GitHub, and on IRC in #kosmos and #kosmos-dev on Freenode.

You can also follow and ping us on the fediverse (Mastodon, GNU Social, Hubzilla, etc.): https://kosmos.social/@kosmos

Events

This is a list of events with Kosmos activities going on. Please add more, in case you're working on something related somewhere.

Upcoming

Past

Code of Conduct

Contributor Code of Conduct