Soooooo, a #Mastodon update. Toots can now be private, which means, visible only to your followers. In tandem with that, you can now "lock" your account, which means you'll be able to approve or reject followers, and the privacy setting would default to "private".

You can still toot publicly as a locked account if you wish. To strangers, locked accounts display only public/unlisted toots. Federation is wonky though

Currently no way for people on other instances to know that an account is locked, therefore they follow just like usual. But private toots currently don't federate at all, so the way this is handled, remote followers are simply not put on the follower list here. But they'll receive the public toots on their end.
Private toots cannot be boosted so the icon is greyed out. Locked accounts have a lock next to username on the profiles (but not in toots since it'd be confusing given locked accounts can make public toots)
I have temporarily removed the ability to "unlist" a toot from the UI (not the API) simply because I didn't want to mess with the UI components for this threeway setup
There's a change to the API though. It used to be that you add an "unlisted" param to the status creation call. Now it's a "visibility" param with the values "private", "unlisted" or "public".
What else? Blocking someone forces them to unfollow you locally (i.e. if they're a local user, they actually stop following you; if they're remote, it simply removes them from your follower list, for now)
All in all this is quite a big departure from how everything worked previously so I opted to release early and iron out the details after real-world use rather than wait until it's an even bigger and scarier change.
If you mention people in a private toot they won't get it as a notification or mention unless they're your followers

@Gargron tho also, with twitter rn, public accts replying to private accts often "leak" info with certain types of replies.

it's a tough problem for sure tho...

@Gargron thank you
@nanoha What programming languages you know?
@loki Hmm, various. PHP, JS, and C are the ones I've used most recently. None of these are particularly good languages. My favourite is probably Haskell. The most important mainstream ones I don't know are C++ and Ruby, probably.
@Gargron fix asap. there is already dissatisfaction expressed <_<
@Gargron if a toot is boostable, it's on the public timeline?