Skip to content

Commit 74bf3cc

Browse files
Claudehotlong
andauthored
docs(studio): clarify plugin-based architecture - designers are external
Agent-Logs-Url: https://github.com/objectstack-ai/framework/sessions/557f4f83-2ecc-44a8-bf93-d1539ae005e8 Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 1bcc371 commit 74bf3cc

1 file changed

Lines changed: 121 additions & 53 deletions

File tree

apps/studio/ROADMAP.md

Lines changed: 121 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,24 @@
66
77
---
88

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+
927
## 📊 Current State (v4.0.4)
1028

1129
### What's Working
@@ -39,82 +57,103 @@
3957

4058
## 🗺️ Roadmap (2026 Q2-Q4)
4159

42-
### Phase 1: Foundation & Core UX (Q2 2026) — 6 weeks
60+
### Phase 1: Plugin Infrastructure (Q2 2026) — 6 weeks
4361

44-
**Goal:** Fix critical technical debt and establish solid foundations for future development.
62+
**Goal:** Build robust plugin infrastructure to support external designer plugins.
4563

4664
| # | Task | Priority | Effort |
4765
|---|------|----------|--------|
4866
| 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. | | |
5068
| 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 |
5575
| | 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 |
5777
| | 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.
6082

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.
6284

6385
---
6486

65-
### Phase 2: AI-Enhanced Metadata Editing (Q3 2026) — 8 weeks
87+
### Phase 2: AI Integration & Developer Tools (Q3 2026) — 6 weeks
6688

67-
**Goal:** Make metadata editing intuitive with AI assistance.
89+
**Goal:** AI-enhanced developer experience for metadata editing.
6890

6991
| # | Task | Priority | Effort |
7092
|---|------|----------|--------|
7193
| 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. | | |
79101

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.
81105

82106
---
83107

84-
### Phase 3: Developer Productivity (Q4 2026) — 6 weeks
108+
### Phase 3: Advanced IDE Features (Q4 2026) — 4 weeks
85109

86-
**Goal:** Tools that make developers more productive.
110+
**Goal:** Professional IDE capabilities.
87111

88112
| # | Task | Priority | Effort |
89113
|---|------|----------|--------|
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.
98124

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.
100126

101127
---
102128

103129
## 📅 Simplified Timeline
104130

105131
```
106-
2026 Q2 ── Phase 1: Foundation & Core UX [6 weeks]
132+
2026 Q2 ── Phase 1: Plugin Infrastructure [6 weeks]
107133
├─ URL Router + Testing
108-
└─ Basic Object Field Editor
134+
├─ Plugin Sidebar Groups
135+
├─ Plugin Hot Reload
136+
└─ Plugin API Docs
109137
110-
2026 Q3 ── Phase 2: AI-Enhanced Metadata [8 weeks]
138+
2026 Q3 ── Phase 2: AI Integration & Tools [6 weeks]
111139
├─ 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...
118157
```
119158

120159
---
@@ -170,22 +209,51 @@ export const myPlugin: StudioPlugin = {
170209
|--------|------------------|---------|---------|---------|
171210
| Component test coverage | 0% | 30% | 50% | 60% |
172211
| 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 |
176216
| Developer satisfaction (1-5) | 3 | 3.5 | 4 | 4.5 |
177217

178218
---
179219

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:
181225

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)
183236

184-
- ❌ Full Airtable Interface parity (too ambitious)
185-
- ❌ Complete security/permission UI (low priority)
237+
**Also Deferred:**
186238
- ❌ 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

Comments
 (0)