Skip to content

Developer Introduction

Welcome to Aether plugin development! This guide introduces you to building custom extensions for the Aether Platform.

Aether’s plugin system lets you extend the platform with:

  • Tabs: Add custom views to work units, customers, and other entities
  • Actions: Create buttons that trigger workflows or integrations
  • Widgets: Build dashboard components and sidebar tools
  • Columns: Add custom data columns to list views
  • Indicators: Display badges and status markers
  • Settings Pages: Create configuration interfaces

Aether uses an extension-based architecture with these key principles:

Plugins are completely isolated from the web app:

  • ✅ Plugins live in separate packages (packages/plugins/)
  • ✅ All shared UI comes from @aether/ui
  • ❌ Never import from apps/web/src

The core platform defines extension points where plugins can add functionality:

'work-unit.detail.tabs' // Add tabs to work unit details
'work-unit.header.actions' // Add action buttons
'dashboard.widgets' // Add dashboard widgets
// ... and more

Each plugin has a manifest that declares its extensions:

export const myPlugin: PluginManifest = {
slug: 'my-plugin',
name: 'My Plugin',
version: '1.0.0',
extensions: [
{
point: 'work-unit.detail.tabs',
plugin: 'my-plugin',
priority: 50,
extension: {
type: ExtensionType.TAB,
id: 'my-tab',
label: 'My Tab',
component: MyTabComponent,
}
}
],
};
  1. Create Plugin Package: Set up structure in packages/plugins/
  2. Build Components: Create React components using @aether/ui
  3. Define Manifest: Register extensions and handlers
  4. Add Server Logic: Optional tRPC routers for API endpoints
  5. Test: Verify in the platform
  6. Deploy: Publish to npm or install locally
  • Node.js 18+
  • TypeScript knowledge
  • React experience
  • Familiarity with tRPC (for server logic)
  1. Development Setup - Configure your environment
  2. Your First Plugin - Build a plugin in 10 minutes
  3. Plugin System Overview - Deep dive into architecture

Study our production plugins:

  • Timer Plugin: Complete example with tabs, actions, widgets, and server logic
  • Tasks Plugin: Complex UI with Kanban boards and drill-downs
  • Discussions Plugin: Real-time collaboration features

All plugin source code is available in packages/plugins/ in the repository.