Plugin Development

Build extensions for Colibri

1 min read

Coming Soon: The plugin system is currently under development.

We’re designing a flexible plugin architecture that will allow you to extend Colibri’s functionality.

Planned Plugin Types

Metadata Providers

Create custom metadata providers to fetch book information from additional sources:

typescript
// Example plugin structure (not final)
export class CustomMetadataProvider implements MetadataProvider {
  name = "custom-provider";

  async searchByISBN(isbn: string): Promise<MetadataRecord[]> {
    // Your implementation
  }
}

Ebook Formats

Add support for additional ebook formats:

typescript
export class CustomFormatParser implements EbookParser {
  extensions = [".custom"];

  async parse(buffer: Buffer): Promise<EbookMetadata> {
    // Your implementation
  }
}

Storage Backends

Implement alternative storage backends:

typescript
export class CustomStorageBackend implements StorageBackend {
  async upload(key: string, data: Buffer): Promise<void> {
    // Your implementation
  }
}

Authentication Providers

Add new authentication methods:

typescript
export class CustomAuthProvider implements AuthProvider {
  name = "custom-auth";

  async authenticate(credentials: unknown): Promise<User> {
    // Your implementation
  }
}

Get Involved

We’re actively designing the plugin API and would love your input!

  • GitHub Discussions: Share ideas and requirements
  • Issues: Report use cases we should consider
  • Discord: Join our community chat

Join the discussion on GitHub