Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions rfcs/rfc-0000-pronouns.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
- Feature Name: Pronouns
- Start Date: (16/06/2023)
- RFC PR: None
- Tracking Issue: None
- Status: draft

# Summary

This change creates a pronoun field for Revolt.chat, this field will be attached to a users public profile information.


# Motivation

Pronouns have been requested by the community and are high up on the RFC list.

# Guide-level explanation

Currently users display their pronouns in their Profile content (bio) but this provides a cleaner solution to the problem. The aim of this change is to ensure that pronouns for a user can be easily seen and displayed inline with a users displayname / username.

# Reference-level explanation

The field `pronouns` will be added to the main `User` object, as well as the `PartialUser` and `FieldsUser` objects. (In practise this means that the pronouns field will be fetched for the `fetch_user` API route, and pronouns can be edited or removed from the `edit_user` API route.

The pronoun field (on a `User` will be an optional array of strings.

### Data representation in Rustlang
```rust
{
pronouns: Option<Vec<String>>
}
```

### Pronouns stored in JSON
```json
{
"pronouns": ["she", "her"]
}
```
For no pronouns the object will not be serialised
```json

```

Additionally, there will be database changes for pronouns to be fully implemented. The `Collection` shall contain an entry of every supported language (represented by an abbreviation) with an array of every valid pronoun for the language. This collection must also be accessible as an API route.

```bson
{
"language": "<string>",
"pronouns": ["<string>", "<string>", ...]
}
```
Comment on lines +44 to +51

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what should this be exactly? Set a list of pronouns to choose from based on the language you use?
Isn't that a bit limiting? Would apreciate some clarification here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The purpose for the collection is to stop trolls from using the feature to enter joke pronouns, as for language I've decided that it'll start with English only.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That determination should be up to a community to manage, not for the software itself to set restrictions.

Copy link

@Andre601 Andre601 Mar 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the end is Revolt not just a software, but also a Service-provider, as they themself provide a platform for you to join.
As such do they also have a responsibility to keep the platform safe and welcoming for people. And allowing this field to be anything a user wants only calls for abuse by other people, which can impact others negatively.

Communities should be able to manage things, yes. But I don't think that something like Pronouns should be left to them to handle.

This is all personal opinion and not a reflection of the Revolt Team's views and opinions!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could also be applied to a person's username, bio, all the comments they make, all the photos and videos they post. Server moderators are responsible for their communities today.

It can also be said in reverse, if someone wants their pronoun added and Revolt as a service as a whole does not approve it, that person will not feel "welcomed" to the Revolt service as a whole. Whereas if each server has the capability to either maintain an exhaustive list or turn off the restrictions, that person can feel at home in those communities.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And allowing this field to be anything a user wants only calls for abuse by other people, which can impact others negatively.

I really have to respectfully disagree. I believe it can easily be a form of artistic expression. I think this discussion is a little too focused on damage limiting the negative cases and isn't considering the positive cases.

Revolt includes moderation tools. Let the moderation tools also include reports for inappropriate pronouns for communities who want that.

Many people may not want to include their pronouns out of privacy concerns, or simply may not want the attention putting in their real pronouns may get. Being able to use the pronoun field to leave a cute message is fun!

Forcing users to select from a premade list creates ongoing technical debt for developers when communities who speak languages not thought of by the developers wish to converse in their language over Revolt and want to add their pronouns. There are over 7000 natural languages, and over 150 have a million speakers today. Only a small portion of those who wish to include their pronouns on their profile are going to open a github issue to expand the pronoun list.

Additionally, each language may have its own method of expressing gender pronouns that may not even be distinct words but instead are clitics. Is the German Genderstern going to be included, or just er/sie/es? This problem has significant depth.

Selecting from a list also limits conlanging communities, composed of those who construct artificial languages for fun. Some of those constructed languages are spoken as native languages today, the most popular of which being Esperanto.

Do not force the development team to become the arbiters of expression. Leave it up to communities to decide what is tasteful in their own community.

Less code for more expression.

  • Signed, a nonbinary linguist & programmer



# Drawbacks

As pointed out by users this system is prone to abuse, not only from users assigning themselves fake pronouns but for automated attacks. (e.g. bots scanning users accounts for neopronouns and harassing based on that data). And it has even been suggested that bots should not be allowed to access this data. However there is no clear answer on that yet.

# Rationale and alternatives

For the new web clients pronouns could be displayed as a field of the their profile similar to the new display for badges on Revolt, another option is to show a users pronouns after their displayname/username.

The former offers a more 'minimal' display for users messages while the latter is more effective as a tool, for ensuring that a user's pronouns are easily visible and more importantly; used and respected.


# Prior art

Pronoun systems have been created tested on many different platforms before Revolt.chat, here is a sample of those

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many other systems allow for length-limited free form text, such as github.com, codeberg.org, discord, Zoom, Slack, Mattermost, Mastodon, ...

The two examples currently listed are both corporate products of the same umbrella organisation. Is following Meta's corporate model Revolt's goal? I suspect not.

- Instagram
Instagram has a very high regarded pronoun system as it validates pronouns before applying them for a user.
- Facebook
Facebook's UI changes if a user adds pronouns to their profile, (changing from gender neutral to gender specific language), and this information is only made public if a user chooses for it to be so.


# Unresolved questions

The specifics for how to best represent and store data for pronouns in a way that is both simplistic and effective for MongoDB has not yet been confirmed.

Should access to pronouns be restricted to non bot accounts?
Should every user be able to see every other users pronouns or should this feature be restricted to those who are friended?

# Security concerns

N/A

# Future ideas

For Revolt clients in the future, there may be options for how pronouns are displayed on each user and perhaps multiple choices for a more customisable UI.