Pronouns service
Read time in minutes: 6On November 28, 2022, Heroku discontinued their free tier. This free tier had been a staple of the Internet and was widely used to host simple apps that don't need to be online 24/7. One of those apps was pronoun.is, a simple service that showed you the usage of third person personal pronouns in English, including some nonstandard/neopronoun sets. If you wanted to know how to use they/them, you could go to pronoun.is/they/.../themselves and see examples right there.
pronoun.is links are very common to see in bios on social media profiles, so it's very sad for me to see this go. I want to make it easy for people to share these usage examples with others for their reference and for your use in bio text, so I created pronouns.within.lgbt as a replacement.
The pronouns service
I created the pronouns service at
pronouns.within.lgbt to give people most of the
functionality of pronoun.is. With a few exceptions, you should be able to
replace pronoun.is
with pronouns.within.lgbt
in your social media bio. This
is a simple service written in Rust and running on fly.io. I
also added an api so that you can
integrate it with other applications or chatbots.
How it works
The pronouns service has a giant list of pronouns that it knows about. These pronouns were scraped from the data file that powers pronoun.is, as well as an extra set that I really care about. A python script transforms the table into a bunch of dhall files that are then read by the Rust program.
The Rust program will then reformat all of those entries into a hashmap where
the key is all of the pronouns in the group separated by slashes. For example,
the pronoun set for she/her
will have a key of she/her/her/hers/herself
.
When a user goes to something like
/she/her, the service will loop over the
entire hashmap for pronoun sets that start with she/her
. If it finds a match,
it returns that data.
Then you can use it like you would use pronoun.is.
DNS
After I moved off of Cloudflare last year, I moved all my DNS management into AWS Route 53 and I manage it with Terraform. I made a small terraform file that points to the fly.io deployment and applied it on stream.
Everything worked as expected.
Usage guide
Usually you can get away with a link such as pronouns.within.lgbt/she to get the pronouns and usage examples for she/her pronouns. There are a few cases where there are multiple sets that have the same initial pronoun, like xe/xer and xe/xem. If you get inconsistent results, you may want to be more specific.
There are some neopronouns that are not in the database. If this is the case,
then use the full form of /subject/object/determiner/possessive/reflexive
to
get a custom page with your pronouns of choice. For example, you can get the
pronouns for ce/cem
by going to
pronouns.within.lgbt/ce/cem/cer/cers/cemself.