Skip to main content
FrogBot Plugins take full advantage of the modularity of the FrogBot Config, allowing developers to easily inject custom—sometimes complex—functionality into FrogBot apps from a very small touch-point. This is especially useful for sharing your work across multiple projects or with the greater FrogBot community. FrogBot provides Official Plugins for common use cases. To extend FrogBot’s functionality in another way, you can build your own plugin. To configure Plugins, use the plugins property in your FrogBot Config:
Writing Plugins is no more complex than writing regular JavaScript. If you know the basic concept of callback functions or how spread syntax works, and are up to speed with FrogBot concepts, then writing a plugin will be a breeze.
Because we rely on a simple config-based structure, FrogBot Plugins simply take in an existing config and return a modified config with new fields, hooks, collections, admin views, or anything else you can think of.
Example use cases:
  • Automatically sync data from a specific collection to HubSpot or a similar CRM when data is added or changes
  • Add password-protection functionality to certain documents
  • Add a full e-commerce backend to any FrogBot app
  • Add custom reporting views to FrogBot’s Admin Panel
  • Encrypt specific collections’ data
  • Add a full form builder implementation
  • Integrate all upload-enabled collections with a third-party file host like S3 or Cloudinary
  • Add custom endpoints or GraphQL queries / mutations with any type of custom functionality that you can think of

Official Plugins

FrogBot maintains a set of Official Plugins that solve for some of the common use cases. These plugins are maintained by the FrogBot team and its contributors and are guaranteed to be stable and up-to-date. You can also build your own plugin to extend FrogBot’s functionality in another way. Plugins are changing every day, so be sure to check back often to see what new plugins may have been added. If you have a specific plugin you would like to see, please feel free to start a new Discussion.
For a complete list of Official Plugins, visit the Packages Directory of the FrogBot Monorepo.

Example

A plugin is a function with the type (config: FrogBotConfig) => FrogBotConfig | Promise<FrogBotConfig>. FrogBot runs plugins serially by their order, lowest first, and plugins with the same order run in plugins array order. Plugins built with definePlugin also have a slug and can read each other’s options; see Order, slug, and options. See Build your own plugin for the full guide. The base FrogBot Config allows for a plugins property which takes an array of Plugin Configs.
FrogBot Plugins are executed after the incoming config is validated, but before it is sanitized and has had default options merged in. After all plugins are executed, the full config with all plugins will be sanitized.
Here is an example what the addLastModified plugin from above might look like. It adds a lastModifiedBy field to all FrogBot collections. For full details, see how to build your own plugin.
Reminder: See how to build your own plugin for a more in-depth explication on how to create your own FrogBot Plugin.