Skip to content
Community

iOS SDK

Build an in-app Community

Let customers share ideas, vote on what matters, join discussions, and hear directly from your team.

Enable and configure Community

Community is available in BTXClientKit 3.0.0 or later. Add .community to the enabled features and use BTXCommunityOptions to match the sheet to your product and team.

App startup
import BTXClientKit

BTX.configure(
    BTXConfiguration(
        publishableClientKey: "cfk_...",
        features: [.community],
        communityOptions: BTXCommunityOptions(
            title: "Acme Community",
            welcomeTitle: "Help shape Acme",
            welcomeMessage: "Share ideas, support what matters, and hear directly from our team.",
            teamDisplayName: "Acme team"
        )
    )
)
01

Present Community

Connect a Community entry in your app to BTX.community.present(). When no customer is identified, the SDK creates a random member identifier that is stored on the device and tied to the publishable client key. No name or email is sent.

Open Community
let result = BTX.community.present()

If your app already has accounts, identify the customer at sign-in to use that same identity in Community.

Optional account identity
BTX.identify(
    BTXCustomer(
        externalID: currentUser.id,
        name: currentUser.name,
        email: currentUser.email
    )
)

present() returns BTXCommunityPresentationResult. A failure identifies a disabled feature, missing configuration, or an unavailable presentation context. Use BTX.community.dismiss() only when the app needs to close the sheet programmatically.

  • Use the publishable client key created for the app's registered iOS bundle.
  • Present from a customer-initiated button or settings row.
  • Call BTX.identify only when you want Community tied to an existing account.
02

What customers can do

Community gives customers a place to share ideas and join product conversations without leaving your app.

  • Browse popular or recent ideas and share new ones.
  • Upvote ideas and see comment counts at a glance.
  • Comment on ideas, like comments, and reply to an original comment.
  • Recognize participants by their profile image or colored initial.
  • See team responses clearly identified with your configured team name and relative timestamps.
03

Match your app's theme

Community and Messenger are separate options, so pass the same BTXTheme to both when they should feel like one system. Community uses the SDK default theme when its theme is omitted.

Shared SDK theme
let appTheme = BTXTheme.dark

BTX.configure(
    BTXConfiguration(
        publishableClientKey: "cfk_...",
        features: [.messenger, .community],
        messengerOptions: BTXMessengerOptions(
            title: "Chat with Acme Team",
            teamDisplayName: "Acme team",
            theme: appTheme
        ),
        communityOptions: BTXCommunityOptions(
            title: "Acme Community",
            welcomeTitle: "Help shape Acme",
            teamDisplayName: "Acme team",
            theme: appTheme
        )
    )
)

On iOS 26, Community and Messenger use Liquid Glass. Earlier supported iOS versions use a matching native material.

04

Verify the integration

Run the app with a test customer and exercise the full path before shipping.

  • Open Community from the intended entry point in your app.
  • Create an idea, upvote it, and open its detail view.
  • Add and like a comment, then reply to an original comment.
  • Confirm your title, welcome message, team name, and theme appear as expected.
  • Confirm customer and team identities display correctly with your project data.