Plugins

Plugins

Official plugins to extend Manic functionality.

Plugins

Plugins extend Manic's core functionality. The framework includes official plugins for styling, content, SEO, and more.

Installation

Each plugin is a separate package:

# Add plugins you need
bun add @manicjs/tailwind @manicjs/mdx @manicjs/seo @manicjs/sitemap @manicjs/mcp @manicjs/api-docs

Official Plugins


Using Plugins

1. Install

bun add @manicjs/[plugin-name]

2. Configure

Add to your manic.config.ts:

import {  } from 'manicjs/config';
import {  } from '@manicjs/tailwind';
declare function (?: <string, unknown>): unknown;

export default ({
  : [
    (),
    (),
  ],
});

3. That's It

Plugins automatically integrate with both dev server and build output. No additional setup required.


How Plugins Work

Plugin Interface

interface ManicPlugin {
  name: string;
  
  /** Bun plugin script - auto-injected */
  preload?: string;
  
  /** bunfig.toml snippet */
  bunfig?: string;
  
  /** Dev server hooks */
  configureServer?(ctx: ManicServerPluginContext): void | Promise<void>;
  
  /** Build hooks */
  build?(ctx: ManicBuildPluginContext): void | Promise<void>;
}

Build Context

During build, plugins can:

  • Inject HTML into <head> via injectHtml()
  • Emit static files via emitClientFile()
  • Access route information via pageRoutes and apiRoutes

Server Context

In dev server, plugins can:

  • Add routes via addRoute()
  • Inject link headers via addLinkHeader()
  • Inject HTML via injectHtml()

Creating Custom Plugins

See Plugin Development for creating your own plugins.


Version Compatibility

PluginVersion
@manicjs/tailwind1.0.0+
@manicjs/unocss1.0.0+
@manicjs/mdx1.0.0+
@manicjs/seo1.0.0+
@manicjs/sitemap1.0.0+
@manicjs/mcp1.0.0+
@manicjs/api-docs1.0.0+

On this page