Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invite tree system #47

Open
alexwennerberg opened this issue Dec 31, 2023 · 2 comments
Open

Invite tree system #47

alexwennerberg opened this issue Dec 31, 2023 · 2 comments

Comments

@alexwennerberg
Copy link
Contributor

My fork uses a very rudimentary invite system https://github.com/alexwennerberg/cerca

It would be interesting to have, alongside the site-based verification, a toggle-able 'invite tree' system, where people receive a small number of invites (like 5) and can invite other people. https://lobste.rs/ does something similar

to prevent spam (a malicious account getting infinite invites), we could do something like a 24 hour waiting period before invites work

@cblgh
Copy link
Owner

cblgh commented Jan 6, 2024

this has been something i've been musing on for some time, i don't have a solid design proposal yet but here's what i've been thinking:

  • it should be a choice for a forum to have invites or to not have invites
  • invites, when toggled-on, are distributed by admins to all users (and should probably be a 2-quorum admin action)
  • admins can, using some admin interface, send out x invites to all users
  • invites have a use-by date, at which point they expire
    • (i don't currently know the best way to structure expiration, probably something similar to the route rate-limiter + performing a check on restarting a cerca instance)
  • when registering an account by invite, the invitee is associated with the inviter
    • this information would be unused initially, but it could be displayed in a profile view (a user profile view should only ever be viewable by logged-in users)
  • invites could be cute: when a user decides to use one of their invites to "create an invitation code" they could write a little message tied to the invite and which will be displayed for the invitee on invite redemption "hey buddy welcome to the 2000s, again!"
    • they could also not be cute and we could do away with that complexity

views and open questions

  • should there be some limit to a forum's size at which point invite functionality turns off? what are the pros & cons of this
  • where are invite codes displayed for a logged-in user?
    • wherever they are displayed, it would be useful to have a bit of text saying "you are responsible for the people you invite, and their registration will be tied to your account. please let them know how this community works and what its boundaries are 🙏" or something like that
  • should admins be able to see how many invites have been redeemed in the current batch / how many are currently outstanding? how about negating as-yet-unredeemed invites ahead of their expiration?
  • how do users know that they have an invite to use? how can this be displayed in a minimally obtrusive manner?
  • there could be special (admin-only?) invite codes which have multiple-uses. an example: it could be posted as a local-only pinned post on merveilles's mastodon instance
    • it would be useful to see invites
  • expiration, again
  • where do admins create invites? what properties admins be able to control if any, on creating the batch of invites for all users: expiration time, amount of invites, total amount of invites redeemable in batch?
  • should there be a "delete invite tree" function where you can operate on a user and delete them + all the users they have invited? a high-powered tool, rarely used

i'll also note that in the current admin/mod work i'm doing, admins have the ability to create user accounts if given a username which then leads to automatically generating a password + outputting a copy-pastable credentials to send to the invited user out of band. this is effectively a low-powered invite system with slightly more friction involved

@alexwennerberg
Copy link
Contributor Author

* how do users know that they have an invite to use? how can this be displayed in a minimally obtrusive manner?

I think there would be value in a 'me' page. Other user configuration/admin stuff could be there too ("delete my account", add a bio, etc)

I think what I'm looking to do with e.g. fishbb is more liberal than merveilles -- ie, I think it'd be OK to give everyone an invite upon account creation + waiting a certain amount of time (1 week?) + making a few posts. I think this, and some of the other settings that you discuss here, could be configurable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants