Start with UI/UX, then write code from scratch.
Technology is secondary. If there is need, it is possible to rewrite the code.
Ease of use: in familiar tools, e.g. an extension/plugin for Zoom meetings
(in both closed and open-source tools: as nymity powerup)
Threads - basic experience
Allow sub-threads, one deep. Essential to scale beyond 50 comments
Speed. “threads website seems a bit slow - can berkman fix that?”
Beauty: auto-color like Etherpad (distinguish participants in a thread)
Format, editing, markdown
Support markdown for formatting (some sort!)
Allow linebreaks within comments.
Use some standard text-format widget for chat entry (basic wysiwyg)
Docs + code
Publish the link to source (and how to submit an issue) on the public site
A guide next to text-area should include a markdown/emoji guide
Note available support for maintenance and future pull reqs / tasks
Make clear when you’re preserving your input name / what it is
Offer a way to generate a new name
Show what past names on your session have been
Clarify safety and privacy from data mining interests of third parties
Persist nyms w/in a thread. There’s a HarvardX implementation of Threads, which did this. [where is the code for this?]
Email, desktop, other? Cluster/limit to one every few minutes
Needed for asynchronous work. Nothing calls me back to see new posts.
Notifs are not anti-pseudonym.
(a) these can be done in the browser
(b) even if email notifs are chosen, can take precautions to explain to everyone they should use an address they are comfortable sharing, point to anon mail clients
(c) make notifs about threads, not individual posts
Without notifications I quickly fall out of the conversation.
This can work in a live class w/o notifications; hard beyond that!
If I was getting notifications I'd be happy to engage more frequently
Moderation and administration
Create an admin role community members can fill.
Let a group w/ a named set of rooms appoint admins to mod them
Offer mod options (hiding / deleting comments, blocking sessions)
Offer openness options (by invite, open to anyone, require email conf?)
Etiquette should be explained by facilitators, and monitored by mods
(already have inappropriate chats in zoom classrooms)
Group / room options
Add “temporary / persistent" to have things autohide in a day/week
Clean up rooms: one named directory per group, one room per thread
Strict security is not critical. Students have not expressed fear of speaking freely without firm assurances that identity could never be revealed; just want to speak freely in the short term around classmates.
On a spectrum of temporary but not permanent shielding.
Students are not particularly worried Harvard might breach the confidentiality of Threads at some later date.
Better for students and faculty to use fewer tools when they can, many faculty won't use it unless it fulfills other chat/discussion needs.
Simplify nym removal: currently 6 clicks from the home page. From nym-management view, let people tag a few for removal and generate new ones
Default to keeping some most recent nyms for logged-out sessions, at least keeping the last one you actually edited with. That way if you generate a new one but didn't mean to // want to return to it, you can.
Change footer font - the b in Github is odd
rate-limit attempts to login? easy channel for abuse
Keep track of past nyms even if you no longer have access to them, so you can find your contributions?
(if you've edited w/ more than 5 nyms under one login)
Are there any non-featured channels? If so, have a section heading for them. If not, "Featured Channels" on the landing page is confusing.
Make the version # of the header do something on click. Right now on mouseover of icon or version the text gets darker, but only the icon is clickable. (ideas: go to the same place, or go to the repo or manual?)
Compact mode -- make the left-hand column (list of threads) narrower, show only 1 line at most for each comment (hover or press to see the full comment)
Limit nym spam and abuse: in the database, associate each nym with its browser-session (so it's possible to later find and remove all from one session). Limit each session to commenting from 5 different nyms (log in for more, but then you need to explicitly choose + delete old ones first)
Nav links needed (in the header): "About Threads" "All channels"
For expanded-view threads: have the "up/down" icons and numbers float to the top of the div, rather than vertically centered in the middle
Allow a channel's public/private status to be changed after creation, until a first post has been posted. [after that you may not want to let it change to avoid confusion]
Mobile: add view that focuses on either thread-view or content-view. the other can be a thin bar on the R/L that can be swiped back into focus, or while reading a thread there could be a Reddit-style topnav that lets you jump back to thread view.
Style: support basic *bold* and _italic_ markdown in content
Sorting: have tiny toggle for Sort by: date / popularity / controversy (📅 | 🌟 | 🔥) -- for both threads [aggregate] and content w/in a thread
(oh, I see the 'eye'con switches to single-panel mode to expand content, that's nice - maybe enough for the 'mobile' suggestion above)
Readability: add different grayscale backgrounds to every 2nd or 3rd entry to make it easier to scan a long list. something like this: https://spreadsheetpoint.com/color-alternate-rows-google-sheets/
Privacy issue: google font [fonts.googleapis.com/css?family=Rock+Salt"]
Codebase deprecation: Ruby 2.4 no longer officially supported
Odd spellings in some names: archeic -> aic, epiphanic -> ous, crios -> Krios, remove Scilla,
Depressing names: tartarus, wrasse, hypnos, obliviax
Allow cycling through new nyms while logged in. Don't auto-save each one to your account, so you can find ones you like.
Don't use a trash icon next to your name at all times. confusing; and you can't remove the current name
If you are logged out and generate a nice nym, let you keep it by logging in. currently you are SOL if you already have a login
don't burn pseudos when just cycling through them, leave them for others
Wrap long words: in channel, thread titles if not in messages. (see examples in current test where this breaks things)
Editing: Allow changing of a thread or channel title (see also edit ideas under Feature Requests thread)
replace 'threads github' image in footer w/ text :)
when logged in, making a new name, and not saving it automatically: leave it as the current nym [visible up top] and only save once you write something with it.
When deleting a nym, make clear what happens to the comments associated with it.
Provide a way in the interface to get back to the list of channels, from within a channel. (clicking on the site logo is unintuitive and not really fitting)
Change "pseudonym" to "nym" in the interface: shorter and clear, allows it to appear in more places in menus
Long titles for channels and threads still wrapping (example on dev)
Add an admin role that can delete other people's posts. For both removing abuse or spam and for cleaning up technical issues.
When updating your own vote on a message: clicking anywhere on the ^⋁ region should remove the original vote (clicking again on ^ should remove it; clicking on ⋁ should also remove it). Currently, if you click on the opposite direction, nothing happens.
The option "Create a new pseudonym for one session (log out)" is confusing. I'd find it clearer if the two options were "log out" and "create a new nym on your account". I don't expect nym generation and logging out to happen in a single step
Separate report for a recurring problem (half of a previous bug above) -- if you make a nym you don't want, and click on the trash icon to remove it, that new nym is the ONLY one you cannot remove in the resulting UX. Fix this (leave it as an option, dropping you back to the previous nym)
Why build yet another tool?
Build a Nymity/Chatham plugin for an open source, privacy-preserving platform / chat app that offers basics (input, styling, notifs).
We are not just building a new tool: We are building a new classroom, everyone equal, free, in pseudonymity.
Thoughts on support and vision
Commitment to support is important. This will be based on a broader-based desire to use the tool. People can get the importance of nymity but not want it enough if the tool doesn't have other features they expect.
Goal: distill a conversation down to the core of the arguments. Let users take a position they may or may not agree with and debate the merits.
start with Threads for the Threads specific use case and then investment in that code then becomes a major leg up on more general purpose chat tools.
Students often took to Threads to present ideas/ask questions that may have otherwise gone unacknowledged without nymity. Thus, it is easy to see one way in which semi-anonymous spaces can enhance the overall educational experience – by increasing the likelihood that a diverse array of thoughts and opinions will be introduced to the classroom.
In hindsight, I believe I would have certainly benefited from the availability of a tool like Threads in many of my first-year courses. Thinking back to my criminal law course where I was one of four Black students, I would have undoubtedly been more willing to introduce new perspectives to certain discussions if doing so did not increase the likelihood that I would be tasked with the burden of speaking for my entire race. Consistently, as class discussions delved into heavily racialized topics like police brutality and mass incarceration, I was repeatedly disappointed by the ways in which such issues were approached with a complete disregard for the socio-political context within which these issues manifested. Time and time again, it was left to students of color to point out structural racism within the law, and before long, it became utterly exhausting to engage in said conversations.
Many of us also dealt with the reality that our peers would label us, because of our contributions, as combative, overly emotional, etc. A pseudonymous platform would have afforded the opportunity to maintain some level of control over self-presentation within the classroom, while remaining authentic to my experience as a Black woman in the US. Without needing to publicly “out” myself each time, I could have added my views to these discussions and in so doing, offered a perspective that was often absent.
Fear of anonymity on the net holds people back. Threads is ours, open code. It lets us to reify concepts of liberty, privacy, free thought, free expression, self governance, and sovereignty in a classroom. It offers agency, intimacy, and an environment to develop.
see past github issues (~10)
see past chat environs (AC et al)