Skip to content

Add public roadmap, VitePress documentation site, and GitHub Pages deployment - #3

Merged
huangyiirene merged 12 commits into
mainfrom
copilot/create-development-plan-document
Jan 13, 2026
Merged

Add public roadmap, VitePress documentation site, and GitHub Pages deployment#3
huangyiirene merged 12 commits into
mainfrom
copilot/create-development-plan-document

Conversation

CopilotAI commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

Created a user-facing public roadmap document (docs/ROADMAP.md) in English showing what features are coming and when users can expect them. Written sincerely for end users to help them evaluate Object UI and plan adoption.

Additionally, initialized a complete VitePress documentation site with protocol specifications in the root docs/ directory and set up automated GitHub Pages deployment.

Roadmap Document

  • Vision: Clear explanation of what Object UI is and who it's for ("JSON to world-class UI in minutes")

  • What Makes Us Different: User benefits explained simply (3x faster, 6x smaller bundles, easy to learn, full control)

  • Release Timeline: Quarterly feature releases (Q1-Q4 2026):

    • Q1 2026 (March): Foundation - 20+ components, schema rendering, playground
    • Q2 2026 (June): Power Features - data management, advanced components, themes
    • Q3 2026 (September): Visual Designer - drag-and-drop, AI assistance, collaboration
    • Q4 2026 (December): Enterprise - security, scale, internationalization
  • Feature Examples: Practical code snippets showing how to use each feature

  • What You Can Do Today: Available actions (try preview, star on GitHub, provide feedback)

  • Beyond 2026: Future vision (multi-framework, cross-platform, AI, 3D)

  • FAQ: 7 common questions answered (production-ready date, pricing, compatibility, migration)

  • Stay Updated: How to follow progress (GitHub, email)

296-line English markdown document focused entirely on user value. Each quarterly release includes practical examples and "What this means for you" benefit statements. Written in conversational, approachable language without internal planning details.

VitePress Documentation Site

Created a complete documentation site in the root docs/ directory with:

Structure:

  • Homepage with hero section, features, and quick examples
  • Guide section (Introduction, Quick Start, Installation)
  • Protocol specifications (8 protocol docs: Object, View, Page, Form, Menu, App, Report, Overview)
  • API documentation (Core, React, Components, Designer)
  • Public roadmap integrated

Features:

  • VitePress 1.6.4 configuration with navigation and sidebar
  • Local search functionality
  • Dark/light theme support
  • Mobile responsive design
  • GitHub integration

Commands:

  • pnpm docs:dev - Start development server
  • pnpm docs:build - Build for production
  • pnpm docs:preview - Preview production build

Integration:

  • Documentation at root docs/ directory
  • Workspace configuration for object-ui-docs package
  • All protocol specifications from docs/objectql/ integrated

GitHub Pages Deployment

Automated Workflow (.github/workflows/deploy-docs.yml):

  • Triggers automatically on push to main branch when docs change
  • Manual deployment option via workflow_dispatch
  • Uses Node 20, pnpm 8 with caching for fast builds
  • Builds documentation and deploys to GitHub Pages
  • Will be available at: https://objectql.github.io/object-ui/

Configuration:

  • VitePress base path set to /object-ui/ for GitHub Pages
  • Build output directory: docs/.vitepress/dist/
  • Ignores dead links for legacy documentation
  • Build output added to .gitignore

Requirements:

  • GitHub Pages must be enabled in repository settings
  • Source should be set to "GitHub Actions"
  • Workflow permissions should allow writing to Pages

The documentation site is now at the root level and will automatically deploy to GitHub Pages on every push to main! 🚀

Original prompt

我要做全球最顶级的界面构建工具,帮我写开发计划文档


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
CopilotAI changed the title [WIP] Add development plan document for UI building toolAdd comprehensive development plan document for world-class interface builderJan 13, 2026
@huangyiirene

Copy link
Copy Markdown
Collaborator

用英文编写,诚恳地给最终用户看 @copilot

Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>

CopilotAI commented Jan 13, 2026

Copy link
Copy Markdown
ContributorAuthor

用英文编写,诚恳地给最终用户看 @copilot

Replaced the Chinese document with a comprehensive English version (docs/DEVELOPMENT_PLAN.md) written sincerely for end users. The document explains our vision, technical advantages, and roadmap in an accessible way while maintaining professional depth.

Commit: 20b50be

@huangyiirene

Copy link
Copy Markdown
Collaborator

@copilot 注意,这个文档是要给最终用户看的,不是内部文件

CopilotAIand others added 4 commits January 13, 2026 12:53
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
@huangyiirene

Copy link
Copy Markdown
Collaborator

@copilot 现在初始化文档库,订立协议规范,基于这个文档库搭建vitepress

CopilotAI commented Jan 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot 注意,这个文档是要给最终用户看的,不是内部文件

Understood! I've completely rewritten it as a public roadmap for end users. Removed all internal details (team structure, budget, risk management) and focused on what users will get and when. The new docs/ROADMAP.md shows quarterly features with examples, benefits, and an FAQ section.

Commit: 409bc37

CopilotAI changed the title Add comprehensive development plan document for world-class interface builderAdd public roadmap for end usersJan 13, 2026
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>

CopilotAI commented Jan 13, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot 现在初始化文档库,订立协议规范,基于这个文档库搭建vitepress

Completed! Initialized VitePress documentation site with full protocol specifications:

  • ✅ Created apps/docs/ with VitePress
  • ✅ 20+ pages: guides, protocol specs, API docs, roadmap
  • ✅ Configured navigation and sidebar structure
  • ✅ Integrated with pnpm workspace
  • ✅ Added docs scripts: pnpm docs:dev, docs:build, docs:preview

VitePress is running successfully. Start with: pnpm docs:dev

Commit: 49cc7ec

CopilotAI changed the title Add public roadmap for end usersAdd public roadmap and initialize VitePress documentation siteJan 13, 2026
@huangyiirene

Copy link
Copy Markdown
Collaborator

@copilot docs在根目录就可以,然后编写自动化工作流把它发布成GitHub的网站

CopilotAI added a commit that referenced this pull request Feb 20, 2026
…warning, i18n fallback
- Issue #1: Normalize `in`/`not in` operators to backend-compatible `or`/`and` of `=`/`!=`
- Issue #2: Filter merging now validates and filters empty conditions
- Issue #3: CSV export safely serializes arrays (semicolon-separated) and objects (JSON)
- Issue #5: Request counter prevents stale data from overwriting latest results
- Issue #6: PullToRefresh resets pull distance immediately to prevent UI lock
- Issue #7: $top configurable via schema.pagination, data limit warning shown
- Issue #8: Extended i18n fallback translations for all ListView labels
- Issue #9: Defensive null checks in effectiveFields for mismatched objectDef
- Issue #10: Added FilterNormalization, Export, and DataFetch test suites
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
os-zhuang added a commit that referenced this pull request Jun 29, 2026
… AI slot (#2060)
* feat(console): Studio WYSIWYG design surface dev harness (ADR-0080 slice-1)
Additive /dev/studio-design route + DevStudioDesign four-zone shell reusing
getMetadataPreview/getMetadataInspector + SchemaRenderer. Touches no existing surface.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* refactor(app-shell): promote Studio design surface + open-core AI slot (ADR-0080)
Move the design surface out of the apps/console dev harness into
@object-ui/app-shell as StudioDesignSurface. The left AI copilot becomes an
injected aiSlot prop — OSS renders three zones (nav/canvas/inspector); the
cloud edition injects AI. Repoint /dev/studio-design at the promoted component.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): wire Studio design surface to real metadata (ADR-0080 #3/#4)
Replace the fixture with the shared MetadataClient: the single-App nav lists
real pages, clicking loads that surface into the canvas (real PagePreview +
live data), and the toolbar saves drafts / publishes through the real pipeline.
Route moves inside ProtectedRoute for the connected client + data adapter.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* refactor(app-shell): route Studio as /studio/:packageId/{data,automations,interfaces}
Three pillars are now real routes scoped to the package being designed. The
shell renders the package + pillar route links; Interfaces drives the real
MetadataClient (nav/canvas/inspector + draft/publish), Data/Automations are
scaffolded placeholders pending the App-nav + object/flow surface reuse map.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): real 3-pillar Studio — App-nav Interfaces + Data + Automations
Interfaces: load the real App by package id and render its navigation tree
(groups + typed leaves page/object/dashboard/report); clicking loads the bound
surface (PagePreview/DashboardPreview/object-grid). Data: object list + record
grid (object-grid) + field table. Automations: flow list + FlowPreview graph.
All reuse existing renderers — no new editor code.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): Data pillar = primary full-height record grid (Airtable parity)
Drop the redundant field table — the record grid's columns ARE the fields.
Data mode now reads like a spreadsheet (objects on the left, the records
directly viewable), matching Airtable's Data tab.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): object surface = object-view (our list-view model, not raw grid)
Per design direction, the Data pillar (and Interfaces object items) render an
object via object-view — its named list views + ViewSwitcher + record actions,
falling back to a grid — instead of the raw object-grid. Matches our view model.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): scope Data/Automations lists to the current package (#9)
Pass packageId into DataPillar/AutomationsPillar and use client.list(type,
{ packageId }) (=> ?package=) so each pillar lists only the current package's
objects/flows, not all env metadata.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(app-shell): render flow preview via createElement (satisfy react-hooks/static-components)
AutomationsPillar assigned `const Preview = getMetadataPreview(...)` and rendered
it as JSX, which react-hooks/static-components flags as a component created during
render. Render via React.createElement instead, and derive the type from the
selected flow (current.type) to mirror InterfacesPillar.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
os-zhuang added a commit that referenced this pull request Jul 30, 2026
…s become derivations or gated inventories (#3017) (#3043)
Sites #3-#6 of the audit, plus three more of the same species found while
gating - all previously "keep in sync" comments with zero mechanism:
- DesignerFieldType is now derived from a runtime DESIGNER_FIELD_TYPES
array in @object-ui/types; app-shell's object-fields-bridge and
plugin-designer's MetadataFieldsPage derive their 27-type sets from it
instead of restating the list (FieldDesigner's FIELD_TYPE_META was
already compile-gated via Record<DesignerFieldType>). The dead
ALL_FIELD_TYPES const is removed, and the FIELD_TYPE_CATEGORIES /
CATEGORY_ORDER partition gets a coverage gate - a type added to the
vocabulary but left uncategorized would silently vanish from the type
pickers.
- The audit-provenance columns get one source: AUDIT_FIELD_BY_ROLE /
AUDIT_FIELD_NAMES in @object-ui/types, consumed by RecordMetaFooter and
RecordDetailView. RecordDetailView's HIDDEN_SYSTEM_FIELD_NAMES is now
derived as spec FIELD_GROUP_SYSTEM_FIELDS minus the audit set, so a
newly injected system column defaults to hidden instead of leaking into
detail bodies until a hand list is edited.
- ImportWizard's REFERENCE_IMPORT_TYPES is derived from the spec's
REFERENCE_VALUE_TYPES plus the generic 'reference' alias - the same
derivation the server uses - in a new importCoercionContract module.
- The boolean token table cannot be derived (no spec export yet,
framework#3786): it is split into true/false sets with disjointness +
normalization gates and a pinned inventory so edits are deliberate.
- multiValueFields' two sets were member-for-member copies of the spec's
MULTI_OPTION_TYPES / MULTI_CAPABLE_TYPES - now consumed directly, with
non-vacuity anchors so a shrinking spec vocabulary fails loudly instead
of resurrecting the #2204 column-shape corruption.
Mutation-tested: seven injected drifts across five source files produced
13 test failures across all five gate files, plus compile errors in
FieldDesigner (TS2353/TS2322), MetadataFieldsPage (TS2769) and
RecordMetaFooter (TS2339). Zero behavior change - every derived set is
value-identical to the list it replaces.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
yinlianghui pushed a commit that referenced this pull request Aug 13, 2026
The module-script shape shipped in the previous commit was TOO LATE, and
the console's own build proves it. Vite merges the two HTML module
entries into a single chunk, and that merged entry's static imports are
hoisted above the shim's body, so in dist/assets/index-*.js the install
sat behind 16 imported chunks - vendor-react, ui-components and
RecordDetailView among them, all three of which contain randomUUID
calls. Document order between module scripts is real in the browser but
it does not survive bundling, so it cannot carry this guarantee.
A classic inline script runs synchronously during parse, before any
module script and therefore before any bundled chunk. That is the only
bundler-independent guarantee, and it is the precedent the report named:
the window.process polyfill immediately above it. Verified on the built
artifact - the shim is tag #2 of 4 in dist/index.html and the only
src-carrying tag is #3.
The TypeScript module is deleted rather than kept for testability: a
second copy of the logic would be graded green while the bootstrap that
actually ships drifted away from it. The tests now EXTRACT the inline
script from index.html and execute it, so they grade exactly what ships,
and they fail loudly ("found 0") rather than vacuously if it is renamed
or removed.
Two parsing hazards found by these tests and worth keeping written down:
prose describing a script tag inside an HTML comment parses as a script
tag (the comment above this very shim was once paired with the shim's
closing tag, reporting it as type=module), so both tests strip comments
before parsing; and this app's tsconfig is browser-only, so index.html
is read through Vite's `?raw` rather than node:fs, which tsc rejects.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Qqyix2QcnpUC9XeYVDzx3
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@huangyiirene@qq9340100