Let’s face it: all of us need practice with using the right pronouns. Buddy is a chatbot who’s here to help!
Using your keyboard or mic, chat with Buddy to practice using someone’s pronouns. Buddy will keep track of your score and kindly remind you if you slip up! We can all feel comfortable and confident using pronouns if we take the time to practice.
I hope this can be an accessible, empathetic tool for people to practice using the right pronouns. Being misgendered hurts and misgendering someone you care about hurts. It shouldn’t fall on trans people to constantly remind others about their pronouns. By practicing with Buddy or a friend, anyone can use pronouns comfortably and confidently.
Please note that there’s a bug with scoring due to new updates to RiveScript, the scripting language I used for Buddy’s chatbot functionality. Whenever Buddy tries to add to or tell you your score, they encounter an error. That being said, your score will still appear correctly on the left sidebar.
It seems like the previously working <add> function no longer works. The <add> example in the RiveScript documentation returns an error.
+ give me 5 points
- <add points=5>I’ve added 5 points to your account.
When the above example script is plugged into the RiveScript playground, the following occurs:
User says: give me 5 points
RiveScript says: [ERR: Math can't 'add' non-numeric user variable 'points']You have been given 5 points. Your balance is: undefined.
Other known bugs
Buddy is not perfect by any means, so bugs exist. If you find a bug not listed below, please fill out this form to report it.
Buddy currently recognizes she/her, they/them, and he/him pronouns. Ideally, Buddy would recognize other pronouns like xe/xem too. Buddy doesn’t know how to help you practice talking about someone with multiple pronouns (like they/them and he/him).
Buddy won’t always notice if you misgender someone. Buddy sometimes thinks you are misgendering [name] if your reply includes words that include other pronouns besides [name]’s, such as “history” because it includes “his.” Buddy doesn’t notice if you misgender [name] if you use [name]’s pronouns in the same reply.
Buddy takes two turns to realize you’ve reached 5 points. They say “keep it up! your total score is now 5!” But says “congratulations! your total score is 5!” only after you respond.
Buddy may have trouble distinguishing “they” as misgendering someone with he/him or she/her pronouns. If you know someone’s pronouns are she/her, calling her they/them pronouns is still misgendering.
The code needs to be refactored!
This began as my Spring semester capstone project. After much deliberation in the Fall semester, I decided I wanted to build an interactive tool that could help trans people. The idea of practicing pronouns arose from talking to WashU professor Trevor Joy Sangrey who calls their mom to chat about friends who’ve recently changed pronouns. They told me, “When friends change pronouns, you have to do some work to think about them. I think we create buckets. So we’re shifting a person from one bucket to another.” 
Buddy creates a fun, casual atmosphere to take pressure off the learning process.
Have you chatted with Buddy? Please take a quick survey about your experience!
Process
Making Buddy, my capstone project, took the entire Spring 2021 semester. I could not have done it without the generosity of so many (listed towards the bottom).
My research included looking into pre-existing resources for practicing and learning about pronouns, talking to others about how they practice pronouns, and learning how to implement chatbot functionality using RiveScript and p5.js.
For the concepting phase, I created mad libs and empathy maps. Figuring out the (admittedly simple) design included making moodboards, sitemaps, and wireframes.
When it came time for development, I used a base code from The Coding Train, went through several rounds of usability testing, built out the chatbot conversation and the hosting website, and debugged again and again. In the beginning, I was intent on making Buddy a primarily verbal experience in which the user would speak into their mic and Buddy would listen and reply out loud. Unfortunately, Buddy could hear themself. You can see this and other hilarious mishaps in the progress screenshots above.
To launch, I created a large poster, “business” cards, and a feedback form.
How it works
Curious about my RiveScript code? Here’s a small part of the conversation flow for practicing with she/her pronouns.

> topic shepractice
    + (@she)|* (@she) *|(@she) *|* (@she){weight=10}
    % thanks for letting me know how did you first meet * try to use her pronouns in your reply
    - <add score=1>you’ve used <get subjectName>’s pronouns in 1 reply, so your total score is <get score>! see if you can get your total score to 5. so what was your first impression of her?
    + (@she)|* (@she) *|(@she) *|* (@she){weight=10}
    * <get score> == 5         => congratulations! your total score is 5! 🎊 would you like to continue chatting?{topic=endshepractice}
    - <add score=1>keep it up! your total score is now <get score>! how is she doing lately?
    - <add score=1>keep it up! your total score is now <get score>! what does she like doing?
    + *
    * <get score> == 5         => congratulations! your total score is 5! 🎊 would you like to continue chatting?{topic=endshepractice}
    - how is she doing lately? try to use her pronouns in your reply!
    - what does she like doing? try to use her pronouns in your reply!
    + (@they)|* (@they) *|(@they) *|* (@they)|(@he)|* (@he) *|(@he) *|* (@he)|them|they|their
    - <sub score=1>remember that <get subjectName>’s pronouns are she/her! your total score is now <get score> 💔
< topic

Translation:
begin topic shepractice
if user says she/her pronouns in response to “thanks for letting me know! how did you first meet name? try to use her pronouns in your reply,” add 1 point to score and say “you’ve used name’s pronouns in 1 reply, so your total score is score! see if you can get your total score to 5.” and ask user a question.
if user says she/her pronouns and user’s score is 5 points, say “congratulations! your total score is 5! 🎊 would you like to continue chatting?” and begin topic endshepractice. otherwise, ask user a question.
if user says anything and user’s score is 5 points, say “congratulations! your total score is 5! 🎊 would you like to continue chatting?” and begin topic endshepractice. otherwise, ask user a question.
if user says they/them or he/him pronouns, say “remember that name’s pronouns are she/her! your total score is now score 💔”
end topic shepractice

If I were to continue working on Buddy, the next steps would include hammering out bugs, expanding content (conversations, neopronouns, multiple pronouns), honing in on design and identity, and making more merch.
Other resources
Human Rights Campaign (HRC): Transgender Resources
See the full list on the Info page under “resources”!
Attribution
Design, writing, and development by me
Base code and tutorial from The Coding Train by Dan Shiffman
RiveScript by Noah Petherbridge
p5.js led by Moira Turner and created by Lauren Lee McCarthy
p5.speech library by R. Luke DuBois
DM Mono and DM Sans by Colophon Foundry, Jonny Pinhorn, and Indian Type Foundry. Used via Google Fonts
Material Icons by Google
Hosted on GitHub Pages
Special thanks
Thank you Jonathan Hanahan for your unfailing support, Trevor Joy Sangrey for your wisdom and the idea behind this project, Ben Kiel for introducing me to creative coding, Erika Harano for your patience and introducing me to DM Mono, August Tang for your mentorship, Out in Tech for hosting a mentorship program, Doug Shook for teaching me about clean code in CSE 237 (I wish this code was cleaner. Sorry Doug), Abram Siemsen for your endless JavaScript knowledge, Shreyas R. Krishnan and Jeff Pike for believing in me, and all Sam Fox professors for being generous and kind.

Thank you Ashley, Amy, Will Bates, Molly Needelman, Aaron Zemach, Eric Nylund, Melody, Aaron, John, and Kat for generously taking the time to go through testing with me.

Thank you Sonia, Mark, Luca, Max, Max, and Lane for your enthusiasm and TG meetings. Thank you Luka, Lisa, Amanda, Zoe, and the rest of SQSH for your time, support, and active listening workshops.

Thank you Jefferson Duan, Lucy Chen, Grace Park, Andriana Levytsky, Alec O’Brien, Trevor McKee, Clair Huang, Eugenia Yoh, Natalie Snyder, and the Sam Fox ’21 class (honorary or otherwise) for your camaraderie and grit. Truly.

Want to see more?

Back to Top