This example app is a development tool for testing and managing plugins in the curatedotfun ecosystem. This app provides a local environment where you can test plugins, manage the plugin registry, and validate plugin functionality. Plugins are loaded at runtime and do not need to be installed.
Your plugin does not have to exist in this repository and can be added to the "registry" for usage via the UI.
- Install dependencies from the root directory:
bun install- Serve any remote plugins (
bun run devfrom root for this repository's offerings), then run the dashboard:
bun run start- Start your plugin's development server
- Add your plugin to the registry with:
- Unique name
- Local URL (e.g., http://localhost:3001/remoteEntry.js)
- Type (transform or distributor)
- Use the UI to test your plugin:
- For transform plugins: Test content transformation
- For distributor plugins: Test content distribution
- Make changes to your plugin and see them reflected in real-time
The plugin registry is managed through the UI or via the API endpoints:
- GET
/api/plugin-registry: Get the current plugin registry - POST
/api/plugin-registry: Update the plugin registry
Example plugin registry format:
{
"@curatedotfun/simple-transform": {
"url": "http://localhost:3005/remoteEntry.js",
"type": "transformer"
},
"@curatedotfun/telegram": {
"url": "http://localhost:3007/remoteEntry.js",
"type": "distributor"
}
}Plugins may require environment variables for configuration. Add these to your .env file:
OPENROUTER_API_KEY=your-key
TELEGRAM_BOT_TOKEN=your-token
NOTION_TOKEN=your-token
# Add other plugin-specific variables as neededThe app will automatically hydrate these variables in plugin configurations.
You can access them in config via {YOUR_ENV_KEY_NAME}