# Activity Development Guides Index

These guides include suggested development practices, SDK commands, and user flows for you to consider while building your Activity. These will help to provide your users with a consistent and clear experience while interacting with your application.

## Local Development

::::card-grid
:::card{title="Run Your Application Locally" href="/guides/development-guides-activities-local-development#run-your-application-locally"}
Get up and running with a local development application.
:::

:::card{title="Launch Your App from Discord" href="/guides/development-guides-activities-local-development#launch-your-application-from-the-discord-client"}
How to launch your app on mobile and desktop Discord clients.
:::

:::card{title="Setup URL Mapping" href="/guides/development-guides-activities-local-development#url-mapping"}
Configure the Discord proxy to allow network requests to necessary external endpoints.
:::

:::card{title="Logging" href="/guides/development-guides-activities-local-development#logging"}
How to use the various levels of logging while building your application.
:::
::::

## User Actions

::::card-grid
:::card{title="Open External Link" href="/guides/development-guides-activities-user-actions#open-external-link"}
Open an external link from within your app.
:::

:::card{title="Open Invite Dialog" href="/guides/development-guides-activities-user-actions#open-invite-dialog"}
Open the Application Channel Invite dialog within Discord.
:::

:::card{title="Open Share Moment Dialog" href="/guides/development-guides-activities-user-actions#open-share-moment-dialog"}
Open a dialog to share media from your application to a channel, DM, or GDM.
:::

:::card{title="Setting Up an Entry Point Command" href="/guides/development-guides-activities-user-actions#setting-up-an-entry-point-command"}
Configure a command that allows users to open your Activity from the App Launcher.
:::

:::card{title="Encourage Hardware Acceleration" href="/guides/development-guides-activities-user-actions#encourage-hardware-acceleration"}
Open a dialog to enable hardware acceleration for compute-intensive applications.
:::
::::

## Mobile

::::card-grid
:::card{title="Supporting Mobile Platforms" href="/guides/development-guides-activities-mobile#supported-platforms-web-ios-android"}
Update your application settings to support iOS and Android.
:::

:::card{title="Mobile Safe Areas" href="/guides/development-guides-activities-mobile#mobile-safe-areas"}
Ensure that your app's assets fall within mobile-safe areas.
:::

:::card{title="Mobile Thermal States" href="/guides/development-guides-activities-mobile#mobile-thermal-states"}
Respond to thermal state changes surfaced from iOS and Android.
:::
::::

## Layout

::::card-grid
:::card{title="Application Orientation" href="/guides/development-guides-activities-layout#application-orientation"}
Configure and subscribe to changes in application orientation.
:::

:::card{title="Application Layout Mode" href="/guides/development-guides-activities-layout#application-layout-mode"}
Subscribe to layout mode changes to update your application's user interface.
:::
::::

## Networking

::::card-grid
:::card{title="Activity Proxy Considerations" href="/guides/development-guides-activities-networking#activity-proxy-considerations"}
Working with our Activity Proxy
:::

:::card{title="Construct a Full URL" href="/guides/development-guides-activities-networking#construct-a-full-url"}
Generate a full URL when working with network requests.
:::

:::card{title="Using External Resources" href="/guides/development-guides-activities-networking#using-external-resources"}
Allow network requests to external resources from inside the Discord proxy.
:::

:::card{title="Security Considerations" href="/guides/development-guides-activities-networking#security-considerations"}
Keep things safe and secure in your Activity.
:::
::::

## Multiplayer Experience

::::card-grid
:::card{title="Instance Management" href="/guides/development-guides-activities-multiplayer-experience#activity-instance-management"}
Managing instances to ensure users join the same instance as their friends.
:::

:::card{title="Instance Participants" href="/guides/development-guides-activities-multiplayer-experience#instance-participants"}
Use the SDK to fetch the users currently connected to an instance.
:::

:::card{title="Render Avatars and Names" href="/guides/development-guides-activities-multiplayer-experience#render-avatars-and-names"}
Retrieve and render the usernames and avatars of users connected to your application.
:::

:::card{title="Preventing Unwanted Activity Sessions" href="/guides/development-guides-activities-multiplayer-experience#preventing-unwanted-activity-sessions"}
Validating activity sessions are via a Discord client before adding them to an instance's session.
:::
::::

## Growth and Referrals

::::card-grid
:::card{title="Prompting Users to Share Incentivized Links" href="/guides/development-guides-activities-growth-and-referrals#prompting-users-to-share-incentivized-links"}
Encourage your users to share links to your activity by adding tracking and offering rewards for engagement.
:::

:::card{title="Creating and Managing Custom Incentivized Links" href="/guides/development-guides-activities-growth-and-referrals#creating-and-managing-custom-incentivized-links"}
For off-platform sharing of rewards, promotions, or limited time experiences.
:::

:::card{title="Generating a Custom Link Within Your Activity" href="/guides/development-guides-activities-growth-and-referrals#generating-a-custom-link-within-your-activity"}
An API to be able to generate ephemeral links with a customizable embed.
:::
::::

## Assets & Metadata

::::card-grid
:::card{title="Setting Up Activity Metadata" href="/guides/development-guides-activities-assets-and-metadata#setting-up-activity-metadata"}
Best practices for configuring how your application shows up in Discord.
:::

:::card{title="Setting Up Art Assets" href="/guides/development-guides-activities-assets-and-metadata#setting-up-activity-art-assets"}
Best practices for configuring how your application shows up in Discord.
:::
::::

## Rich Presence

::::card-grid
:::card{title="Integrating Rich Presence" href="/guides/development-guides-rich-presence-using-with-the-embedded-app-sdk"}
Display live activity data on user profiles while they play your Activity.
:::

:::card{title="Rich Presence Best Practices" href="/guides/development-guides-rich-presence-best-practices"}
Design tips and a launch checklist for a polished Rich Presence integration.
:::
::::

## Production Readiness

::::card-grid
:::card{title="Cache Busting" href="/guides/development-guides-activities-production-readiness#cache-busting"}
Manage asset caching in your application and the Discord Activity proxy.
:::

:::card{title="Handling Rate Limits" href="/guides/development-guides-activities-production-readiness#handling-rate-limits"}
Stay within rate limits to keep the fun going in your Activity.
:::

:::card{title="Static IP Addresses" href="/guides/development-guides-activities-production-readiness#static-ip-addresses"}
Network routing considerations when preparing your Activity for production use.
:::

:::card{title="Backward Compatibility" href="/guides/development-guides-activities-production-readiness#backward-compatibility"}
Future-proof your application and support new commands as they become available in the SDK.
:::
::::

## Related pages

- [API Reference](./api-reference-index.md)
- [App Fundamentals](./app-fundamentals-index.md)
- [Best Practices](./best-practices-index.md)
- [Bots & Companion Apps](./bots-companion-apps-index.md)
- [Building Games](./building-games-index.md)
- [Building on Discord](./building-on-discord-index.md)
- [Change Log](./change-log-index.md)
- [Communities & Servers](./communities-servers-index.md)
- [Components](./components-index.md)
- [Core Concepts](./core-concepts-index.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
