Skip to main content

Overview

AppFlowy is designed with extensibility in mind. While the plugin system is still evolving, AppFlowy supports various plugin types and integrations to enhance your workspace capabilities.
The plugin architecture is actively being developed. Check the AppFlowy GitHub repository for the latest plugin capabilities.

Plugin System Architecture

Current Plugin Types

AppFlowy’s plugin system supports several core plugin types:

Editor Plugins

Enhance document editing with custom blocks and tools

AI Plugins

Integrate AI services and local AI models

Database Plugins

Add custom views and data processing to databases

View Plugins

Create custom view types (Document, Grid, Board, Calendar, Chat)

Plugin Architecture

AppFlowy plugins are built using:
  • Dart/Flutter: For UI and cross-platform functionality
  • Rust: For backend logic and performance-critical operations
  • Plugin API: Well-defined interfaces for plugin integration
Plugin development requires familiarity with AppFlowy’s codebase. See the development documentation for technical details.

Built-in Editor Plugins

AppFlowy comes with several built-in editor plugins:

Content Block Plugins

1

Code Block

Syntax-highlighted code with 100+ language support
  • Line numbers (since v0.5.5)
  • Multiple themes
  • Copy code functionality
2

Callout Block

Highlight important information with custom icons and colors
  • Custom icon selection (since v0.8.7)
  • Nested lists support
  • Multiple color schemes
3

Math Equation

Inline and block math equations using LaTeX
  • Full LaTeX syntax support
  • Inline math equations (since v0.2.6)
4

Toggle List

Collapsible sections for better organization
  • Nested toggle lists
  • Toggle headings (since v0.7.3)

Media Plugins

Image Gallery

Drag-and-drop image support with gallery view (v0.6.6)

Video Embed

Embed videos in documents (v0.5.9)

File Upload

Attach files to documents and databases

Unsplash

Browse and insert images from Unsplash (v0.3.5)

Table Plugins

Simple Table (since v0.7.8):
  • Insert lists, images, quotes, callouts, and code blocks in cells
  • Drag to move rows or columns
  • Toggle header rows/columns
  • Distribute columns evenly
  • Adjust to page width
  • Available on mobile (v0.7.9)

AI Plugins

AppFlowy supports multiple AI integrations:

Cloud AI Providers

OpenAI

GPT-4, GPT-4.1, GPT-4.1-mini, GPT-5

Claude

Claude 3.7 Sonnet and other Anthropic models

DALL-E

AI image generation from text prompts (v0.8.1)

AppFlowy AI

Built-in AI service optimized for AppFlowy

Local AI Plugins

Ollama Integration (since v0.8.7):
  • Free local AI processing
  • No internet required
  • Privacy-focused
  • Support for custom models
1

Install Ollama

Download and install Ollama from ollama.ai
2

Configure in AppFlowy

Go to Settings → AI and select Local AI (Ollama)
3

Select Model

Choose from available Ollama models or download new ones
4

Start Using

Use Ask AI and AI Chat with local processing
Local AI is perfect for privacy-sensitive work and offline environments, especially in Vault Workspaces.

AI Features

  • Ask AI: Get AI assistance directly in documents
  • AI Chat: Have conversations with AI, including chat with files (PDF, Markdown, TXT)
  • AI Writer: Generate content with formatting options (list, table, text with images)
  • Custom Prompts: Load custom AI prompts from database pages (v0.9.2)
  • Prompt Library: Access pre-built prompts for common tasks (v0.9.1)

Database Plugins

View Type Plugins

AppFlowy databases support multiple view types:

Grid

Traditional spreadsheet-style database

Board

Kanban board for visual project management

Calendar

Timeline view for date-based information

Gallery

Visual card-based layout

Field Type Plugins

Custom field types in databases:
  • Text, Number, Date, Checkbox
  • Single-select, Multi-select
  • URL, Email, Phone
  • Files & Media (v0.6.9)
  • Relation (v0.5.3)
  • Checklist (v0.0.8)
  • Created At, Updated At (v0.2.0)
Each field type comes with its own editor and filter options, effectively acting as a plugin.

Integration Plugins

Publishing Plugins

Publish to Web (since v0.6.3):
  • Publish documents and databases to the web
  • Custom URLs for published pages (v0.7.3)
  • Navigation menu in published sites (v0.6.9)
  • Share links for easy distribution

Import/Export Plugins

Markdown

Import and export markdown files

CSV

Import up to 1,000 rows (v0.6.8)

HTML

Export documents as HTML

PDF

Export documents as PDF

Authentication Plugins

Multiple sign-in methods:
  • Email & Password (v0.9.1)
  • Magic Link (v0.5.5)
  • One-Time Password (OTP) (v0.8.9)
  • Apple Sign-in (v0.6.9)
  • Google Sign-in
  • Anonymous Sign-in (v0.4.4)

Theme Plugins

AppFlowy supports dynamic theme loading:

Built-in Themes

  • Default (Light & Dark)
  • Dandelion (v0.3.6)
  • Lemonade (v0.3.6)
  • Community themes

Custom Theme Plugin

1

Create Theme File

Use JSON format to define colors and styles
2

Upload Theme

Go to Settings → Workspace → Upload Custom Theme
3

Apply Theme

Select your theme from the dropdown
4

Share Theme

Share your theme file with the community
Check the AppFlowy Community Themes repository for user-created themes.

Developing Custom Plugins

Plugin development is an advanced feature. It requires knowledge of Dart/Flutter and Rust, as well as familiarity with AppFlowy’s architecture.

Plugin Development Resources

  1. Source Code: frontend/appflowy_flutter/lib/startup/plugin/
  2. Plugin Types: See plugin.dart:13 for supported plugin types
  3. Plugin Builder: Implement PluginBuilder interface
  4. Registration: Use registerPlugin() to add your plugin

Plugin Structure

Plugin Example Structure
abstract class Plugin {
  PluginId get id;
  PluginWidgetBuilder get widgetBuilder;
  PluginNotifier? get notifier;
  PluginType get pluginType;
  
  void init() {}
  void dispose() {}
}

Creating a Simple Plugin

1

Define Plugin Type

Choose or create a new plugin type (document, grid, board, etc.)
2

Implement Plugin Interface

Create a class that implements the Plugin abstract class
3

Create Widget Builder

Implement PluginWidgetBuilder to define the UI
4

Register Plugin

Call registerPlugin() in your app initialization
5

Test Plugin

Build and test your plugin in development mode

Plugin API

Key interfaces for plugin development:
  • PluginBuilder: Defines plugin metadata and creation
  • PluginWidgetBuilder: Handles UI rendering
  • PluginNotifier: Manages plugin lifecycle events
  • PluginContext: Provides context and callbacks
See frontend/appflowy_flutter/lib/startup/plugin/plugin.dart for complete API documentation.

Community Plugins

Finding Plugins

Community plugins are shared via:
  • GitHub: AppFlowy organization and user repositories
  • Discord: AppFlowy community Discord server
  • Forum: AppFlowy community discussions

Installing Community Plugins

Community plugins are not officially vetted. Install only from trusted sources and review code when possible.
1

Download Plugin

Get the plugin source code or package
2

Review Code

Check the plugin code for security and compatibility
3

Install Plugin

Follow plugin-specific installation instructions
4

Configure

Set up plugin settings as needed

Plugin Configuration

AI Plugin Settings

Settings → AI:
  • Select AI provider (OpenAI, Claude, AppFlowy AI, Local AI)
  • Configure API keys
  • Choose models
  • Set embedding models (for Vault Workspaces)

Plugin Status Indicator

In AI settings, you can see plugin status:
  • ✅ Connected and ready
  • ⚠️ Configuration needed
  • ❌ Error or disconnected
Plugin status indicators help you troubleshoot integration issues quickly.

Future Plugin Capabilities

AppFlowy’s plugin system is actively being expanded:

API Integrations

Connect to external services and APIs

Custom Views

Create entirely new view types

Data Processors

Add custom data transformation logic

Workflow Automation

Automate tasks and processes
Follow the AppFlowy blog and GitHub discussions for plugin system updates.

Troubleshooting Plugins

  • Check plugin compatibility with your AppFlowy version
  • Verify plugin files are in the correct location
  • Review logs for error messages
  • Try reinstalling the plugin
  • Check API key configuration
  • Verify internet connection (for cloud AI)
  • Ensure Ollama is running (for local AI)
  • Check plugin status indicator in settings
  • Validate JSON syntax in theme file
  • Check all required color values are present
  • Try default theme first, then reapply custom
  • Restart AppFlowy after uploading
  • Disable plugins one by one to identify conflicts
  • Check for duplicate plugin registrations
  • Update all plugins to latest versions
  • Report conflicts to plugin developers

Contributing Plugins

Want to create a plugin for AppFlowy?
1

Join the Community

Connect with other developers on Discord
2

Study the Codebase

Review existing plugins and architecture
3

Develop Your Plugin

Build and test your plugin locally
4

Share with Community

Share on GitHub and announce in Discord
5

Consider Contributing

Submit a PR to include your plugin in AppFlowy core
Check the CONTRIBUTING.md guide for contribution guidelines.

Next Steps

Customization

Customize themes, fonts, and appearance

Data Export

Learn about exporting and backing up data

Build docs developers (and LLMs) love