Is it possible to have a user join a channel but only have read permissions?
There isn’t any built in way to achieve this. That being said, you could utilize channel metadata to flag the users as read only, and then do a check when rendering that would prevent the user from sending. https://sendbird.com/docs/chat/v3/platform-api/guides/user-and-channel-metadata#2-create-a-channel-metadata