Skip to main content
Learn how to build applications that can serve multiple DRIP communities simultaneously. This guide covers the technical and business aspects of multi-realm app development.

Overview

Multi-realm apps are applications that can be authorized and used by multiple DRIP communities. Unlike realm clients that are tied to a single community, multi-realm apps can scale across the entire DRIP ecosystem.
This guide covers app creation, publishing, realm authorization, scopes, and distribution for DRIP Apps.

App Development Lifecycle

Creating Your App

1. Access the Developer Portal

1

Navigate to Developer Portal

Go to Admin > Developer in your DRIP dashboard
2

Switch to Drip Apps Tab

Click on the Drip Apps tab to manage your applications
3

Submit New App

Click Submit New App to start the creation process

2. App Configuration

You can create an API client and start building/testing your app before publishing. While your app is not published, its API client only works on your own realm. To allow other realms to authorize and use your app, you must publish it. Publishing enables other realms to authorize your app. App Store listing happens after manual verification via email to [email protected].
When creating your app, youโ€™ll need to provide:

Key Differences from Single-Realm Apps

Single-Realm Apps

  • Fixed realm context
  • Direct API key access
  • Immediate deployment
  • Simple authorization

Multi-Realm Apps

  • Dynamic realm context
  • App client credentials
  • Publishing required for cross-realm authorization
  • Complex authorization flow

Authorization Architecture

Realm-Level Authorization

Publishing your app enables cross-realm authorization. Each realm admin authorizes your app and grants scopes for their realm.

Managing Authorized Realms

Scopes and Permissions

  • Your app selects requestedScopes.
  • Realms grant those scopes during authorization per realm.
  • Changing requested scopes requires realms to reauthorize.
  • No platform-level scope approval at this time; all scopes are realm-granted.

Data Isolation and Management

Per-Realm Data Storage

Each realmโ€™s data should be properly isolated:

Cross-Realm Analytics

Aggregate data across multiple realms while respecting boundaries:

User Experience Patterns

Realm Selection Interface

Create a smooth realm selection experience:

Context-Aware UI

Adapt your UI based on available permissions:

Scaling Considerations

Database Design

Structure your database to handle multiple realms efficiently:

Caching Strategy

Implement realm-aware caching:

Business Model Considerations

Pricing Strategies

Different approaches for multi-realm apps:
Charge based on the number of authorized realms:
Charge based on total usage across all realms:
Charge based on features used across realms:

Revenue Tracking

Track revenue per realm for better insights:

Testing Multi-Realm Apps

Testing Strategy

Deployment and Monitoring

Health Checks for Multi-Realm Apps

Building something cool? Share your multi-realm app in our Discord community and get feedback from other developers! ๐Ÿš€

Creating Secure Installation URLs

For advanced app distribution, you can create encrypted installation URLs that include platform-specific data and expiration times.

Prerequisites

Encryption Key

You will need the encryption key provided for your app. This key is unique and ensures secure encryption.

Development Environment

Use a JavaScript environment (Node.js or browser console) to run the encryption logic.

Encryption Implementation

URL Parameters Explained

The type of platform youโ€™re integrating with:
  • discord - Discord servers
  • slack - Slack workspaces
  • teams - Microsoft Teams
  • custom - Custom platform integration
The unique identifier for the specific platform instance:
  • Discord: Guild/Server ID
  • Slack: Team/Workspace ID
  • Teams: Team ID
  • Custom: Your platformโ€™s unique identifier
Optional timestamp (in milliseconds) when the installation URL expires:
  • Helps prevent unauthorized installations
  • Recommended for sensitive integrations
  • Set to Date.now() + (minutes * 60 * 1000)

Example Output

When you run the encryption code, youโ€™ll get:

Security Best Practices

Keep Keys Secure

  • Never share your encryption key publicly
  • Store keys in environment variables
  • Rotate keys periodically
  • Use different keys for different environments

URL Expiration

  • Always set expiration times for sensitive URLs
  • Use shorter expiration times for production
  • Monitor for expired URL usage attempts
  • Provide clear error messages for expired URLs

Verify Integration

  • Test encrypted URLs before sharing
  • Verify decryption works correctly
  • Test with different platform types
  • Monitor installation success rates

Error Handling

  • Handle decryption failures gracefully
  • Provide fallback installation methods
  • Log encryption/decryption errors
  • Validate platform data before encryption

Verifying Authorization Programmatically

Each realm admin must explicitly authorize your app. You can check authorization and approved scopes via the API.

Next Steps

App Store Submission

Learn how to submit your multi-realm app to the DRIP App Store

Best Practices

Follow production-ready patterns for scalable apps

API Reference

Complete API documentation with all endpoints

Examples

Copy-paste code snippets for common use cases