Skip to content

Commit d27cde0

Browse files
authored
Merge pull request #647 from objectstack-ai/copilot/complete-development-roadmap-again
2 parents 5da8b7a + 0d5483e commit d27cde0

27 files changed

+4581
-54
lines changed

DX_ROADMAP.md

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
2323
| **IDE Autocomplete** | ⭐⭐⭐⭐ | Bundled `objectstack.json`, `.describe()` tooltips, 12 subpath exports |
2424
| **Error Messages** | ⭐⭐⭐⭐⭐ | Custom Zod v4 error map, "Did you mean?" fuzzy suggestions, `safeParsePretty()` |
2525
| **Helper Functions** | ⭐⭐⭐⭐⭐ | 6 `define*` helpers + `ObjectSchema.create()` + `Field.*` + strict `defineStack()` |
26-
| **Getting Started** | ⭐⭐⭐ | Docs exist but no interactive playground or `create-objectstack` wizard |
27-
| **Reference Docs** | ⭐⭐⭐⭐ | Field type gallery ✅, error catalog ✅, query cheat sheet ✅; still missing: Contracts docs, wire format examples |
28-
| **Examples** | ⭐⭐⭐ | 4 examples but `plugin-bi` is placeholder, "How to Run" incomplete, `examples/README.md` references non-existent `minimal-auth` |
26+
| **Getting Started** | ⭐⭐⭐ | Docs with prerequisites, troubleshooting, StackBlitz playground; no `create-objectstack` wizard yet |
27+
| **Reference Docs** | ⭐⭐⭐⭐ | Field type gallery ✅, error catalog ✅, query cheat sheet ✅, Contracts docs, wire format ✅, protocol diagram ✅, decision tree ✅, permissions matrix ✅ |
28+
| **Examples** | ⭐⭐⭐ | 4 examples with comprehensive READMEs, "How to Run" sections, StackBlitz playground link |
2929
| **Migration Story** | ⭐⭐⭐ | V3 migration guide exists; no automated `codemod` tooling |
3030

3131
### Audit Findings Summary (New Issues Discovered)
@@ -87,16 +87,16 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
8787

8888
### Phase 1 Checklist
8989

90-
- [ ] Create StackBlitz starter template from `app-todo`
91-
- [ ] Add "Try Online" button to spec README.md and docs site hero
92-
- [ ] Add "How to Run" section to each example README (app-todo, app-crm, app-host, plugin-bi)
93-
- [ ] Add prerequisites section to getting-started docs
94-
- [ ] Create first-run troubleshooting page
90+
- [x] Create StackBlitz starter template from `app-todo`
91+
- [x] Add "Try Online" button to spec README.md and docs site hero
92+
- [x] Add "How to Run" section to each example README (app-todo, app-crm, app-host, plugin-bi)
93+
- [x] Add prerequisites section to getting-started docs
94+
- [x] Create first-run troubleshooting page
9595
- [ ] Implement `create-objectstack` CLI wizard with 3 templates
9696
- [ ] Record 5-minute getting-started video
97-
- [ ] Fix `examples/README.md`: remove `minimal-auth` ghost reference, update metadata (version, count, date)
98-
- [ ] Fix `plugin-bi` example: add README.md, add package.json scripts, document purpose
99-
- [ ] Fix `app-host` README: use `pnpm dev` instead of `npm run dev`
97+
- [x] Fix `examples/README.md`: remove `minimal-auth` ghost reference, update metadata (version, count, date)
98+
- [x] Fix `plugin-bi` example: add README.md, add package.json scripts, document purpose
99+
- [x] Fix `app-host` README: use `pnpm dev` instead of `npm run dev`
100100

101101
---
102102

@@ -157,7 +157,7 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
157157
|------|---------|----------|--------|
158158
| Visual field type reference | Interactive page showing all 48 field types with live previews | 🔴 High | ✅ Done |
159159
| Field configuration reference | Per-type property tables (text: maxLength, pattern; number: min, max, precision) | 🔴 High | ✅ Done |
160-
| Field type decision tree | "Which field type should I use?" interactive guide | 🟡 Medium | ❌ Not started |
160+
| Field type decision tree | "Which field type should I use?" interactive guide | 🟡 Medium | ✅ Done |
161161
| Field validation rules per type | Default validation behavior for each field type | 🟡 Medium | ❌ Not started |
162162

163163
### 3.2 Error & Status Code Reference
@@ -166,17 +166,17 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
166166
|------|---------|----------|--------|
167167
| Error code catalog | All 41+ error codes with descriptions, causes, and fixes | 🔴 High | ✅ Done |
168168
| HTTP status mapping table | Error category → HTTP status → retry strategy | 🟡 Medium | ✅ Done |
169-
| Client-side error handling guide | Patterns for handling errors in React/Vue/vanilla JS | 🟡 Medium | ❌ Not started |
170-
| Server-side error handling guide | How to throw and format errors from plugins | 🟡 Medium | ❌ Not started |
169+
| Client-side error handling guide | Patterns for handling errors in React/Vue/vanilla JS | 🟡 Medium | ✅ Done |
170+
| Server-side error handling guide | How to throw and format errors from plugins | 🟡 Medium | ✅ Done |
171171

172172
### 3.3 Protocol Documentation
173173

174174
| Task | Details | Priority | Status |
175175
|------|---------|----------|--------|
176-
| Protocol relationship diagram | Visual diagram showing how Data → API → UI layers connect | 🔴 High | ❌ Not started |
176+
| Protocol relationship diagram | Visual diagram showing how Data → API → UI layers connect | 🔴 High | ✅ Done |
177177
| Query syntax cheat sheet | One-page reference for QuerySchema filters, sorts, pagination | 🔴 High | ✅ Done |
178-
| Wire format examples | JSON request/response examples for every API endpoint | 🟡 Medium | ❌ Not started |
179-
| Security permissions matrix | Object × Role × Permission visual table | 🟡 Medium | ❌ Not started |
178+
| Wire format examples | JSON request/response examples for every API endpoint | 🟡 Medium | ✅ Done |
179+
| Security permissions matrix | Object × Role × Permission visual table | 🟡 Medium | ✅ Done |
180180
| Backward compatibility policy | Versioning strategy, deprecation timeline, SemVer guarantees | 🟡 Medium | ❌ Not started |
181181

182182
### 3.4 Guide Improvements
@@ -185,35 +185,35 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
185185
|------|---------|----------|--------|
186186
| Common patterns guide | Top 10 patterns: CRUD, search, pagination, auth, file upload, realtime, etc. | 🔴 High | ✅ Done |
187187
| Troubleshooting / FAQ page | "My query returns empty" / "Validation fails but data looks correct" | 🟡 Medium | ✅ Done |
188-
| Data flow diagram guide | How data moves from defineStack → kernel → driver → database | 🟡 Medium | ❌ Not started |
188+
| Data flow diagram guide | How data moves from defineStack → kernel → driver → database | 🟡 Medium | ✅ Done |
189189
| Plugin development tutorial | Step-by-step: create a plugin, register services, respond to hooks | 🟡 Medium | ✅ Done |
190190

191191
### 3.5 Missing Documentation Sections (NEW — Audit Finding)
192192

193-
| Task | Details | Priority |
194-
|------|---------|----------|
195-
| Populate Contracts docs | `content/docs/references/contracts/meta.json` has `pages: []` — add pages documenting IMetadataService, IAuthService, IStorageService, etc. | 🔴 High |
196-
| Add `defineStudioPlugin` guide | Only `define*` helper not documented at guide level; add usage example to plugin-development guide | 🟡 Medium |
197-
| Error handling guides (client + server) | Best practice patterns for both client-side and server-side error handling | 🟡 Medium |
193+
| Task | Details | Priority | Status |
194+
|------|---------|----------|--------|
195+
| Populate Contracts docs | `content/docs/references/contracts/meta.json` has `pages: []` — add pages documenting IMetadataService, IAuthService, IStorageService, etc. | 🔴 High | ✅ Done |
196+
| Add `defineStudioPlugin` guide | Only `define*` helper not documented at guide level; add usage example to plugin-development guide | 🟡 Medium | ❌ Not started |
197+
| Error handling guides (client + server) | Best practice patterns for both client-side and server-side error handling | 🟡 Medium | ✅ Done |
198198

199199
### Phase 3 Checklist
200200

201201
- [x] Create field type gallery page with all 48 types
202202
- [x] Create per-field-type configuration reference tables
203203
- [x] Create error code catalog with 41+ error codes
204204
- [x] Create HTTP status mapping reference
205-
- [ ] Create protocol relationship diagram (visual)
205+
- [x] Create protocol relationship diagram (visual)
206206
- [x] Create query syntax cheat sheet
207-
- [ ] Add wire format JSON examples to protocol docs
207+
- [x] Add wire format JSON examples to protocol docs
208208
- [x] Create common patterns guide (top 10 patterns)
209209
- [x] Create troubleshooting / FAQ page
210210
- [x] Create plugin development tutorial
211-
- [ ] Populate Contracts docs section (currently empty)
212-
- [ ] Add field type decision tree ("Which field type?")
213-
- [ ] Add client-side error handling guide
214-
- [ ] Add server-side error handling guide
215-
- [ ] Add data flow diagram guide (defineStack → kernel → driver → DB)
216-
- [ ] Add security permissions matrix
211+
- [x] Populate Contracts docs section (currently empty)
212+
- [x] Add field type decision tree ("Which field type?")
213+
- [x] Add client-side error handling guide
214+
- [x] Add server-side error handling guide
215+
- [x] Add data flow diagram guide (defineStack → kernel → driver → DB)
216+
- [x] Add security permissions matrix
217217

218218
---
219219

@@ -363,13 +363,11 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
363363
```
364364
2026 Q1 (Completed)
365365
├── Phase 2: Schema DX Helpers [2 weeks] ✅ Complete — 6 define* helpers, error map, branded types, strict mode
366-
└── Phase 3: Documentation & Reference [3 weeks] 🔄 In Progress — 10/16 items complete
367-
368-
2026 Q1–Q2 (Active)
369-
├── Phase 1: First Five Minutes [2 weeks] → Playground, scaffolding, quick-start, example fixes
370-
└── Phase 3: Documentation (cont.) [1 week] → Contracts docs, wire format, protocol diagram, decision tree
366+
├── Phase 3: Documentation & Reference [3 weeks] ✅ Complete — 16/16 items done
367+
└── Phase 1: First Five Minutes [2 weeks] ✅ Complete (8/10) — Playground, quick-start, example fixes, prerequisites
371368
372369
2026 Q2–Q3 (Tooling Sprint)
370+
├── Phase 1: Remaining items [1 week] → create-objectstack CLI wizard, video walkthrough
373371
├── Phase 4: CLI & Tooling DX [2 weeks] → diff, doctor, lint, VSCode extension, codemod
374372
└── Phase 5: Studio as DX Hub [3 weeks] → Visual designer, code bridge
375373
@@ -418,4 +416,4 @@ This roadmap prioritizes improvements based on the **"Time to First Wow"** metri
418416

419417
**Last Updated:** 2026-02-12
420418
**Maintainers:** ObjectStack Core Team
421-
**Status:** 🔄 Active — Phase 2 ✅ Complete, Phase 3 In Progress (10/16 items), Phase 1 & 4 Ready to Start
419+
**Status:** ✅ Phase 1 Complete (8/10), Phase 2 ✅ Complete, Phase 3 ✅ Complete (16/16) — Phase 4–6 Ready to Start

content/docs/getting-started/index.mdx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,46 @@ Creating a SaaS product or multi-tenant application? ObjectStack provides enterp
9595
### Integration Engineers
9696
Connecting multiple systems? ObjectStack's protocol-driven approach makes it easy to map and transform data.
9797

98+
## Prerequisites
99+
100+
Before you start, make sure you have the following installed:
101+
102+
| Tool | Minimum Version | Check Command |
103+
|:---|:---|:---|
104+
| **Node.js** | 18.0.0+ | `node --version` |
105+
| **pnpm** | 8.0.0+ | `pnpm --version` |
106+
| **TypeScript** | 5.3.0+ | `npx tsc --version` |
107+
108+
<Callout type="info">
109+
**Why pnpm?** ObjectStack uses pnpm workspaces for monorepo management. Install it with `npm install -g pnpm` or `corepack enable`.
110+
</Callout>
111+
112+
## Common Setup Issues
113+
114+
### pnpm not found
115+
```bash
116+
# Install pnpm globally
117+
npm install -g pnpm
118+
# Or use corepack (recommended)
119+
corepack enable
120+
```
121+
122+
### TypeScript version mismatch
123+
ObjectStack requires TypeScript 5.3+. Update with:
124+
```bash
125+
pnpm add -D typescript@latest
126+
```
127+
128+
### Port 3000 already in use
129+
```bash
130+
# Find the process using port 3000
131+
lsof -i :3000
132+
# Kill it or use a different port
133+
PORT=3001 pnpm dev
134+
```
135+
136+
For more troubleshooting, see the [Troubleshooting & FAQ](/docs/guides/troubleshooting) guide.
137+
98138
## Next Steps
99139

100140
- [Design Principles](/docs/concepts/design-principles) - Understand the philosophy

0 commit comments

Comments
 (0)