Getting started making a Mod
A Mod consists of a manifest JSON file and optionally a backend which can handle requests from the Mod and make external requests. The Manifest contains metadata about the Mod, such as it's name and unique identifier, which Mod Elements it renders onto the page, and conditions under which to render them.
Our convention is to write Mods in TypeScript, for better autocompletion and legibility, with the Mods being built to JSON.
You can take a look inside the /mods
folder of this repo (opens in a new tab) to see how Mods work
Steps to make a new Mod
- Fork this repo (opens in a new tab)
- Create a new mod by duplicating an existing one in
/mods
or creating a new folder - Name your mod consistently between the folder name and the
slug
in themanifest.ts
file - Create the elements of your mod
- Add your mod to
/packages/mod-registry/src/index.ts
or load it directly into theRichEmbed
mods
array orCreationMod
renderers
- Add any api backend your mod needs to
/examples/api/src/app
- Submit a Pull request
Why create a Mod?
There's a couple reasons, depending on what your goals are:
- Drive usage: Get native integrations and distribution for your protocol or platform, to drive usage and visibility with a high conversion rate.
- Earn $: Mod creators will be able to token gate their Mods, charge a minting fee, earning minting revenues, and transaction fees when their Mod transacts, adding a financial incentive.
- Fun & Cred: For fun, to learn, scratch your own itch, or gain cred.
Types of Mods
There's currently two types of Mods supported:
- Rich-embed Mods
- Creation Mods
We're planning to support more types of Mods in the near future, including Action Mods and Full screen Mods.