> ## Documentation Index
> Fetch the complete documentation index at: https://learn.social.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Create and manage communities with configurable privacy, post moderation, membership workflows, roles, and content controls.

Use the community SDK APIs to create communities, manage membership and roles, configure posting rules, and build discovery flows. Communities support public and private access modes, discoverability settings, join approval where configured, role-based permissions, and post or story moderation settings.

<Tip>
  **Looking for a step-by-step walkthrough?** The [Community Platform](/use-cases/social/community-platform) guide walks you through building communities with membership, governance, and moderation end-to-end.
</Tip>

## Core Capabilities

<CardGroup cols={2}>
  <Card title="Community Discovery" icon="magnifying-glass">
    Query, search, sort, and filter communities by membership, category, tags, and keyword
  </Card>

  <Card title="Membership Management" icon="users">
    Join, leave, add, remove, query, ban, mute, and role workflows
  </Card>

  <Card title="Content & Moderation" icon="shield-check">
    Post settings, role-based permissions, reporting, and moderation actions
  </Card>

  <Card title="Administrative Tools" icon="gears">
    Community categories, metadata, tags, counts, and status fields
  </Card>
</CardGroup>

<Info>
  Community objects expose fields for identity, visibility, membership, moderation settings, tags, categories, counts, and status. Start with the fields your product needs, then add governance options as your community flows become clearer.
</Info>

## Community Architecture

Communities in social.plus group posts, members, roles, and moderation settings under a single community object. Use communities for forums, interest groups, private spaces, announcement areas, and other social areas that need membership and content controls.

### Core Components

<Tabs>
  <Tab title="Identity & Branding">
    **Visual Identity**

    * Display name and description
    * Avatar and visual branding
    * Official verification status
    * Custom metadata fields

    **Discoverability**

    * Public/private visibility settings
    * Search tags and categorization
    * Query, search, trending, and recommended collections where supported
    * Category-based organization
  </Tab>

  <Tab title="Membership & Access">
    **Access Control**

    * Public vs private community types
    * Join approval requirements
    * Invitation workflows where configured
    * Membership state and access behavior

    **Membership Lifecycle**

    * User-initiated joining and leaving
    * Administrative member addition/removal
    * Role-based access and permissions
    * Member onboarding workflows
  </Tab>

  <Tab title="Content & Governance">
    **Content Management**

    * Post creation and moderation
    * Admin-only posting restrictions
    * Content approval workflows
    * Flagging and reporting systems

    **Governance Structure**

    * Role hierarchy and permissions
    * Moderation tools and enforcement
    * Community-level posting controls
    * Admin and moderator workflows
  </Tab>

  <Tab title="Counts & Status">
    **Community Counts**

    * Member count
    * Post count
    * Joined and deleted state
    * Flagged post/comment indicators

    **Operational Data**

    * Creation and modification timestamps
    * Deletion status
    * Official status
    * Associated channel ID
  </Tab>
</Tabs>

## Community Types & Access Models

social.plus supports community configurations for open discovery, controlled membership, and official community labeling:

<CardGroup cols={3}>
  <Card title="Public Communities" icon="globe">
    **Open Access**: Can be discoverable and joinable by users

    **Moderated Access**: Can require approval to join when configured

    **Content Visibility**: Build product-specific visibility behavior from community and post query results
  </Card>

  <Card title="Private Communities" icon="lock">
    **Controlled Access**: Intended for restricted membership flows

    **Discovery**: Usually hidden from general discovery depending on configuration

    **Membership**: Use invitation, add member, or approval flows that match your product
  </Card>

  <Card title="Official Communities" icon="star">
    **Official Flag**: Community objects can expose official status

    **Product Display**: Use this flag for badges or filtering if your product needs it

    **Administration**: Treat official designation as an admin-controlled field
  </Card>
</CardGroup>

## Common Community Fields

Community objects include identity, visibility, membership, moderation, organization, and status fields. Field availability and naming can vary slightly across SDKs, so use the model exposed by your target platform SDK.

### Core Properties

| Property      | Type   | Description                              |
| ------------- | ------ | ---------------------------------------- |
| `communityId` | String | Unique identifier for the community      |
| `channelId`   | String | Associated channel identifier            |
| `userId`      | String | ID of the user who created the community |
| `displayName` | String | Community name for displaying            |
| `description` | String | Description of the community             |
| `avatar`      | Object | Avatar object for community branding     |

### Access & Visibility Controls

| Property               | Type    | Description                                                    |
| ---------------------- | ------- | -------------------------------------------------------------- |
| `isPublic`             | Boolean | Is this community public?                                      |
| `isDiscoverable`       | Boolean | Whether this community can appear in discovery/search surfaces |
| `requiresJoinApproval` | Boolean | Whether joining this community requires approval               |
| `isOfficial`           | Boolean | Is this community official?                                    |

### Content & Moderation

| Property            | Type    | Description                                                           |
| ------------------- | ------- | --------------------------------------------------------------------- |
| `onlyAdminCanPost`  | Boolean | Only admins can post in this community                                |
| `postSettings`      | Object  | Community post settings such as review-required or admin-only posting |
| `hasFlaggedPost`    | Boolean | Indicates whether the community has flagged posts                     |
| `hasFlaggedComment` | Boolean | Indicates whether the community has flagged comments                  |

### Organization & Discovery

| Property      | Type   | Description                                                                |
| ------------- | ------ | -------------------------------------------------------------------------- |
| `categoryIds` | List   | IDs of categories associated with the community                            |
| `tags`        | List   | Tags used for filtering and search                                         |
| `metadata`    | Object | Custom fields for your product. Do not store sensitive personal data here. |

### Counts & Status

| Property       | Type     | Description                                      |
| -------------- | -------- | ------------------------------------------------ |
| `postsCount`   | Integer  | Number of posts in the community                 |
| `membersCount` | Integer  | Number of members in the community               |
| `isJoined`     | Boolean  | Is this community joined?                        |
| `isDeleted`    | Boolean  | Is this community deleted?                       |
| `createdAt`    | DateTime | Date/time when the community was created         |
| `updatedAt`    | DateTime | Date/time when a community is updated or deleted |

<Tip>
  For create and update flows, review the platform-specific community builder or options object. Some fields are read-only response fields, while others can be configured when creating or editing a community.
</Tip>

## Best Practices

<Warning>
  **Start Simple, Then Add Governance**: Begin with community creation, query, join/leave, and basic moderation. Add categories, roles, approval, and notification settings as the product flow requires them.
</Warning>

<AccordionGroup>
  <Accordion title="Community Design" icon="palette">
    **Planning & Purpose**

    1. **Clear Purpose**: Define community goals and target audience before creation
    2. **Appropriate Access Model**: Choose public/private settings based on community needs
    3. **Governance Planning**: Establish moderation policies and role structures early
    4. **Growth Strategy**: Plan discovery, onboarding, and member retention flows

    **Design Considerations**

    * Start with basic features and expand gradually
    * Consider your target audience's needs and behaviors
    * Keep privacy, moderation, and discovery decisions explicit
    * Design clear user journeys for joining and participating
  </Accordion>

  <Accordion title="Technical Implementation" icon="code">
    **Architecture & Development**

    1. **Data Modeling**: Understand the community object structure before building
    2. **Permission Architecture**: Implement proper role-based access controls from the start
    3. **User Experience**: Design intuitive flows for joining, participating, and moderating
    4. **Performance Optimization**: Plan for pagination and live collection updates

    **Development Best Practices**

    * Implement proper error handling for community operations
    * Use appropriate data validation for community properties
    * Design for mobile-first community experiences
    * Subscribe to live objects or live collections where supported by the target SDK
  </Accordion>

  <Accordion title="Community Management" icon="gear">
    **Operational Excellence**

    1. **Active Moderation**: Implement consistent content oversight and member management
    2. **Clear Guidelines**: Establish and communicate community rules and expectations
    3. **Member Engagement**: Foster participation through events, discussions, and recognition
    4. **Continuous Improvement**: Use available counts, moderation state, and your product analytics to iterate on community features

    **Management Strategies**

    * Establish clear moderation workflows and escalation paths
    * Create onboarding experiences for new community members
    * Implement feedback loops to understand member satisfaction
    * Regularly review moderation queues and community health signals
  </Accordion>

  <Accordion title="Growth & Scaling" icon="arrow-trend-up">
    **Sustainable Growth**

    * Focus on quality over quantity in early growth phases
    * Implement referral and invitation systems for organic growth
    * Use query, search, category, tag, trending, or recommended community flows where they fit the product
    * Create incentives for active community participation

    **Scaling Considerations**

    * Plan moderation resources as communities grow
    * Use SDK moderation actions and Console moderation workflows where appropriate
    * Consider community subdivision strategies for large groups
    * Monitor product metrics as membership increases
  </Accordion>
</AccordionGroup>

## Next Steps

Ready to start building? Choose your implementation path:

<CardGroup cols={3}>
  <Card title="Create Your First Community" href="./community-lifecycle/create-community" icon="plus">
    Step-by-step community creation guide
  </Card>

  <Card title="Implement Discovery" href="./discovery/query-communities" icon="magnifying-glass">
    Build community search and browsing
  </Card>

  <Card title="Set Up Governance" href="./organization/community-moderation" icon="shield-check">
    Configure roles, permissions, and moderation
  </Card>
</CardGroup>

<Info>
  **Need Help?** Start with the creation, query, membership, and moderation guides below, then add categories, roles, and notification settings as your use case grows.
</Info>
