Animated titles for Remotion
One hundred title presets, each one settable in any of twenty-four typefaces and open to its colours, its timing and its size. Written to be composed rather than configured, and every one is deterministic: the same frame renders the same pixels, every time.
New effects every month. The library keeps growing, and every title added is yours with the licence you already have.
Four decisions that took a while to get right, and that you inherit.
Remotion renders frames out of order and the player scrubs backwards. Anything
seeded with Math.random disagrees with itself. The gravity pack
simulates its whole timeline once and then only reads rows; every glitch and
every rain drop takes its randomness from a fixed seed. Two renders of the same
video are byte-identical.
A fixed font size with nowrap cannot know how wide the sentence it
was handed is. These measure, and shrink to fit, down to a floor: text
that has been shrunk past legibility is a defect nobody sees. Past the floor it
overflows, and overflowing is visible.
Sizes come from min(width, height) / 1080, not from the width. The
same title takes the same share of the frame at 1080×1920, 1080×1350,
1080×1080 and 1920×1080. Scale off the width and everything comes out
half-size the first time you go vertical.
Zero runtime dependencies. React, Remotion and matter-js are peer dependencies you already have. Nothing transitive arrives with it, which is what lets you run it inside a locked-down renderer.
Each card is the title as it ships, with its own defaults; open one to change anything, live. Grouped the way they are chosen: by what the effect does. Filter to one family, or search by id, by name, or by what a title is for.
Four steps from nothing to a title in your video. The first is free and needs no account: it lets whatever writes your Remotion code read this catalogue, every title and every prop with its real default, instead of inventing an animation.

Pick yours; the snippet changes with it. The server holds no account and no state, and never returns a line of a component.
The plugin brings the catalogue and a skill that knows how to compose with it. Run these inside Claude Code:
Or only the catalogue: claude mcp add --transport http remonster https://npm.remonster.io/mcp
In Claude on the web or the desktop app: Customize › Connectors, then + and Add custom connector. Name it Remonster and paste:
Then switch it on in a chat from + › Connectors. On a Team or Enterprise plan, an owner adds it under Organization settings › Connectors.
Add this to .cursor/mcp.json in your project:
Add this to .vscode/mcp.json in your project:
In a terminal:
Or in ~/.codex/config.toml: [mcp_servers.remonster] with url = "https://npm.remonster.io/mcp".
One payment of USD 69, for life. The email that arrives brings two lines for your .npmrc; the second one is the licence. What you get.
Paste the two lines into the .npmrc next to your package.json, then install as usual. There is no npm login.
Say what you want in words. The agent looks it up (list_titles, describe_title) and writes the JSX with title_snippet, with the duration asked of the title rather than guessed.
Rather click than type? Every title on this page has Install in Remotion Studio,
and the whole catalogue can live inside Studio, under Browse Elements:
Config.addElementLibrary({ url: 'https://remonster.io/', displayName: 'Remonster' });
in your remotion.config.ts.
No free tier and no trial, which is why every title above is moving on this page instead of sitting behind a signup. What you see is the whole of it.
Your credential, and the two lines of .npmrc that
go with it, arrive by email. Refundable for 14 days:
the terms.
.npmrc, and npm i @remonster/titles resolves.
Two lines in your own .npmrc, and the second one is the licence.
They arrive by email the moment you pay.
There is no npm login, and running it will fail. Nobody can
sign themselves up to this registry, which is what makes an account worth
selling, so there are no tokens to fetch: the credential is HTTP Basic and it
never expires. Everything outside the @remonster scope keeps
resolving wherever it did before.

A question before you buy, a licence to sort out, a bug, an idea for next month's effects: Monsty reads every one, and the answer comes to your email.