social.plus SDK enables comprehensive community creation with extensive customization options including privacy settings, content moderation controls, story configurations, and custom metadata. Build tailored community experiences that match your app’s specific requirements and user engagement goals.

Privacy Controls

Create public or private communities with configurable access

Content Moderation

Set up post and story moderation workflows

Custom Metadata

Add custom fields and properties for specialized communities

Media & Categories

Configure avatars, categories, and visual community branding
Communities can be created as public (discoverable by all) or private (invitation-only) with configurable post settings for content moderation, story interaction controls, and custom metadata to support specialized community features.

Create Community

The createCommunity() method establishes a new community with comprehensive customization options for privacy, content moderation, and branding. Create communities that perfectly match your app’s requirements and user engagement goals.

Parameters

ParameterTypeRequiredDescription
displayNameStringYesPublic display name visible to all users who can access the community
descriptionStringNoCommunity description explaining purpose and focus
isPublicBooleanNoCommunity visibility: true for public, false for private (default: true)
avatarImageNoCommunity avatar image for visual branding
categoryIdsArrayNoList of category IDs for community organization
postSettingsEnumNoContent moderation settings for posts
storySettingsObjectNoStory interaction and moderation configuration
metadataObjectNoCustom fields and properties for specialized features

Privacy Settings

SettingDescriptionDiscoveryJoin Behavior
Public CommunityDiscoverable by all usersVisible in search and browseCan join immediately or require approval
Private CommunityInvitation-only accessHidden from public discoveryRequires invitation or approval

Post Moderation Options

OptionDescriptionUse Case
ANYONE_CAN_POSTAll members can post freelyOpen communities with high trust
ADMIN_REVIEW_POST_REQUIREDPosts require moderator approvalControlled content communities
ONLY_ADMIN_CAN_POSTOnly moderators can create postsAnnouncement-only communities

Story Settings Options

Communities can be configured with specific story interaction settings to control user engagement and moderation:
SettingTypeDescriptionDefault
allowCommentBooleanEnable/disable comments on community storiestrue
let createOptions = AmityCommunityCreateOptions()
createOptions.setDisplayName("Test")
createOptions.setCommunityDescription("For testing")
createOptions.setPostSettings(.adminReviewPostRequired)
createOptions.setIsPublic(false)
createOptions.setMetadata(["test": "test-content"])

do {
    let community = try await communityRepository.createCommunity(with: createOptions)
} catch {
    // Handle error here
}

Best Practices

Community Setup: Start with basic settings and allow community owners to customize moderation and features after creation to avoid overwhelming the initial creation flow.

Creation Flow Guidelines

  1. Progressive Disclosure: Show essential settings first, advanced options later
  2. Default Values: Use sensible defaults to reduce decision fatigue
  3. Preview Mode: Allow users to preview community settings before creation
  4. Onboarding: Guide new community creators through setup process

Performance Optimization

  1. Image Optimization: Compress avatar images before upload
  2. Metadata Validation: Validate metadata structure client-side
  3. Async Creation: Handle creation asynchronously with loading states
  4. Error Recovery: Provide clear error messages and retry options