🧩 Plugin Marketplace

Extend FlameCMS
with One Line

Official plugins for authentication, media, search, caching, SEO, commerce, and more. Install, configure, deploy.

πŸ”

Showing 16 plugins

πŸ”‘Auth
β˜…312

@flamecms/auth-oauth

OAuth2 social login for GitHub, Google, Discord, Twitter, and any custom provider. Plug-and-play with the built-in auth system.

v1.4.2
✨Auth
β˜…184

@flamecms/auth-magic

Passwordless authentication via magic links and one-time codes sent by email or SMS. Zero-friction login for your users.

v1.1.0
πŸ–ΌοΈMedia
β˜…278

@flamecms/media-cloudinary

Store, transform, and deliver media assets via Cloudinary CDN. Auto-resize, auto-format, and lazy-load out of the box.

v2.0.1
☁️Media
β˜…445

@flamecms/media-s3

Upload media to any S3-compatible storage (AWS S3, Cloudflare R2, MinIO). Configurable bucket, region, and ACL settings.

v1.3.5
πŸ”Search
β˜…201

@flamecms/search-algolia

Sync FlameCMS content to Algolia in real-time. Full-text search, faceted filtering, and typo-tolerance for your content.

v1.2.0
⚑Search
β˜…156

@flamecms/search-typesense

Self-hosted full-text search powered by Typesense. Sub-50ms search across millions of documents with no external SaaS dependency.

v1.0.4
πŸš€Cache
β˜…388

@flamecms/cache-redis

Redis-backed response cache for all API endpoints. Automatic invalidation on content writes. Up to 8Γ— throughput improvement.

v1.5.1
πŸ—ΊοΈSEO
β˜…229

@flamecms/seo-sitemap

Generate dynamic XML sitemaps and robots.txt files. Includes priority and changefreq hints derived from content update timestamps.

v1.1.3
πŸ“§Infra
β˜…341

@flamecms/email-nodemailer

Send transactional emails using any SMTP provider (SendGrid, Postmark, Resend). Templated emails with Handlebars/Mustache support.

v2.1.0
🌍Content
β˜…133

@flamecms/i18n-auto

Machine translation for FlameCMS content using DeepL or OpenAI. Translate on-save or on-demand via the admin panel.

v1.0.2
πŸ“‹Content
β˜…267

@flamecms/form-builder

Build contact forms, surveys, and lead capture forms directly in the admin. Submissions stored in PostgreSQL with webhook forwarding.

v1.2.1
πŸ’³Commerce
β˜…419

@flamecms/commerce-stripe

Stripe integration for product catalogs, checkout sessions, webhooks, and subscription management. Full type safety throughout.

v1.0.8
πŸ“ŠInfra
β˜…198

@flamecms/analytics

Privacy-friendly analytics dashboard in the admin panel. Page views, unique visitors, referrers β€” no cookies, no third-party scripts.

v0.9.5
πŸ“‹Infra
β˜…175

@flamecms/audit-log

Complete audit trail for every content create, update, delete, and auth event. Queryable log with actor, timestamp, and diff.

v1.1.0
πŸ””Infra
β˜…312

@flamecms/webhook

Configure webhooks to fire on any content lifecycle event. Retries with exponential backoff, delivery logs, and HMAC signing.

v1.3.2
πŸ‘οΈContent
β˜…241

@flamecms/draft-preview

Share secure preview links for draft content. Works with any frontend framework β€” Next.js, Nuxt, Astro, SvelteKit.

v1.0.3

Build Your Own Plugin

The FlameCMS plugin API is designed to be learnable in an afternoon. Export a single object, declare your hooks, and publish to npm. Your plugin can tap into any lifecycle event, add custom API routes, extend the admin panel, or add new field types.

  • βœ“ 30+ lifecycle hooks across content, auth, and API
  • βœ“ Custom field types with admin UI components
  • βœ“ Add Fastify routes under /api/plugins/:name
  • βœ“ Plugin config validated at startup with Zod
  • βœ“ Full TypeScript support and auto-generated types
my-plugin/index.ts
import type { FlameCMSPlugin } from 'flamecms'

export default {
  name: '@yourname/my-plugin',
  version: '1.0.0',

  config: {
    schema: z.object({
      webhookUrl: z.string().url(),
    }),
  },

  hooks: {
    'content:afterCreate': async ({
      doc, user, config, ctx,
    }) => {
      await fetch(config.webhookUrl, {
        method: 'POST',
        body: JSON.stringify({ doc, user }),
      })
    },
  },

  routes: [
    {
      method: 'GET',
      url: '/api/plugins/my-plugin/status',
      handler: async (req, reply) => {
        reply.send({ ok: true })
      },
    },
  ],
} satisfies FlameCMSPlugin