
Show HN: Vector: a Matrix-powered open-source collaboration Web/Android/iOS app - Arathorn
https://vector.im
======
slimsag
I'm not trying to be rude by saying this, but these names "Vector" and
"Matrix" are far from Google-able, and sometimes (esp. in game development,
and other scientific fields I'm sure) not even clear in person-to-person
discussion.

~~~
cshimmin
Agreed, I think it's an unfortunate naming choice. As a physicist (and hence
also mathematician and programmer) this term is already terribly overloaded.

"Slack" is clever because it's not an obscure word but also not something one
would normally Google for. Most brandings seem to just opt for really obscure
words or made up words, which also works.

~~~
rcthompson
I'll just add that in biological sciences both "vector" and "matrix" are also
overloaded with yet more meanings in addition to the mathematical ones. (e.g.
"plasmid vector", "extracellular matrix")

~~~
Arathorn
well, Matrix is Latin for 'womb', so it's fairly safe to say that the word is
heavily overloaded already. Given we have the top google slot (having gone
incognito) for Matrix Chat and Matrix Protocol etc. I'm not /that/ worried...

------
unicornporn
I've been using Vector for Android the last days and I must say I am VERY
impressed. Both the vector.im web interface and the smartphone apps are
looking polished at a level that I'm very unused to when it comes to open
source projects.

I must say though that people are becoming more and more unfamiliar with
decentralization. Naming the standard one thing (Matrix) and the main phone
app another (Vector) is IMHO a move that only a technologist would come up
with. The logic might seem crystal clear to all you working on the project.
But if you want traction (hell, you could actually be a serious alternative to
Slack!) you should've register something like matrix.im and named the app
Matrix.

~~~
Perceptes
Matrix is the protocol that Vector uses. Matrix itself is being marketed to
developers to build their apps using it. Vector is aimed at end users who want
a chat system, and they don't really have to know or care what Matrix is. A
good analogy is Matrix : Vector :: Email : Gmail

~~~
NobleSir
Except email and gmail are words that are clearly related (and suggest message
transference) even for someone who doesn't know linear algebra..

------
vbezhenar
Matrix is an extremely promising project. It has everything I'm expecting from
IM platform so far: it's very open; it's decentralized (I can host my own
server and it'll talk to others); it's centralized (one server for many
clients); it's modern (HTTP, JSON, REST); it supports push; it synchronises a
single history between all clients. It has VoIP, file transfers. There are
numerous clients and few are surprisingly mature.

Honestly, it's the best protocol out there. I don't know any other protocol
with all those features. I really hope, that Matrix will be the IM of our
future, it's good enough for that, in contrast to every other popular IM
platform.

I used vector.im as a web interface, and it just works.

I'll try to deploy Matrix as our tiny company internal communication tool.
Currently we use a mix of e-mail, skype, whatsapp, telegram, and it just not
as good as it could be. I can't force my friends to move to other IM, but I
can influence my colleagues, and, hopefully, it'll be the trend.

What Matrix really need is some marketing. It's so awesome, I couldn't
believe, that I'm so rarely read news about it. Very few people know what it
is, and that's a sad situation.

------
Arathorn
We just showed off the first official release of the Vector clients for
Matrix.org at the Decentralised Web Summit
([http://decentralizedweb.net](http://decentralizedweb.net)) - it seems to
have gone down quite well, and even attracted a few new faces :D
[https://matrix.org/_matrix/media/v1/thumbnail/matrix.org/xhD...](https://matrix.org/_matrix/media/v1/thumbnail/matrix.org/xhDiiENbEJiDJVJQXZlDqbEA?width=800&height=600)

~~~
mark_l_watson
I was only at the first six hours of the Decentralized Web Summit and I missed
your demo. Tim Berners Lee was promoting solid github.com/solid as an open
framework. I have just started looking at Solid and I would appreciate your
comparison of Matrix and Solid.

~~~
Arathorn
Solid seems to have very similar goals to Matrix, but seems to be a bit more
abstract at this point. I had some brief conversations with Tim at the summit
about how to collaborate, and as you can see he's been using Vector to
participate in the conference chat. I'm sure that we'll get the two to bridge
or converge in future!

------
phantom_oracle
This may be helpful to other people, as I myself was a bit confused in the
beginning.

Vector.im is a client to the protocol called "matrix.org".

This is equivalent to using XChat(client) on the IRC protocol.

In this case, matrix.org also runs their own servers (but you can host your
own), so it is like IRC protocol (matrix protocol) + Freenode (matrix server).

~~~
unicornporn
One big difference though is that the users on one server could communicate
with users on another server. In the world of IRC that would mean that users
from Freenode and EFnet could communicate with each other in the same channel.
Pretty awesome.

~~~
anewhnaccount
IRC has federation.

~~~
amandine
So does Matrix :)

~~~
Bromskloss
That's what unicornporn implied.

------
jalami
Matrix and vector look more interesting by the week. I would really like to
see the Android port on F-droid. I haven't done a tonne of research, but I
believe Vector uses Google Play Services, specifically GCM. This makes it
impossible for me to use on my GAPPS-less phone. It also bars it from F-droid.

~~~
amandine
Yes the Vector Android app uses GCM, but it's opensource so you might be able
to tweak it so that it works on F-droid? Sorry I don't know much about the
differences there...

~~~
dlmetcalf
Leaving people no option but to use Google's infrastructure (if they want to
participate with anything better than a browser) seems an ENORMOUS gap, given
the rest of the project's goals. If you want to use it on mobile, it _IS_
still centralised around Play Store and GCM (where Google can collect all your
metadata).

You can't even install the Matrix mobile app on open source Android phone that
doesn't have all the Google bloatware installed (which you can't do on decent
OS's like Copperhead yet while keeping a signed & verified boot loader).

You've done some great work, so I don't want to be too critical (I don't have
time to implement the fix for a start!) - but this is almost like how Signal
claims to be open source, but you can't ACTUALLY USE the iOS version, because
GPL is incompatible with Apple Store.

You claim to be open source and decentralised, but you can't _actually_ use it
on an open source and decentralised platform. So I kinda don't see the point.

~~~
aviraldg
Have you actually tried using it on a phone with no Google Play Services? I'm
involved with the project and I remember someone reporting it works just fine.
Vector for Android falls back to polling if GCM isn't supported/working afaik.

~~~
dlmetcalf
I hadn't tried it, no. Was just going on what others had said here. That's
great to hear it has at least some sort of fallback! Polling however is
typically too battery draining to be practical. Battery drain was one of the
biggest reasons XMPP lost traction.

If Matrix adds something like XEP-0357 Push Notifications, enables verifiable
builds & FDroid distribution, plus gets full featured XMPP bridge
implementations done, then I think you're onto a winner. It gets extremely
hard to convince people to install N+1 different IM clients once N>5, let
alone the >10 that're becoming common. The XMPP Push XEP is working
fantastically in Conversations IM and extremely fast too BTW (much snappier
than Signal at least).

Congratulations on your work on the Olm implementation too!!! Now that Signal
Protocol has been locked up in legalese (turns out Open Whisper WEREN'T really
open), you guys are _THE_ leading E2E implementation. It's really a fantastic
contribution to the community and we owe Matrix devs a huge thank you!

~~~
Arathorn
We do have a similar equivalent to XEP-0357:
[http://matrix.org/docs/spec/push_gateway/unstable.html](http://matrix.org/docs/spec/push_gateway/unstable.html).
We can and will make Matrix do smarter than polling though, especially for the
case that GCM isn't available. For instance you could use the websocket
transport that's available today.

Glad you like Olm :) I think OWS are trying to find a way for their impl to be
appstore compatible too, so hopefully the user wins twice over!

~~~
dlmetcalf
Nice! I really am excited for you (and us)!

Re OWS; yes, I still keep some small hope that they've just been too
preoccupied and not completely thought/worked things through. People are human
and they've clearly had a lot going on! Their position as stated really did
surprise a lot of people. Matrix.org's views on decentralisation certainly
sounds FAR closer to the future I'd like to see for the net. Being able to
evolve or change clients and integrate new technologies, _without_ cutting off
the entire network, seems clearly a very good thing indeed.

------
briankwest
You can watch Matthew from the Matrix/Vector project here
[https://www.youtube.com/watch?v=nF93l0DbAg0](https://www.youtube.com/watch?v=nF93l0DbAg0)

We did this call yesterday with them, the Video element uses FreeSWITCH Video
MCU. You should check it out. Its very interesting.

/b

------
cshimmin
Nobody has said the word "slack" yet... but am I interpreting this correctly?
An open source clone of slack? If so, it's very interesting. I wonder if they
are taking any steps towards solving the "fragmentation" issue that slack
teams seem to cause. I have a few contacts that are shared between 2-3
different slack teams and I can never remember where to find my PM
conversations.

Edit: okay someone else did say "slack", should have refreshed the page before
posting :)

~~~
amandine
Vector does address the same market as Slack, with similar feature set but
also leveraging Matrix to bridge to other systems like Slack, and IRC, and
others soon.

And yes Vector allows you to be part of several teams without switching
between them.

[disclaimer: I'm from Vector team]

~~~
cshimmin
Thanks for the reply! To clarify, you mean to say that a single user-account
can be the exact same entity on multiple teams? And so point-to-point
communication is not affected by team boundaries?

What about server boundaries? Can they be federated somehow? Sorry if you are
trying to answer this with your point about Matrix; I'm not familiar with it.

Edit: ah! Arathorn answered my question about federation. This is super cool
stuff!

~~~
amandine
Yes basically the concept of closed teams doesn't exist in Vector: you are a
member of different chatrooms, public or private, with other people, each
having its own focus, no matter what is the project scope or the topic.

------
SamWhited
I still don't understand why Matrix was made when XMPP is already a thing; if
you're not happy with the existing standard participate in the process, don't
just make up a new one. [https://xkcd.com/927/](https://xkcd.com/927/)

~~~
scrollaway
> I still don't understand why Matrix was made when XMPP is already a thing

Have you tried... thinking about it a bit more? I could come up with roughly
20 different reasons without trying very hard. For someone involved in XMPP,
that is one hell of a thing to say.

Seriously, calling out XKCD927 on a massive project like Matrix is extremely
disrespectful to its contributors.

Tell me, what could Matrix have done to save XMPP? Publish a hundred different
XEPs nobody would ever bother to implement? Make broken clients/servers that
don't follow the spec just to try fix a protocol that lost? Magically fix
everything and tell people "No really guys, XMPP is better now I swear!"?

They went and tried a new approach and they're doing really well with it...
have some respect for that.

~~~
dlmetcalf
I actually think it's very good thing that people are asking that question
(why not fix XMPP)!! We know from Bob Metcalfe's Law, that starting new
networks has a very high cost, either in adoption/migration, lost investments
in past standards, duplication of efforts when multiple need to be supported,
or when they fail to gain critical mass. There's a limited pool of attention
and resources and it's right for people to be instinctively cautious and have
the discussions.

For me, the more I learn about Matrix, the more persuaded I am that it really
does have merit. If I were a Matrix developer, I wouldn't feel disrespected.
I'd be super glad that people are asking questions and genuinely seeking to
test that the idea is right. From their dialogue with the community that I've
seen so far, the developers are doing great and seem to thoroughly appreciate
there's been a lot of false starts by various groups over the years.

TLDR;) - It may be obvious to you, but it's GOOD people are having the
conversation. Questions and even dissent should be embraced. It's not about
disrespect, it's about testing & validating new ideas.

~~~
dlmetcalf
I should add, that the ability to bridge networks, means that XMPP, IRC and
others won't/don't need to be cut off from Matrix either. That's kind of the
point and interop is one of the big features it will have going.

------
pjtr
Looks very interesting, but the site is still lacking some important
information (or not very clear) from an end-user perspective. Why is there no
description of the features? Don't tell me "just try it". There are so many
chat clients out there I can't try all of them. But I'm always on the look out
for a chat client that also supports group voice chat and group screen
sharing.

The page says "VoIP", but with no explanation or details at all. The demo
doesn't seem to contain that. Does it exist?

Screensharing is not mentioned at all. Does it exist?

Does this run on Windows / OSX / Linux? Neither is mentioned anywhere.

Maybe even more important would be an end-user oriented site for the Matrix
server. Is this a thing? The matrix.org site is very confusing as it has no
clear focus. It's all a mix between detail-free overview of the overall idea
and low level protocol specification. Where is the end-user friendly page
about the Matrix server? What features does it have and how do I set it up?
Where is the "tutorial" / blog post about how to successfully setup my own
server and install a client in three easy steps to have a full team
communication solution (group-text, -voice and -screensharing)?

One thing I really like about Slack is they have great documentation and great
customer support. Matrix and Vector may be great, unfortunately it's too
difficult to find out.

~~~
Arathorn
So far the site is just a quick one-page overview - we haven't had a chance to
flesh out any of the detail yet at all; sorry about that :) To answer the
questions:

* 1:1 VoIP is supported on WebRTC on the web version, Android, and iOS coming very shortly. On Web you hit the call buttons on the bottom right; on Android it's currently hidden behind the top-left menu. * Multiway VoIP is very beta, but supported on the web version. Hit the call buttons when in a room. * Screensharing is even more beta, but happens to be there as an undocumented easter egg on Web. Currently it only works if you're running on Chrome with the --enable-usermedia-screen-capturing commandline option, and shift-click on the video call button. Obviously this isn't intended remotely for serious use yet, but we're working on it. * The three platforms supported are Web/iOS/Android. You can of course run the Web client fine on Windows/OSX/Linux. If you want a different native client, go experiment with the other options on [http://matrix.org/docs/projects/try-matrix-now.html](http://matrix.org/docs/projects/try-matrix-now.html) * The page you failed to find for the Synapse server is probably the read me at [https://github.com/matrix-org/synapse](https://github.com/matrix-org/synapse). Agreed we need to make this clearer, and provide much better simple overviews and tutorials for getting up and running. * Agreed that Slack have amazing documentation - it's something we desperately need to do better at. I'd like to think our "customer support" isn't too bad, though; good luck in getting one of Slack's co-founders answering your feedback on HN ;D

~~~
pjtr
Thank you for the in depth reply. Glad to hear these things are on the
roadmap. I'm really looking forward to when they are ready for serious use.
(Although I'm a bit skeptical about WebRTC. Browsers have hyped it for over
five years now and is still barely beta quality.)

------
em3rgent0rdr
PRIVACY CONCERN: I had to disable Privacy Badger simply to create my account.
When I clicked the link in my email for verification, it asks me to prove that
I'm not a robot, but didn't have anything for me to click or do to prove that.
Only after disabling privacy badger would it produce a simple checkbox which I
clicked, thus proving I'm not a robot.

Designers: Could you please provide an alternate method of human-verification
if the user has enabled something like privacy badger?

~~~
Arathorn
Sure - sorry about this; I guess there's something in the google reCAPTCHA
stuff which triggers privacy badger. We'll investigate.

~~~
dlmetcalf
It's great to see how open you are to community feedback. Hats off for your
responsiveness!

------
G43nm45ji
I Just got weirdly excited by this. I had heard of it before but never really
though about what I could do with it. But then I'm never really sure if I
understand it completely yet.

If i just want to set up a server that me and my friends would use. I can just
make a server. they would register on it and we would be good to go? I don't
have to join the federation if I don't want to? I understand the advantages of
doing so though.

Also, how does the vector apps go on battery use and all that. comparable to
other messaging apps?

~~~
amandine
Precisely: just setup the server and off you go, you don't have to federate,
although as you say that would be missing part of the fun ;)

The Vector app on Android (using GCM) has pretty good perf battery
consumption-wise. Unsure how it compares with other apps but we haven't had
any particular complaints about it.

------
jrowley
Looks nice, and glad to see it's open source and that I can run it on my own
server :) A very crowded space but having that option is great.

I wonder how integration with phabricator would work/look like.

------
rglullis
As someone who has self hosted my own XMPP server before and still cries over
the move taken by Google and Facebook with their messengers, can someone from
the Matrix people explain what is so fundamentally different from the
protocol, that it couldn't be done in XMPP?

Please don't say "it is XML based". I know the situation with the clients is
XMPP-land is appalling, but it seems to me that if Matrix does get any kind of
traction, it will face the exact same kind of problems.

~~~
asp2insp
(not from the team) The matrix.org FAQ has a great overview of the protocol's
strengths vs XMPP, IRC, etc: [http://matrix.org/docs/guides/faq.html#what-is-
the-differenc...](http://matrix.org/docs/guides/faq.html#what-is-the-
difference-between-matrix-and-xmpp) (and it doesn't mention XML at all!)

------
jbk
I'm curious, how does this compare to open source slack-clones like
Mattermost?

~~~
amandine
With Vector you have the choice between using the hosted version of Vector or
host it yourself. And being built on the Matrix
([http://matrix.org](http://matrix.org)) standard, it's a completely
distributed architecture: run your own server and own your own data!

Like any other Matrix compliant app, Vector supports out of the box all the
bridges and integrations the community contributes to the Matrix ecosystem. So
today it bridges to Slack and IRC, soon Mattermost, Rocketchat, Skype, Lync...
And Github, Jira, Jenkins for the integration side, with much more to come,
including Slack webhooks.

On the UX side of things, Vector doesn't force you to create an account per
team like Slack does and allows the creation of public chat rooms which can be
referenced in a directory. Rooms can be invite-only or just "hidden" (anyone
with the link can access) or fully public (anyone can access). Also every
message is indexed and has a permalink to it, so easy to share information,
especially given people can access rooms as guests (if the room allows), no
need to create an account.

In terms of Real Soon Now stuff: \- End to end encryption will be landing in a
couple of weeks \- Vector web and Android support voice and video conferences
via WebRTC (it needs additional polish so consider it as beta, but it's here)
\- Proper nice UI to provision the bridges and the integrations in the room
(couple of weeks)

And I feel like I'm missing stuff... But that's probably the main bits

~~~
cyphar
> In terms of Real Soon Now stuff: - End to end encryption will be landing in
> a couple of weeks

Will this be based on Axolotl? If so, and you want to avoid the Signal problem
of there being a log of messages being passed between users, how are you
dealing with that? Or is the idea that to make that type of security guarantee
you have to self-host conversations? If so, surely there's still a log of
messages being sent there. Maybe you could employ a rubberhose-like setup
where you send fake messages that mask the real ones?

~~~
Arathorn
Yes, it's using a Double Ratchet implementation - an independent
implementation we wrote in C/C++ called Olm
([https://matrix.org/git/olm/about](https://matrix.org/git/olm/about)). We've
also added a new group ratchet called Megolm which lets users in the room
share the same ratchet to decrypt the group messages.

The actual ratchet itself does nothing to protect metadata - it's just
encrypting the payload of the messages in the room, and providing a 1:1
ratchet to exchange the details of the group ratchet for the room.

Obfuscating metadata is a Hard Problem, and if you don't want your server
admins to be able to see who's talking to who, you'll need to look at
something like Vuvuzela or Ricochet or Pond. In future we may go down the
metadata protecting rabbit-hole, so to speak:
[https://matrix.org/~matthew/2015-06-26%20Matrix%20Jardin%20E...](https://matrix.org/~matthew/2015-06-26%20Matrix%20Jardin%20Entropique.pdf)
has the details.

------
thedangler
Integration's? Do you have to build an integration through the matrix api? No
real detail on the page about it.

~~~
Arathorn
Right now you have to run your own integration from the list of Application
Services at [http://matrix.org/docs/projects/try-matrix-
now.html](http://matrix.org/docs/projects/try-matrix-now.html), or use one of
the existing ones which someone's running out on Matrix. In the near future
Vector will provide self-service hosted integrations for those who don't want
to run their own.

------
xfalcox
Is there some way to connect to this using pidgin on Linux?

~~~
Arathorn
there's a very basic and experimental pidgin plugin at
[https://github.com/matrix-org/purple-matrix](https://github.com/matrix-
org/purple-matrix), but the impedance mismatch between purple2 and matrix is
pretty bad (eg limited support for synchronised conversation history). It
needs more features before it can be used in anger - patches welcome ;)

------
Bombthecat
Does it have push on iPhone and Android?

~~~
aviraldg
Yes.

------
dlmetcalf
Am I missing something here? What license is the Matrix Specification itself
under? (I know most of the implementations themselves are ASLv2).

It seems really unclear from the site & repo: [https://github.com/matrix-
org/matrix-doc](https://github.com/matrix-org/matrix-doc),
[https://matrix.org/docs/spec/](https://matrix.org/docs/spec/) (apart from
being copyright to Matrix.org)

Is this yet to be clarified? (Maybe the Google vs. Oracle case makes it
slightly less relevant, but needs to be clarified).

What stops Matrix getting everyone aboard, then releasing new CLOSED versions
of the major server and clients with a new spec (as the protocol formerly
known as Ax _l_ tl did), and carrying the critical mass of user base with
them? Sure, the implementations are ASLv2, so in theory the community could
fork, but in practice that doesn't always work. Is there going to be incentive
to keep it open? (Signal was an 'open' implementation and spec too, but that
didn't work out as people expected, even though OWS are non-profit).

Thanks.

~~~
Arathorn
This is a genuinely accidental omission - the spec is either PD, a CC variant
or ASLv2. Will work out which and post it.

~~~
dlmetcalf
Thanks Arathorn. Matthew's confirmed that to me also. I expected that'd be the
case.

------
myaccountzz
Does it have encryption already? Because at top it says so, but at the bottom
it says not yet.

>Soon, protect your conversation with state of the art end-to-end encryption
using Matrix's Olm cryptographic ratchet.

~~~
amandine
Not yet, couple of weeks away though

~~~
Arathorn
It's actually landed on the develop branch, but we're still testing. The bit
at the top of the webpage anticipates it merging to master :)

