Why Prav is Important

Prav has been an interesting development in the XMPP world, as well as the Indian free software community. I've been following the project and occasionally contributing to it.

But from its inception it has faced disapproving questions - if not outright hostility - from the XMPP community, especially the developers.

Why is Prav forking projects? Why is it running its own service? What does it even bring to the table?

Cooperative structure

From the beginning, the cooperative governance structure was Prav's most important characteristic to me.

Companies claim to "listen" to their customers and employees. Hardly any of them actually do. And if they do today, they could choose not to, at any time.

This is because a privately-owned company is a dictatorship. The owner has sweeping powers and is not answerable to anyone - not even customers. The owner can do anything if they think customers will let them get away with it.

The failings of the privately-owned company should be obvious to all, with the most recent examples being -

  • Privately-owned companies making record profits, their CEOs buying their second or third yatches and buying up islands, all the while inflating prices, decreasing quality and quantity of products, and forcing their workers to work longer hours and survive on poverty wages.
  • Privately-owned news and social media promoting disinformation, fascist and pro-billionaire propaganda, and hate against minorities. They have been quite effective in influencing elections across the world.
  • Private companies updating their "privacy" policies has become something of a meme in tech circles. Such decisions are usually unilateral, and it's almost a certainty that they're made to expand on how the company can exploit its user.

If companies are bad, typical BDFL or doocratic free software projects can be even worse from a non-programmer user's perspective. "You're not entitled to anything from the project" is the common rebuke.

But what if companies were legally required to give their users and workers a say in the issues that affect them? Be it income, working hours, remote work policy, privacy and data retention policies, product roadmap, and more?

That's exactly what cooperatives do. By definition, cooperatives give their customers, employees, and other stakeholders an equal 1 One person, one vote. The alternative I'm aware of is one share one vote, which grants disproportionate power to the richest stakeholders. and legally-enforced voice in their governance. If you want to fix the majority of ills in the world, starting a cooperative is the best constructive action you can take.

Prav is in the process of registering itself as such a cooperative. The difference is that what I've described above is a direct democracy, whereas Prav is aiming to be a representative democracy instead (similar to the OpenStreetMap Foundation) - Prav members won't make proposals and vote on them, but will instead elect board members to represent them and make decisions.

That's not nearly as empowering as direct democracy, but in a world of dictatorships (i.e. privately-owned companies), even representative democracy is a vast improvement.

(Incidentally, Prav is drafting its bylaws. Everyone is invited to read the draft, provide their input, and participate in the draft process.)

The mass adoption focus

The cooperative structure is great and all, but recent events made me realize that there's much more to Prav.

Not all projects are focused on mass adoption. Snikket, which inspired Prav to rebrand and improve existing clients, is clearly focused on tech-savvy users looking to self-host (or pay for hosting).

But Prav is. And that changes everything - from features to business model.

For example, we know that the pay-to-download model (used by Conversations, Monocles Chat, and Cheogram) is a tough sell - at least in India, where Prav is based.

If I've made a new acquaintance and am onboarding them to XMPP, I can't ask them to pay for the app right away - I need to let them get acquainted with not just me and the app, but also the ecosystem of channels and other people on the network. Given time, they are more likely to become paying customers.

With that in mind, a free demo or subscription model is preferable. And Prav is aiming to run on a subscription model.

The focus on mass adoption is really what enables the rest of the aspects I will now describe. XMPP needs someone covering this base, and Prav is stepping up to the challenge.

A uniform and foolproof XMPP experience

Of late, I've spent a lot of time talking to people on the Fediverse, trying to get users of WhatsApp, Telegram, Signal, and Matrix to move to XMPP.

The main complaint I hear is that XMPP clients and servers have too many differences in features and UX. You have to know what clients and services to use, and which ones to avoid.

And even after you know the clients to use, there's still the problem of feature parity.

  • If I want easy onboarding, I have to choose Quicksy - and forget about message retraction, moderation, and the hundred other enhancements present in Cheogram and Monocles Chat.
  • If I want group AV calls, I have to choose Dino. But if I want an otherwise featureful desktop client, I have to choose Gajim and live without group calls.
  • If I want threads, I have to use a mobile client. People on desktop clients make threads less useful, because desktop clients don't support them.

The obvious solution to this is to improve existing clients and servers, so they have greater feature parity and a more uniform UX.

But you're also limited by how much upstream projects are willing to accept. As one example, the developer of a prominent Conversations fork noted that the PRs he made to Conversations were ignored, and sometimes re-implemented by upstream with no meaningful difference from his PRs.

And not all public servers will want to enable all modern XMPP features - it may even be unfair to expect them to.

So while improving clients, servers, and existing instances is important, sooner or later you will also need to take the Snikket route - fork existing projects, provide a consistent experience in all of them (upstreaming your changes wherever possible), and remove the client discovery problem. Running your own service removes the service discovery problem.

This is why it's a good thing that Prav is working on rebranded and extended forks of Android and iOS Quicksy, and is running its own service.

Prav has not yet acquired the financial and human resources necessary to realize this vision. (Help welcome.) But this is a vitally important area to work on, and Prav is one of the few projects making an effort in this direction.

Service and support

You've probably heard of Quicksy, the XMPP client and service uniquely suited to onboarding non-technical people -

  1. Unlike Conversations, Cheogram, and Monocles Chat, it's available for free on the Play Store and App Store.
  2. It uses your phone number for registration and recovery - no password to enter or forget. You just enter your phone number and an OTP.
  3. It has contact discovery to easily discover other Quicksy users through their phone numbers.

Quicksy is perfect at this task, and I'm grateful to its developer for providing such an option in the XMPP ecosystem, and also for making it freedom-respecting software.

For about a year, I've been onboarding people to XMPP using Quicksy. I was so dependent on it that "Quicksy" was almost synonymous with "XMPP" for me.

It was great…until recently, when a number of people whom I tried to onboard to Quicksy complained about not receiving their registration OTP.

Surprisingly, the Quicksy developer offered no solutions at all. All I could discern from his terse response was that there is no support for the Quicksy service. These users were left in the lurch, and so was I.

There's also something to be said about the moderation policies of the Conversations community channel, which acts as the primary point of support for Quicksy. It has no written rules whatsoever (I've known the owner to state in another channels that he considers them to be unnecessary) - so any mod can ban you without the faintest warning, and for no reason apparent to the other moderators. Your participation is entirely at the whim of the channel owner.

Fortunately, the federated nature of XMPP allows us to choose the server with the characteristics we like - including the quality of support.2 And Quicksy being freedom-respecting software allowed Prav to fork it rather than having to reimplement it from scratch.

I know the people behind Prav. They are also the ones behind the Free Software Community of India (FSCI) and the volunteer-run XMPP servers poddery.com and diasp.in/durare.org. They are friendly, are passionate about freedom-respecting- and decentralized software, and they are empathetic to users' needs.

They also enforce a formal CoC in their support channel. You're not randomly getting banned just because the owner woke up on the wrong side of the bed.3 "Smokey, this is not 'Nam, this is bowling - there are rules."

Conclusion

Some people have questioned the modus operandi and even the necessity of Prav in the past. For the longest time, I myself used to think that the cooperative aspect was the most important bit. But Prav is doing what nobody else is, and fulfills a unique and critically important role in the XMPP ecosystem.

You can think of Prav as the equivalent of New Vector Limited for XMPP - aiming to provide a uniform experience and helpful support, but also…

  1. instead of developing a new NIH protocol, Prav is building on existing standards;
  2. instead of making a new NIH client and server, Prav is rebranding and extending existing projects;
  3. instead of a dictatorship privately-owned company, Prav is a cooperative;
  4. instead of leveraging "open source" and providing proprietary servers for "nation-scale" deployments (wink wink), Prav is run by free software activists and is committed to software freedom.

If you like the sound of that, Prav is looking for developers, sponsors, designers, translators, and communicators. It's a friendly community, so go and see what you can do. They are also hosting their first conference - PravConf - in March. Check it out!