Whether to use UIKit or just use the Chat API and build UI yourself from scratch?


We recently started using the Sendbird UI Kit (JS / React variant). The out-of-the-box experience is great and offers quite an extensive chat application. Just as advertised :slight_smile:

However, our app requires additional functionality not available out-of-the-box in the UIKit. The feature is as follows: the option to create channel ‘folders’ and a feature to drag channels from the channel list into these ‘folders’. These folders are collapsible, expandable.

The UiKit offers a component, ChannelList. Is there a way to expand this component to provide the above functionality, or would you recommend using the Chat API and build something similar to ChannelList yourself from scratch? Simple extensions / changes to ChannelList seem easy enough. However, features that really require changes to the internal structure, like the described ‘folder’ system, prove difficult, at least at first glance.

Any recommendations?

We have more ‘custom’ features planned. I’ll give another example:

  • A ‘poll’ feature: a chat message that initially offers options, and after a click shows the poll results.

I guess we formulate the question more generally: if you need to stray far from what is offered out-of-the-box by the UIKit with ‘complex’ custom features, would you recommend skipping the UIKit all together? Or use the UIKit ‘partially’?

Thanks in advance.

Hi @vibonacci,

Welcome to the Sendbird Community. Unless you’re wanting to utilize the open-sourced version of the UIKit, you’re likely going to want to use the Core SDK. The UIKit is great if you need minimal customizations and don’t want to have to focus too much on logic.

1 Like

Thank you for the reply.

We have already made progress with the above described chat ‘folder’ system by using the UIKIt, while re-implementing the ‘ChannelList’ component ourselves.

I think it is clear for us now that using the UIKit as much as possible, while extending / replacing elements where needed, is in fact a solid solution.