Developer Introduction
Welcome to Aether plugin development! This guide introduces you to building custom extensions for the Aether Platform.
What Can You Build?
Section titled “What Can You Build?”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
Plugin Architecture
Section titled “Plugin Architecture”Aether uses an extension-based architecture with these key principles:
Constitutional Isolation
Section titled “Constitutional Isolation”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
Extension Points
Section titled “Extension Points”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 moreManifest-Based Registration
Section titled “Manifest-Based Registration”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, } } ],};Development Workflow
Section titled “Development Workflow”- Create Plugin Package: Set up structure in
packages/plugins/ - Build Components: Create React components using
@aether/ui - Define Manifest: Register extensions and handlers
- Add Server Logic: Optional tRPC routers for API endpoints
- Test: Verify in the platform
- Deploy: Publish to npm or install locally
Prerequisites
Section titled “Prerequisites”- Node.js 18+
- TypeScript knowledge
- React experience
- Familiarity with tRPC (for server logic)
Next Steps
Section titled “Next Steps”- Development Setup - Configure your environment
- Your First Plugin - Build a plugin in 10 minutes
- Plugin System Overview - Deep dive into architecture
Learn By Example
Section titled “Learn By Example”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.