[HN Gopher] Movim - A decentralized social platform built on XMPP
       ___________________________________________________________________
        
       Movim - A decentralized social platform built on XMPP
        
       Author : yamrzou
       Score  : 74 points
       Date   : 2022-09-09 08:23 UTC (14 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | tpoacher wrote:
       | Help! I mo-opened movim by accident and now I can't figure out
       | how to mo-close it!
       | 
       | I've tried everything! mo-Ctrl-Q, mo-Ctrl-X, mo-Alt-F4,, mo-F10
       | ...
        
       | nicoco wrote:
       | Movim is great! I don't even use its microblogging features, but
       | the chat part implements emoji message reactions* which are a
       | very convenient way to acknowledge a message, and a way that
       | everybody understands. It may look gadget-y and I suspect a lot
       | of old school hackers might hate them, but I think that we should
       | reckon that they are seen as a standard chat feature by non-
       | techies. I used to be in the hate camp ("I don't want no
       | 'facebook like' in my chats!") but after being forced to use MS
       | teams at $EMPLOYER, I must admit I miss the feature in my (other
       | than movim) XMPP clients.
       | 
       | * https://xmpp.org/extensions/xep-0444.html
        
       | jaimehrubiks wrote:
       | Until recently I wasn't aware that the XMPP protocol
       | specification was still being updated and up to date including
       | things like read receipts, message reactions etc. I'd love to see
       | the EU standarize communications with something like XMPP and
       | something similar for voice/video. It would be amazing to not
       | depend on clients like WhatsApp for my whole life.
       | 
       | I'm excited to try Movim and mobile XMPP clients with XMPP
       | bridges like the one in the front page last week.
        
         | xani_ wrote:
         | There was one beautiful moment where Google and Facebook
         | supported XMPP so you could _just_ set up your XMPP server and
         | talk with people across the platforms but both decided to close
         | their gardens for the usual reasons
         | 
         | But XMPP is shitshow of million XEPs and massive matrix of
         | which supports what. So just because in theory there is some
         | feature you want it doesn't mean that your server and your
         | client will work with it. That's _terrible_ value proposition
         | to anyone wanting to do anything in the space, you _dont_ want
         | to debug (and we did had to, when we used xmpp for our company
         | chat) why user X using communicator Y on platform Z can 't send
         | attachment to your user on communicator Q.
         | 
         | XMPP needs to just sit the fuck down, gather the XEPs and put
         | it into XMPP 3.0, with few feature sets that every client and
         | server using it needs to support all at once, not picking and
         | choosing.
         | 
         | So if you make text only chat client, it supports all of the
         | formatting, all of the file send/receive, all of the MUC
         | things, all of the E2E encryption things, all at once. And have
         | _one_ text formatting to support (Markdown seems to be winning
         | here), not a bunch.
        
           | jjrh wrote:
           | > gather the XEPs and put it into XMPP 3.0, with few feature
           | sets that every client and server using it needs to support
           | all at once, not picking and choosing.
           | 
           | They do exactly that -
           | https://xmpp.org/extensions/xep-0459.html
           | 
           | Easy to deploy solutions for common use cases like company
           | chat are being worked on with projects like
           | https://snikket.org/ (or well movim!)
        
           | detaro wrote:
           | > _gather the XEPs and put it into XMPP 3.0_
           | 
           | The yearly compliance suites try that - and then IMHO fail a
           | bit by offering too many variants.
        
             | MattJ100 wrote:
             | What variants do you think should not be included?
        
               | detaro wrote:
               | That's of course the tricky question. To a degree it
               | might be a presentation thing that they are all shown
               | equally.
               | 
               | E.g. _to me_ , I'd expect a headline profile that's
               | equivalent to "Advanced IM + Advanced Mobile". And I'm
               | not sure the split into "Basic/Advanced" esp for mobile
               | makes much sense. But I also can totally understand why
               | people thought each of the distinctions was valuable, but
               | that makes it feel a bit too comittee-style of trying to
               | make everyone happy by including their variant and over-
               | complicating the entire thing as a result. Certainly
               | something I've seen happen to other specifications.
        
           | leetnewb wrote:
           | https://docs.modernxmpp.org/
        
             | bongobingo1 wrote:
             | I think I've seen a comic about this.
        
           | kitkat_new wrote:
           | > XMPP needs to just sit the fuck down, gather the XEPs and
           | put it into XMPP 3.0, with few feature sets that every client
           | and server using it needs to support all at once, not picking
           | and choosing.
           | 
           | Matrix: https://spec.matrix.org/latest/
           | 
           | You are welcome
        
             | zaik wrote:
             | This isn't compatible with XMPP.
        
         | yamrzou wrote:
         | Unfortunately, I haven't yet found a mobile XMPP client that
         | has the same features as Movim.
         | 
         | For example, conversations.im still lacks Message Reactions,
         | Threads, and Publish-Subscribe:
         | 
         | https://github.com/iNPUTmice/Conversations/issues/3874
         | 
         | https://github.com/iNPUTmice/Conversations/issues/3303
         | 
         | https://github.com/iNPUTmice/Conversations/issues/1642
        
         | edhelas wrote:
         | XMPP is also integrating audio and video conferencing, there is
         | even some bridges with SIP available to be compatible with
         | VoIP.
        
           | jjrh wrote:
           | What are the options for jingle <-> SIP?
           | 
           | I'm unclear if ejabberd mod_sip is actually a bridge or
           | something else entirely and jigasi seems pretty jitsi
           | specific.
        
         | leetnewb wrote:
         | Figured I'd chime in how pleasantly surprised I was with how
         | well xmpp works for my narrow use case of an e2ee messenger
         | between family members. Snikket is packaged with STUN/TURN out
         | of the box, and to my surprise, a lot of family calls are going
         | through the xmpp client. Perhaps there are pain points that I
         | don't see, but xmpp's method for audio/video jingle works well.
        
       | groffee wrote:
       | Is there any reading on getting starting with building
       | decentralized apps?
        
         | throwaway0asd wrote:
         | Depends on your definition of decentralization. Everybody seems
         | to have either a personal best definition or simply aligns to
         | some trendy product (that likely isn't at all decentralized).
         | 
         | My personal definition of decentralization is peer to peer
         | without a server in the middle, like a telephone call. Nobody
         | seems to like that definition because it's extremely non-
         | commercial.
        
           | blitzar wrote:
           | > like a telephone call
           | 
           | Which is routed through centralized exchanges ...
        
             | throwaway0asd wrote:
             | The internet is composed of routers and switches, but those
             | aren't application servers. Telephones have a start point
             | and an end point without a telephone server in the middle.
        
             | 3np wrote:
             | Routed through, not terminated at. Important distinction.
             | Modern web is more like everyone calling through a handful
             | of major PBXes.
        
               | blitzar wrote:
               | If I pull the cable out of the back of the exchange / pbx
               | what happens? The phone doesnt work.
        
               | throwaway0asd wrote:
               | A router is not a server.
        
               | stoplying1 wrote:
               | In the context of censorship-resistant technologies, this
               | is both technologically and semantically incorrect.
        
               | Karrot_Kream wrote:
               | That makes no sense. A router is a box with routing rules
               | and a few NICs on it. I have one setup in my house that's
               | routing packets from an overlay LAN onto my home LAN. It
               | is very much a piece of infrastructure that I own, and if
               | I didn't control both ends, I would certainly want to be
               | careful with operating it. If packets were E2E encrypted,
               | I'd still be able to shut off my server and sever the
               | link.
               | 
               | If you want true P2P with no intermediaries, then you
               | need a direct P2P technology like a direct Ethernet
               | connection or an L1 radio link with encrypted packets
               | (and even this is fraught with a single RF collision
               | domain.) Otherwise you are also just using a "personal
               | definition of decentralization" that you gatekept about
               | in your comment.
        
           | selectnull wrote:
           | Agreed that everyone has their own personal definition. With
           | that in mind, I would never think of telephone as
           | decentralized, at least not more than any other service
           | provided by a company.
        
         | throwaway0asd wrote:
         | Let's assume you want to build a decentralized application
         | according to my personal definition of decentralization: peer-
         | to-peer with no application servers of any kind.
         | 
         | 1. To me this means IP address to IP address communication. But
         | but but IPv4 NAT address: for this there are TURN servers which
         | look pretty expensive. A TURN service provides application
         | layer routing, like a proxy, to route data to a respective node
         | on a private network.
         | 
         | 2. I don't want to pay for TURN or deal with the extra layer,
         | so I just write off nodes limited to a NAT IPv4 address on a
         | separate subnet.
         | 
         | 3. You need to account for session/relationship management. For
         | this I am using a tiered model whereby nodes are assigned a
         | group identity that allows for increases to access inversely
         | proportional to autonomy.
         | 
         | 4. You need some manner of trust validation. This is the piece
         | social media doesn't know how to solve without some sort of
         | centralized ledger. I am just using certificates and putting
         | this liability directly onto the users to properly execute a
         | text challenge response.
         | 
         | 5. In a peer-to-peer decentralized model both ends run a
         | listener for incoming connections on a fixed port. That sounds
         | amazingly close to the definition of a server, but each
         | connection is otherwise a client-to-client tunnel with a random
         | client port on both ends. That means one end creates a client
         | connection and points to a remote user running a listener. That
         | listener spawns a connection to a client port and performs the
         | checks to verify connection establishment, validation, anything
         | else. After that initial processing on the listener you are
         | left with a connection. If the connection is bidirectional both
         | ends must listen for incoming data equivalently and must manage
         | sessions and relationships equivalently.
         | 
         | Finally, you need to rethink how your prioritize software.
         | Commercially software obtains value from that which you own,
         | which is either a copyright on an application or data in a
         | database. In a decentralized world data is that which you are
         | willing to access or transmit and nothing more. The value is
         | purely functional to your application and nothing for you to
         | secure behind a subscription.
         | 
         | That said the value of a decentralized application comes down
         | to three things:
         | 
         | * automation - whether the application eliminates manual effort
         | 
         | * transmission - whether the application can connect over a
         | network in a way that resembles immediate local device access,
         | such as real time bidirectional communication
         | 
         | * utility - does the application do something amazing, which is
         | more than putting data on a screen. You have to think bigger
         | than a webpage or a spreadsheet.
         | 
         | Once you solve for transmission and OS challenges end to end
         | encryption is as simple as turning on your application.
        
           | Karrot_Kream wrote:
           | There are overlay network projects that try to solve this
           | problem. Take a look at Yggdrasil [1] which builds an overlay
           | E2E encrypted, P2P mesh network. While you don't need TURN
           | servers specifically, instead the overlay layer handles the
           | P2P proxying for you. It still suffers from the same problem
           | of necessitating intermediaries, and the fact that many peers
           | don't actually have their own ASN so they aren't at the top
           | of the network hierarchy, but makes it fairly "transparent"
           | to use the network as everyone is assigned both a /128 and a
           | /64 (for prefix delegation purposes) on the Yggdrasil
           | network.
           | 
           | At another level, Tor is essentially the same secure P2P
           | network. While onion routing is used to route packets,
           | fundamentally you don't need a publicly routable IPv4 or IPv6
           | address to receive packets. Instead peers onion route packets
           | until the server with the correct keys can decrypt the
           | packet.
           | 
           | [1]: https://yggdrasil-network.github.io/
        
         | elitepleb wrote:
         | crawl from https://gitlab.com/bluesky-community1/decentralized-
         | ecosyste...
        
       | spicybright wrote:
       | I like the idea but the landing page doesn't inspire confidence.
       | My browser window is half with on a normal macbook and most of
       | the text and images overlap making parts of it un-readable.
       | 
       | https://movim.eu/
        
         | cycomanic wrote:
         | works fine here on Firefox/Linux
        
           | spicybright wrote:
           | Here's what I'm seeing on firefox on macos
           | 
           | https://imgur.com/a/VGaeBEW
        
       | edhelas wrote:
       | Hi, Movim author here, happy to see Movim on the HN first page.
       | If you have questions do not hesitate :) !
       | 
       | You can also join the official chatroom:
       | movim@conference.movim.eu
        
       | djhaskin987 wrote:
       | Decentralized networks are very resistant to moderation. Don't
       | like my rules? Go to someone else's server. Also blacklisting
       | specific people from specific servers or whole servers in general
       | is an uphill battle a lot like the email spam battle. It's very
       | difficult to keep unwanted content out.
       | 
       | That was my experience when looking at Matrix and Mastodon. So I
       | am skeptical of projects like this.
       | 
       | That said the UI looks very nice and the idea very promising.
        
         | aidenn0 wrote:
         | I've run an XMPP server for a group of friends for years with
         | no spam. We just don't federate...
         | 
         | I've considered looking into maybe adding Movim into the mix;
         | one of my friends can't be on public social media due to job
         | reasons.
        
       | brightball wrote:
       | I still want to see a social platform based on email. :-)
        
         | zaik wrote:
         | Just post to your nearest mailing list.
        
         | guessbest wrote:
         | What are the minimum viable requirements to be a social
         | platform? Would it be different than a social media platform?
         | To me this would be like irc with commands then every sent
         | message/email would reply not to everyone but return something
         | like a html page where the user could modify text commands
         | based on the returned message.
        
           | brightball wrote:
           | Maybe an app (mobile or desktop) that connects to your email
           | account and looks for messages with a certain key, collates
           | them and creates a news feed + comments, then as you comment
           | and reply to things it sends platform messages to the
           | appropriate members?
           | 
           | As long as you aren't looking for a platform with promoted
           | follows vs just friends and family, it seems like a more
           | ideal way to do so without having to worry about anyone else
           | "owning" your network. Add encryption, etc as well if
           | desired.
           | 
           | Email seemed to be the safest and most widely available means
           | of async data exchange, with IMAP making it possible to sync
           | between mobile and desktop easily enough.
        
         | drran wrote:
         | Usenet? Mail lists? They were active and very useful 20 years
         | ago, until spam invented.
        
         | altilunium wrote:
         | Try this. It's an active and thriving email-based social
         | platform.
         | 
         | [1] https://groups.google.com/a/chromium.org/g/blink-dev
         | 
         | [2] https://lists.openstreetmap.org/pipermail/talk/
        
         | edhelas wrote:
         | Why not re-buiding the Web on SMTP as well, could be fun :p
        
       ___________________________________________________________________
       (page generated 2022-09-09 23:02 UTC)