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].
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:Per-Realm Pricing
Per-Realm Pricing
Charge based on the number of authorized realms:
Usage-Based Pricing
Usage-Based Pricing
Charge based on total usage across all realms:
Feature-Based Pricing
Feature-Based Pricing
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
- Node.js
- Browser
URL Parameters Explained
platformType
platformType
The type of platform youโre integrating with:
discord- Discord serversslack- Slack workspacesteams- Microsoft Teamscustom- Custom platform integration
platformId
platformId
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
expirationTime
expirationTime
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

