|
6 | 6 |
|
7 | 7 | --- |
8 | 8 |
|
| 9 | +## 🏗️ Architectural Principle |
| 10 | + |
| 11 | +**Studio is a plugin platform, not a monolithic IDE.** |
| 12 | + |
| 13 | +- **This project:** Core infrastructure (plugin system, kernel, navigation, testing, routing) |
| 14 | +- **Designer plugins:** Developed in separate repositories as independent Studio plugins |
| 15 | +- **Plugin examples:** Object Designer, View Designer, Flow Designer, etc. are external plugins |
| 16 | + |
| 17 | +This approach ensures: |
| 18 | +- **Modularity:** Each designer is independently developed, tested, and versioned |
| 19 | +- **Maintainability:** Core framework stays lean and focused |
| 20 | +- **Extensibility:** Community can build custom designers without forking Studio |
| 21 | +- **Scalability:** Designers can be loaded on-demand, reducing bundle size |
| 22 | + |
| 23 | +**Reference Implementation:** See `packages/plugins/plugin-*` for plugin development patterns. |
| 24 | + |
| 25 | +--- |
| 26 | + |
9 | 27 | ## 📊 Current State (v4.0.4) |
10 | 28 |
|
11 | 29 | ### What's Working |
|
39 | 57 |
|
40 | 58 | ## 🗺️ Roadmap (2026 Q2-Q4) |
41 | 59 |
|
42 | | -### Phase 1: Foundation & Core UX (Q2 2026) — 6 weeks |
| 60 | +### Phase 1: Plugin Infrastructure (Q2 2026) — 6 weeks |
43 | 61 |
|
44 | | -**Goal:** Fix critical technical debt and establish solid foundations for future development. |
| 62 | +**Goal:** Build robust plugin infrastructure to support external designer plugins. |
45 | 63 |
|
46 | 64 | | # | Task | Priority | Effort | |
47 | 65 | |---|------|----------|--------| |
48 | 66 | | 1.1 | **Add URL Router** | 🔴 P0 | 1 week | |
49 | | -| | Integrate TanStack Router. Map views to URL paths: `/:package/objects/:name`, `/:package/metadata/:type/:name`. Enable browser back/forward. | | | |
| 67 | +| | Integrate TanStack Router. Map views to URL paths: `/:package/objects/:name`, `/:package/metadata/:type/:name`. Enable browser back/forward. Plugin-contributed routes. | | | |
50 | 68 | | 1.2 | **Component Testing Setup** | 🔴 P0 | 1 week | |
51 | | -| | Setup React Testing Library. Write tests for `ObjectDataTable`, `ObjectDataForm`, `AppSidebar`. Target: 30% coverage. | | | |
52 | | -| 1.3 | **Plugin Sidebar Groups** | 🟡 P1 | 3 days | |
53 | | -| | Replace hardcoded `PROTOCOL_GROUPS` with plugin-contributed `useSidebarGroups()`. | | | |
54 | | -| 1.4 | **Data Refresh Fix** | 🟡 P1 | 2 days | |
| 69 | +| | Setup React Testing Library. Write tests for `ObjectDataTable`, `ObjectDataForm`, `AppSidebar`, Plugin system. Target: 30% coverage. | | | |
| 70 | +| 1.3 | **Plugin Sidebar Groups** | 🔴 P0 | 3 days | |
| 71 | +| | Replace hardcoded `PROTOCOL_GROUPS` with plugin-contributed `useSidebarGroups()`. Enable plugins to register sidebar items. | | | |
| 72 | +| 1.4 | **Plugin Hot Reload** | 🟡 P1 | 3 days | |
| 73 | +| | Support plugin hot reload during development. Enable/disable plugins without page refresh. | | | |
| 74 | +| 1.5 | **Data Refresh Fix** | 🟡 P1 | 2 days | |
55 | 75 | | | Replace `setTimeout` hack with proper state invalidation / React Query refetch. | | | |
56 | | -| 1.5 | **Code Cleanup** | 🟢 P2 | 2 days | |
| 76 | +| 1.6 | **Code Cleanup** | 🟢 P2 | 2 days | |
57 | 77 | | | Remove stale `types.ts`, empty `app/dashboard/` directory. | | | |
58 | | -| 1.6 | **Object Field Editor (Basic)** | 🔴 P0 | 2 weeks | |
59 | | -| | Inline field editing with type picker. Add/remove fields. Basic validation. No drag-drop yet. | | | |
| 78 | +| 1.7 | **Plugin API Documentation** | 🟡 P1 | 3 days | |
| 79 | +| | Document StudioPlugin API, metadataViewers registration, hooks, and best practices. Create plugin starter template. | | | |
| 80 | + |
| 81 | +**Deliverable:** Production-ready plugin infrastructure for external designers. |
60 | 82 |
|
61 | | -**Deliverable:** Stable, testable, deep-linkable foundation + basic object editing. |
| 83 | +**Note:** Designer implementations (Object Designer, View Designer, etc.) will be developed as separate plugins in external repositories. |
62 | 84 |
|
63 | 85 | --- |
64 | 86 |
|
65 | | -### Phase 2: AI-Enhanced Metadata Editing (Q3 2026) — 8 weeks |
| 87 | +### Phase 2: AI Integration & Developer Tools (Q3 2026) — 6 weeks |
66 | 88 |
|
67 | | -**Goal:** Make metadata editing intuitive with AI assistance. |
| 89 | +**Goal:** AI-enhanced developer experience for metadata editing. |
68 | 90 |
|
69 | 91 | | # | Task | Priority | Effort | |
70 | 92 | |---|------|----------|--------| |
71 | 93 | | 2.1 | **AI Copilot Enhancement** | 🔴 P0 | 2 weeks | |
72 | | -| | Context-aware AI assistance. Generate fields from natural language. Explain field types. Suggest validations. | | | |
73 | | -| 2.2 | **Object Designer — Enhanced** | 🔴 P0 | 2 weeks | |
74 | | -| | Drag-and-drop field reordering. Type-aware property panels. Field grouping. Relationship visualization (basic). | | | |
75 | | -| 2.3 | **View Designer (Grid Only)** | 🔴 P0 | 2 weeks | |
76 | | -| | Visual column configurator. Drag-and-drop column reorder. Filter & sort presets. Live preview. | | | |
77 | | -| 2.4 | **Form Designer (Basic)** | 🟡 P1 | 2 weeks | |
78 | | -| | Section/column layout editor. Field placement. Widget selection. Preview mode. | | | |
| 94 | +| | Context-aware AI assistance. Plugin-aware code generation. Metadata explanation. Smart suggestions. Integration with designer plugins via API. | | | |
| 95 | +| 2.2 | **Command Palette (Ctrl+K)** | 🔴 P0 | 1 week | |
| 96 | +| | Global command search. Quick navigation. Plugin-contributed commands. AI-powered command suggestions. | | | |
| 97 | +| 2.3 | **Monaco Editor Integration** | 🔴 P0 | 2 weeks | |
| 98 | +| | Raw YAML/JSON/TypeScript editing. Schema-aware autocomplete. Inline Zod validation. Toggle between visual/code modes. Plugin-contributed language support. | | | |
| 99 | +| 2.4 | **Plugin Marketplace UI (Basic)** | 🟡 P1 | 1 week | |
| 100 | +| | Browse available designer plugins. Install/uninstall UI. Plugin metadata display. Version management. | | | |
79 | 101 |
|
80 | | -**Deliverable:** AI-assisted object & view design. Better editing UX than JSON. |
| 102 | +**Deliverable:** AI-powered IDE with plugin extensibility. |
| 103 | + |
| 104 | +**Note:** Actual designers (Object Designer, View Designer, Form Designer) are external plugins. |
81 | 105 |
|
82 | 106 | --- |
83 | 107 |
|
84 | | -### Phase 3: Developer Productivity (Q4 2026) — 6 weeks |
| 108 | +### Phase 3: Advanced IDE Features (Q4 2026) — 4 weeks |
85 | 109 |
|
86 | | -**Goal:** Tools that make developers more productive. |
| 110 | +**Goal:** Professional IDE capabilities. |
87 | 111 |
|
88 | 112 | | # | Task | Priority | Effort | |
89 | 113 | |---|------|----------|--------| |
90 | | -| 3.1 | **Command Palette (Ctrl+K)** | 🔴 P0 | 1 week | |
91 | | -| | Global command search. Quick navigation. Plugin-contributed commands. | | | |
92 | | -| 3.2 | **Monaco Editor Integration** | 🔴 P0 | 2 weeks | |
93 | | -| | Raw YAML/JSON/TypeScript editing. Schema-aware autocomplete. Inline Zod validation. Toggle between visual/code. | | | |
94 | | -| 3.3 | **Multi-Tab Interface** | 🟡 P1 | 1 week | |
95 | | -| | Open multiple metadata items. Tab management (close/drag). Unsaved indicators. | | | |
96 | | -| 3.4 | **Flow Designer (Basic)** | 🟡 P1 | 2 weeks | |
97 | | -| | Canvas-based node graph (ReactFlow). 5 core node types (start, CRUD, condition, HTTP, end). Basic execution trace. | | | |
| 114 | +| 3.1 | **Multi-Tab Interface** | 🔴 P0 | 1 week | |
| 115 | +| | Open multiple metadata items. Tab management (close/drag/split). Unsaved indicators. Plugin tabs support. | | | |
| 116 | +| 3.2 | **Plugin DevTools** | 🔴 P0 | 1 week | |
| 117 | +| | Plugin inspector. Performance profiling. Error logging. Hot reload status. Debug panel. | | | |
| 118 | +| 3.3 | **Version Control Integration** | 🟡 P1 | 1 week | |
| 119 | +| | Git diff viewer for metadata changes. Commit from Studio. Basic conflict resolution. | | | |
| 120 | +| 3.4 | **Plugin Starter Kit** | 🟡 P1 | 1 week | |
| 121 | +| | CLI scaffolding tool for creating new Studio plugins. Templates for common designer patterns (field editor, canvas, form builder). | | | |
| 122 | + |
| 123 | +**Deliverable:** Complete plugin development environment. |
98 | 124 |
|
99 | | -**Deliverable:** Professional IDE experience. Code + visual editing. Basic automation design. |
| 125 | +**Note:** External repositories can now build full-featured designers (Object Designer, Flow Designer, etc.) using the plugin infrastructure. |
100 | 126 |
|
101 | 127 | --- |
102 | 128 |
|
103 | 129 | ## 📅 Simplified Timeline |
104 | 130 |
|
105 | 131 | ``` |
106 | | -2026 Q2 ── Phase 1: Foundation & Core UX [6 weeks] |
| 132 | +2026 Q2 ── Phase 1: Plugin Infrastructure [6 weeks] |
107 | 133 | ├─ URL Router + Testing |
108 | | - └─ Basic Object Field Editor |
| 134 | + ├─ Plugin Sidebar Groups |
| 135 | + ├─ Plugin Hot Reload |
| 136 | + └─ Plugin API Docs |
109 | 137 |
|
110 | | -2026 Q3 ── Phase 2: AI-Enhanced Metadata [8 weeks] |
| 138 | +2026 Q3 ── Phase 2: AI Integration & Tools [6 weeks] |
111 | 139 | ├─ AI Copilot Enhancement |
112 | | - ├─ Object Designer (Enhanced) |
113 | | - └─ View + Form Designers (Basic) |
114 | | -
|
115 | | -2026 Q4 ── Phase 3: Developer Productivity [6 weeks] |
116 | | - ├─ Command Palette + Monaco Editor |
117 | | - └─ Multi-Tab + Flow Designer (Basic) |
| 140 | + ├─ Command Palette (Ctrl+K) |
| 141 | + ├─ Monaco Editor Integration |
| 142 | + └─ Plugin Marketplace UI |
| 143 | +
|
| 144 | +2026 Q4 ── Phase 3: Advanced IDE Features [4 weeks] |
| 145 | + ├─ Multi-Tab Interface |
| 146 | + ├─ Plugin DevTools |
| 147 | + ├─ Version Control Integration |
| 148 | + └─ Plugin Starter Kit |
| 149 | +
|
| 150 | +External ── Designer Plugins (Separate Repos) |
| 151 | + ├─ Object Designer Plugin |
| 152 | + ├─ View Designer Plugin |
| 153 | + ├─ Form Designer Plugin |
| 154 | + ├─ Flow Designer Plugin |
| 155 | + ├─ Dashboard Designer Plugin |
| 156 | + └─ Community Plugins... |
118 | 157 | ``` |
119 | 158 |
|
120 | 159 | --- |
@@ -170,22 +209,51 @@ export const myPlugin: StudioPlugin = { |
170 | 209 | |--------|------------------|---------|---------|---------| |
171 | 210 | | Component test coverage | 0% | 30% | 50% | 60% | |
172 | 211 | | Deep-linkable views | ❌ | ✅ | ✅ | ✅ | |
173 | | -| Metadata types with specialized UI | 1 (Object) | 2 (Object + View) | 4 (+ Form + Dashboard) | 6 (+ Flow + Agent) | |
174 | | -| AI assistance quality (1-5) | 2 (basic chat) | 3 (context-aware) | 4 (generates valid code) | 4+ (multi-step tasks) | |
175 | | -| Time to edit an object | 5 min (JSON) | 2 min (basic UI) | 1 min (enhanced UI) | 30 sec (AI-assisted) | |
| 212 | +| Plugin API stability (1-5) | 3 (evolving) | 4 (stable) | 5 (production) | 5 (documented) | |
| 213 | +| External plugins supported | 0 | 2-3 | 5-8 | 10+ | |
| 214 | +| AI assistance quality (1-5) | 2 (basic chat) | 3 (context-aware) | 4 (plugin-aware) | 4+ (code generation) | |
| 215 | +| Plugin development time | N/A | 2 weeks | 1 week | 3 days | |
176 | 216 | | Developer satisfaction (1-5) | 3 | 3.5 | 4 | 4.5 | |
177 | 217 |
|
178 | 218 | --- |
179 | 219 |
|
180 | | -## 🚫 What We're NOT Building (Yet) |
| 220 | +## 🚫 What We're NOT Building in Core Studio |
| 221 | + |
| 222 | +**Core Studio = Plugin Infrastructure Only** |
| 223 | + |
| 224 | +The following are **external plugin responsibilities**, not core framework features: |
181 | 225 |
|
182 | | -To stay focused, we're explicitly deferring these items: |
| 226 | +- ❌ Object Designer UI (external plugin) |
| 227 | +- ❌ View Designer UI (external plugin) |
| 228 | +- ❌ Form Designer UI (external plugin) |
| 229 | +- ❌ Flow Designer UI (external plugin) |
| 230 | +- ❌ Dashboard Designer UI (external plugin) |
| 231 | +- ❌ Agent Designer UI (external plugin) |
| 232 | +- ❌ Security/permission UI (external plugin) |
| 233 | +- ❌ Full Airtable Interface parity (external plugins) |
| 234 | +- ❌ Advanced automation designers (external plugins) |
| 235 | +- ❌ Enterprise-specific UI (external plugins) |
183 | 236 |
|
184 | | -- ❌ Full Airtable Interface parity (too ambitious) |
185 | | -- ❌ Complete security/permission UI (low priority) |
| 237 | +**Also Deferred:** |
186 | 238 | - ❌ Mobile/responsive mode (desktop-first) |
187 | | -- ❌ Real-time collaborative editing (complex) |
188 | | -- ❌ External plugin marketplace (premature) |
189 | | -- ❌ Advanced automation (approval processes, state machines, ETL) |
190 | | -- ❌ Complete AI agent designer (service-ai is still MVP) |
191 | | -- ❌ Enterprise features (audit, compliance, multi-tenant UI) |
| 239 | +- ❌ Real-time collaborative editing (complex, future) |
| 240 | +- ❌ Public plugin marketplace (Phase 3+) |
| 241 | + |
| 242 | +--- |
| 243 | + |
| 244 | +## 📦 Example Designer Plugins (External Repos) |
| 245 | + |
| 246 | +These are reference implementations to demonstrate plugin capabilities: |
| 247 | + |
| 248 | +1. **@objectstack/studio-object-designer** — Visual object & field editor |
| 249 | +2. **@objectstack/studio-view-designer** — Grid/Kanban/Calendar view configurator |
| 250 | +3. **@objectstack/studio-flow-designer** — Automation flow canvas |
| 251 | +4. **@objectstack/studio-dashboard-designer** — Dashboard layout editor |
| 252 | + |
| 253 | +Each plugin is independently: |
| 254 | +- Versioned |
| 255 | +- Tested |
| 256 | +- Documented |
| 257 | +- Distributed via npm |
| 258 | + |
| 259 | +Community can build custom designers following these patterns. |
0 commit comments