Extending Storyden
Add custom behaviour to your Storyden site with plugins.
Storyden plugins let you add custom behaviour to your community site without editing Storyden itself.
If you want Storyden to better match how your community works, this is where that starts.
What is a Plugin?
Plugins in Storyden are just regular programs. Any program can be a plugin if it speaks Storyden RPC. There are two plugin modes:
- Supervised
- External
You can learn more about the architecture of plugins in the Plugin Model section.
Supervised plugins
Supervised plugins are much like browser extensions. You give Storyden a .zip file containing the plugin code and some metadata, Storyden unpacks this and runs the program on the configured runtime provider. It then supervises the process, recording logs and restarting it if it crashes.
Sprites
You can run Supervised plugins on Sprites! Sprites is a hardware-isolated execution environment for small workloads built by Fly.io. This is a great option for running plugins in a secure way without running untrusted plugins on the same machine as Storyden. Learn more about the Sprites runtime.
Read Security -> Runtime boundaries before installing third-party plugins.
Runtime-specific docs:
External plugins
External plugins run elsewhere, not supervised by Storyden itself. These plugins have two primary use cases:
- Development: when you're developing a plugin, you will run it as an external plugin to make the edit-run-debug cycle faster.
- Advanced and custom use cases: if your plugin needs its own software development lifecycle and deployment process, external plugins are effectively just normal software that you are responsible for managing.
External plugins can also just be other apps, you can import the Storyden SDK libraries or generate your own and embed into your app so it can communicate and behave as if it were a plugin.
However, Storyden will not handle log collection or restarting of external plugins. That's up to you.
For token handling and connection semantics, see Security -> RPC authentication model.
Manifest
Every plugin, supervised or external, has a manifest. If you distribute a plugin on the web, whether it's intended to be supervised or external, it must have a manifest describing its capabilities and requests. See Manifest for more information.
In this section
Go Plugin Tutorial
A small end-to-end build: event handler, API access, packaging, and install.
Plugin Model
How plugins fit into Storyden, what modes exist, and how sessions behave.
Manifest File
How to describe a plugin, what it needs and how to look after it.
Capabilities and Limits
What plugins can do today, and what they cannot do.
Security
Auth model, token handling, runtime boundaries, and operational safety notes.
API Overview
How the Storyden RPC communication channel works.
RPC Reference
Generated reference pages for every plugin RPC method, grouped by direction.