diff --git a/.cursorrules b/.cursorrules index 21b5e06..e5e2aae 100644 --- a/.cursorrules +++ b/.cursorrules @@ -77,7 +77,6 @@ Every PR must include: - **PR:** Link issues, include testing checklist, scope to one feature ### Key Decisions (Locked in ADL) -- **Plugins:** 4 lifecycle hooks (onBuild, onParseMD, onSearchIndex, onRender) - **Search:** <100ms per query on 1000 docs (Week 1 spike to validate) - **Versioning:** Git tags with fallback to single version - **Testing:** Hybrid TDD (D1.1) + iterate approach (D1.2–D1.4) @@ -91,7 +90,6 @@ Every PR must include: ### License Compliance - ✅ Core framework is licensed under a proprietary source-available license (see `LICENSE`) -- ✅ Plugin SDK (`sdk/`) is GPLv3 (see `sdk/LICENSE`) - ✅ All dependencies are license-compliant with the project's allowlist - ✅ NOTICES.md file documents all third-party licenses - ✅ Automated license checking via `npm run license-check` diff --git a/CHANGELOG.md b/CHANGELOG.md index c1d280f..c35f269 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,7 +48,7 @@ All notable changes to EmberDocs are documented in this file. The format follows ## [0.1.0-beta] — TBD (Phase 02 Complete) -### MVP Phase 02: Stabilization & Plugins +### MVP Phase 02: Stabilization **Target Release:** After 6-week MVP development + beta feedback period (4–8 weeks) @@ -56,10 +56,9 @@ All notable changes to EmberDocs are documented in this file. The format follows - **Error Handling:** Error boundaries with user-friendly messages for parse failures, missing files, invalid frontmatter - **Accessibility:** WCAG 2.1 Level AA compliance (keyboard navigation, ARIA labels, color contrast ≥ 4.5:1) - **Performance Monitoring:** Web Vitals tracking (LCP, FID, CLS) with console logging and hooks for external APM -- **Plugin System:** Lifecycle hooks (`onBuild`, `onParseMD`, `onSearchIndex`, `onRender`) with sample plugins - **Version Detection:** Git tag-based version routing (`/docs/v1.0/guide`, `/docs/main/guide`) - **Version Switcher UI:** Header dropdown to select available document versions -- **Documentation:** Expanded user guides (setup, deployment, configuration, troubleshooting), developer guides (plugin API, architecture deep dives) +- **Documentation:** Expanded user guides (setup, deployment, configuration, troubleshooting), developer guides (architecture deep dives) - **Changelog:** This changelog documenting all releases ### Changed @@ -107,7 +106,6 @@ This is the first alpha release containing core authoring, navigation, and searc ### Known Issues (Defer to Phase 02) - [ ] Accessibility audit needed (defer detailed WCAG audit to Phase 02) - [ ] Playwright end-to-end tests not yet implemented (will add in Phase 02) -- [ ] Plugin system not yet implemented (planned for Phase 02) - [ ] Version detection/routing not yet implemented (planned for Phase 02) - [ ] Changelog and release notes automation needed (will improve in Phase 02) @@ -183,7 +181,7 @@ EmberDocs uses **Semantic Versioning**: `MAJOR.MINOR.PATCH` ```bash # Create a release tag git tag -a v0.1.0-alpha -m "MVP Phase 01: Core engine" -git tag -a v0.1.0-beta -m "MVP Phase 02: Stabilization & plugins" +git tag -a v0.1.0-beta -m "MVP Phase 02: Stabilization" git tag -a v1.0.0 -m "General availability release" # Push tags to remote diff --git a/DEVELOPMENT-STANDARDS.md b/DEVELOPMENT-STANDARDS.md index c419b5c..e975836 100644 --- a/DEVELOPMENT-STANDARDS.md +++ b/DEVELOPMENT-STANDARDS.md @@ -63,7 +63,6 @@ Useful references: ## Licensing and third-party dependencies - Core license: `LICENSE` -- SDK license: `sdk/LICENSE` - Third-party notices: `NOTICES.md` When adding dependencies: diff --git a/LICENSE b/LICENSE index c12dfe0..4f7c1f5 100644 --- a/LICENSE +++ b/LICENSE @@ -6,9 +6,7 @@ All rights reserved. This license applies to the EmberDocs core framework source code in this repository, except for any files or directories that include a different license notice. -In particular: -- The `sdk/` directory (when present) is licensed separately under the GNU General Public License v3. -- Third-party dependencies are licensed under their respective licenses. +Third-party dependencies are licensed under their respective licenses. By using, copying, or modifying the Software, you agree to the terms below. diff --git a/README.md b/README.md index c991cc0..186e9c0 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ emberdocs/ ### For Contributors - **[Development Roadmap](docs/emberdocs-roadmap.md)** - 16-week development timeline -- **[Licensing](docs/EMBERDOCS-LICENSING.md)** - Proprietary core license (source-available) and GPLv3 SDK boundary +- **[Licensing](docs/EMBERDOCS-LICENSING.md)** - Proprietary core license (source-available) --- @@ -155,7 +155,6 @@ emberdocs/ ### Advanced Features - 🔄 Multi-language support (planned) -- 🔄 Plugin system (GPLv3) - 🔄 API documentation generator - 🔄 Interactive examples - 🔄 Version comparison @@ -183,7 +182,7 @@ Core documentation engine with markdown parsing, basic search, and dark mode. Multi-version support, advanced search, mobile navigation, and CLI tool. ### **v1.0** (Weeks 13-16) -Plugin SDK, performance optimization, component library, and hosted service. +Performance optimization, component library, and hosted service. 👉 **[View Detailed Roadmap](docs/emberdocs-roadmap.md)** @@ -192,7 +191,6 @@ Plugin SDK, performance optimization, component library, and hosted service. ## 🔐 License - **Core Framework:** Proprietary source-available license (free to use and self-host; redistribution is not permitted) -- **Plugin SDK:** GPLv3 (open source) - **Hosted Service:** Proprietary (optional premium offering) See **[EMBERDOCS-LICENSING.md](docs/EMBERDOCS-LICENSING.md)** for details. @@ -232,7 +230,7 @@ npm run dev 2. **Developer First** - Built by developers, for developers 3. **Privacy Matters** - No tracking, no data collection 4. **Performance Obsessed** - Every millisecond counts -5. **Open & Transparent** - Source-available core, open SDK +5. **Open & Transparent** - Source-available core --- diff --git a/brand/EMBERDOCS-STYLE-GUIDE.md b/brand/EMBERDOCS-STYLE-GUIDE.md index 8e52c52..31c6b0e 100644 --- a/brand/EMBERDOCS-STYLE-GUIDE.md +++ b/brand/EMBERDOCS-STYLE-GUIDE.md @@ -647,7 +647,6 @@ Thick: 2.5px (for emphasis) **License structure:** - Core: proprietary source-available license -- Plugin SDK: GPLv3 - Hosted/SaaS: Proprietary (optional premium offering) ### Examples diff --git a/brand/emberdocs-brand-guidelines.md b/brand/emberdocs-brand-guidelines.md index 17456d2..bec2351 100644 --- a/brand/emberdocs-brand-guidelines.md +++ b/brand/emberdocs-brand-guidelines.md @@ -755,7 +755,6 @@ https://emberdocs.com/brand/logos.zip **Licensing Details:** - "Core: proprietary source-available license" -- "Plugin SDK: GPLv3" - "Hosted Service: Proprietary (optional premium offering)" - "Full licensing details at emberdocs.com/licensing" diff --git a/claude.md b/claude.md index 38681cf..9b8a2d7 100644 --- a/claude.md +++ b/claude.md @@ -34,7 +34,6 @@ EmberDocs is a documentation platform built with Next.js 16, TypeScript, and Tai - **Auto-Generated Navigation:** Sidebar built from file structure - **Client-Side Search:** FlexSearch pre-built at build time, <100ms queries - **Dark-First Theme:** CSS variables with light theme opt-in -- **Plugin System:** 4 lifecycle hooks for extensibility (Phase 02) - **Multi-Version Support:** Git-tag based versioning with fallback ### Code Organization @@ -236,7 +235,6 @@ cp .env.example .env.local **Current Status:** - ✅ Core framework is licensed under the EmberDocs Core Proprietary License (source-available). See `LICENSE`. -- ✅ Plugin SDK (`sdk/`) is licensed under GPLv3. See `sdk/LICENSE`. - ✅ NOTICES.md file documents third-party licenses - ✅ Automated license checking via `npm run license-check` - ✅ License check integrated into `npm run check` command @@ -256,7 +254,6 @@ cp .env.example .env.local These decisions are fixed for Phase 01–02. Follow them: -- **ADL-008:** Plugin system uses 4 lifecycle hooks (onBuild, onParseMD, onSearchIndex, onRender) - **ADL-009:** Search performance target <100ms per query on 1000 docs (Week 1 spike to validate) - **ADL-010:** Git-tag versioning with fallback to single version - **ADL-011:** Hybrid testing (TDD for D1.1; implement-then-test for D1.2–D1.4) diff --git a/docs/ARCHITECTURE-DECISIONS.md b/docs/ARCHITECTURE-DECISIONS.md index d345f2f..6fc7935 100644 --- a/docs/ARCHITECTURE-DECISIONS.md +++ b/docs/ARCHITECTURE-DECISIONS.md @@ -151,50 +151,19 @@ Versions are defined by Git tags (e.g., `v1.0`, `v2.0`) or branch names in the d --- -## ADL-006: AGPL-3.0 Core + GPLv3 Plugin SDK for Licensing - -**Date:** 2025-12-20 -**Updated:** 2025-12-28 (superseded) -**Status:** Superseded by ADL-013 -**Context:** -- EmberDocs aims to be free-to-self-host (core framework) with strong copyleft protection -- Plugins (themes, integrations) should be community-extensible; encourage open-source contributions -- Need to ensure network service providers share source code modifications - -**Decision:** -- **Core framework:** AGPL-3.0 license, open source with strong copyleft (ensures network service providers share source code) -- **Plugin SDK:** GPLv3 license; plugins must be open-source, but can integrate with proprietary code -- **Licensed integrations:** Separate paid tier for official plugins/themes (future) - -**Alternatives Considered:** -- Fully open-source (MIT): Strong community, but harder to monetize; no revenue for maintenance -- Fully proprietary: Limits adoption and community plugins; not developer-friendly -- Dual licensing (AGPL + commercial): Stronger copyleft, but can discourage enterprise adoption - -**Consequences:** -- ✅ Free core appeals to developers and small teams -- ✅ GPL plugins encourage community contributions while protecting against forks -- ✅ Clear path to monetization via paid plugins/themes -- ⚠️ GPL licensing may deter some commercial users (need clear legal guidance) -- ⚠️ Requires discipline to categorize code as core vs. plugin - -**Related Docs:** `EMBERDOCS-LICENSING.md`, `LICENSING-UPDATE-SUMMARY.md` - ---- - ## ADL-007: Phase-Based MVP Development (6-Week Plan) **Date:** 2025-12-23 **Status:** Accepted **Context:** -- Project scope is large (versioning, search, theming, plugins, analytics) +- Project scope is large (versioning, search, theming, analytics) - Team is small; need to prioritize ruthlessly - Early feedback from docs authors and users is critical **Decision:** Split MVP into 2 phases over 6 weeks: - **Phase 01 (Weeks 1-3):** Core engine (content loading, TOC/nav generation, syntax highlighting, dark/light themes, instant search) -- **Phase 02 (Weeks 4-6):** Stabilization & plugins (accessibility, perf budgets, plugin hooks, CI integration, expanded docs) +- **Phase 02 (Weeks 4-6):** Stabilization (accessibility, perf budgets, CI integration, expanded docs) Full feature set (versioning, team accounts, analytics) deferred to Beta/v1.0. @@ -214,41 +183,6 @@ Full feature set (versioning, team accounts, analytics) deferred to Beta/v1.0. --- -## ADL-008: Plugin System — Minimal Hooks for MVP (4 Hooks) - -**Date:** 2025-12-23 -**Status:** Accepted -**Context:** -- EmberDocs needs extensibility for themes, custom transformers, and integrations -- Risk: Too many hooks = scope creep; too few = plugins can't do useful things -- MVP Phase 02 (Week 2) allocates limited time for plugin system design - -**Decision:** -Implement 4 lifecycle hooks for MVP: `onBuild`, `onParseMD`, `onSearchIndex`, `onRender`. -- `onBuild`: Runs at start of build; can generate assets or config -- `onParseMD`: Transforms parsed Markdown AST (e.g., inject metadata, custom syntax) -- `onSearchIndex`: Enriches search index (e.g., boost certain docs, add custom fields) -- `onRender`: Post-processes rendered HTML (e.g., theme variants, inject analytics) - -**Design for Extensibility:** Use a hook registry pattern so v1.0 can add more hooks without breaking existing plugins. Example: `plugin.hooks.register('onBuild', callback)` instead of `plugin.onBuild = callback`. - -**Alternatives Considered:** -- Minimal (2 hooks): Too restrictive; couldn't support common use cases -- Rich (8+ hooks): Scope creep; delays Phase 02; overkill for MVP -- None (no plugins yet): Misses extensibility opportunity; harder to retrofit later - -**Consequences:** -- ✅ Covers 80% of plugin use cases (themes, metadata, search, rendering) -- ✅ Scoped and shippable in Phase 02 -- ⚠️ Defers CLI commands, real-time webhooks, component system to v1.0 -- ⚠️ Requires sample plugins to validate design adequacy - -**Deferred to v1.0:** CLI hooks, theme system, component registration, real-time indexing. - -**Related Docs:** `docs/planning/mvp_phase02of02.md` (D2.4), `docs/FEATURE-DEPENDENCIES.md` - ---- - ## ADL-009: Search Performance Target — <100ms for 1000 Docs **Date:** 2025-12-23 @@ -422,19 +356,16 @@ Implement **WCAG 2.1 Level AA** as MVP target. Phase 02 Week 1 (D2.2) includes 3 --- -## ADL-013: Proprietary Core License (Source-Available) + GPLv3 SDK Boundary +## ADL-013: Proprietary Core License (Source-Available) **Date:** 2025-12-28 **Status:** Accepted **Context:** - EmberDocs core is intended to be free to use and self-host while restricting redistribution of the core framework. -- The project needs a clear boundary for an open-source Plugin SDK. - Documentation and marketing must reflect the license model accurately to avoid confusion. **Decision:** -- **Core framework:** Proprietary source-available license (everything outside `sdk/`). See `LICENSE`. -- **Plugin SDK:** GPLv3 (`sdk/`). See `sdk/LICENSE`. -- The core framework must not depend on code within `sdk/` to keep licensing boundaries clear. +- **Core framework:** Proprietary source-available license. See `LICENSE`. - Docs and marketing must not describe the core framework as open source. **Alternatives Considered:** @@ -443,13 +374,11 @@ Implement **WCAG 2.1 Level AA** as MVP target. Phase 02 Week 1 (D2.2) includes 3 - Dual licensing: increases operational and legal overhead. **Consequences:** -- ✅ Clear boundary between proprietary core and GPLv3 SDK - ✅ Free-to-self-host core remains available to users - ✅ Less risk of license messaging drift across docs and marketing -- ⚠️ Requires discipline to keep SDK and core dependencies isolated - ⚠️ Requires clear contributor guidance on redistribution restrictions -**Related Docs:** `LICENSE`, `docs/EMBERDOCS-LICENSING.md`, `sdk/README.md`, `NOTICES.md` +**Related Docs:** `LICENSE`, `docs/EMBERDOCS-LICENSING.md`, `NOTICES.md` --- diff --git a/docs/EMBERDOCS-LICENSING.md b/docs/EMBERDOCS-LICENSING.md index 1aea36f..bc8ca1e 100644 --- a/docs/EMBERDOCS-LICENSING.md +++ b/docs/EMBERDOCS-LICENSING.md @@ -1,19 +1,17 @@ -# EmberDocs Licensing Model +# EmberDocs Licensing **Last Updated:** 2025-12-28 -**Status:** Official +**Status:** Official ## Overview -EmberDocs uses a split licensing model: +EmberDocs core is licensed under the EmberDocs Core Proprietary License (source-available). See `LICENSE`. -- **Core framework (this repository, except `sdk/`)**: EmberDocs Core Proprietary License (source-available). See `LICENSE`. -- **Plugin SDK (`sdk/`)**: GNU General Public License v3. See `sdk/LICENSE`. -- **Third-party dependencies**: Licensed under their respective licenses. See `NOTICES.md`. +Third-party dependencies are licensed under their respective licenses. See `NOTICES.md`. This document is a human-readable summary. The license texts are the source of truth. -## Core framework (proprietary): what you can do +## Core framework license (summary) You may: @@ -22,30 +20,21 @@ You may: - Modify the core framework for your own use. - Deploy the core framework to serve documentation content for your products, services, or organization (including serving documentation to the public). -## Core framework (proprietary): restrictions - You may not, without prior written permission from the licensor: - Distribute, publish, or otherwise make available the core framework (or any modified version of it) to any third party, in source or binary form. - Sell, sublicense, rent, lease, or otherwise transfer rights to the core framework. -- Provide the core framework as a hosted or managed service to third parties where the primary value is providing access to EmberDocs itself (for example, an "EmberDocs-as-a-service" offering). +- Provide the core framework as a hosted or managed service to third parties where the primary value is providing access to EmberDocs itself (for example, an \"EmberDocs-as-a-service\" offering). For full details, see `LICENSE`. -## Plugin SDK (`sdk/`) license - -All contents under `sdk/` are licensed under GPLv3. See `sdk/LICENSE`. - -To keep licensing boundaries clear, the core framework should not depend on code within `sdk/`. - ## Contributions -If you submit a contribution to this repository, your contribution is governed by the contribution terms described in the core license. See `LICENSE`. +If you submit a contribution to this repository, your contribution is governed by the contribution terms described in `LICENSE`. ## Where to find license texts - Core license: `LICENSE` -- SDK license: `sdk/LICENSE` - Third-party notices: `NOTICES.md` diff --git a/docs/FEATURE-DEPENDENCIES.md b/docs/FEATURE-DEPENDENCIES.md index 5722d64..9d07476 100644 --- a/docs/FEATURE-DEPENDENCIES.md +++ b/docs/FEATURE-DEPENDENCIES.md @@ -50,7 +50,7 @@ Week 3: Polish & Testing (depends on Week 1–2) ``` ┌─────────────────────────────────────────────────────────┐ -│ PHASE 02: Stabilization & Plugins │ +│ PHASE 02: Stabilization │ │ (Weeks 4–6) │ │ (Prerequisite: Phase 01 complete & all tests pass) │ └─────────────────────────────────────────────────────────┘ @@ -60,19 +60,16 @@ Week 1: Quality (can run in parallel) ├─ D2.2: Accessibility Fixes └─ D2.3: Performance Monitoring -Week 2: Extensibility & Versioning - ├─ D2.4: Plugin System - │ └─ (depends on D2.1 error handling for isolation) - ├─ D2.5: Version Detection & Routing - │ └─ (depends on Phase 01 content/routing stable) - └─ Sample Plugins (depends on D2.4) +Week 2: Versioning + └─ D2.5: Version Detection & Routing + └─ (depends on Phase 01 content/routing stable) Week 3: Documentation & Deployment ├─ D2.6: Documentation - │ ├─ Dev Docs (depends on D2.4 plugin API, D2.5 versioning) - │ └─ User Docs (depends on D2.1–D2.5 features) + │ ├─ Dev Docs (depends on D2.5 versioning) + │ └─ User Docs (depends on D2.1–D2.3 and D2.5 features) ├─ D2.7: Expanded Test Suite - │ └─ (depends on D2.1–D2.5) + │ └─ (depends on D2.1–D2.3 and D2.5) ├─ D2.8: CI/CD │ └─ (depends on Phase 01 build process) └─ D2.9: Changelog & Release @@ -131,7 +128,7 @@ Week 3: Documentation & Deployment ### Error Handling (D2.1) - **Depends on:** Phase 01 complete -- **Enables:** Error boundaries, logging hooks for D2.4 (plugins) +- **Enables:** Error boundaries and consistent error reporting - **No blockers**; can start immediately in Phase 02 ### Accessibility (D2.2) @@ -144,23 +141,18 @@ Week 3: Documentation & Deployment - **Enables:** Performance budgets, Web Vitals tracking - **No blockers**; can run in parallel with D2.2 -### Plugin System (D2.4) -- **Depends on:** Phase 01 stable + D2.1 error handling -- **Enables:** Sample plugins, extensibility testing -- **Blocker:** D2.1 must provide error isolation - ### Version Detection (D2.5) - **Depends on:** Phase 01 routing stable - **Enables:** Version switcher UI, version-aware routes - **No blockers** on Phase 01; can design in parallel ### Documentation (D2.6) -- **Depends on:** D2.4 (plugin API) + D2.5 (versioning) for developer docs -- **Depends on:** All Phase 02 features (D2.1–D2.5) for user docs +- **Depends on:** D2.5 (versioning) for developer docs +- **Depends on:** All Phase 02 features (D2.1–D2.3 and D2.5) for user docs - **Blocker:** Can write templates early, but needs feature completion for accuracy ### Expanded Testing (D2.7) -- **Depends on:** All Phase 02 modules (D2.1–D2.5) +- **Depends on:** All Phase 02 modules (D2.1–D2.3 and D2.5) - **Blocker:** APIs must be stable to test ### CI/CD & Deployment (D2.8) @@ -189,7 +181,7 @@ D1.1 (Content) → D1.2 (Nav) → D1.4 (Doc Page) ### Phase 02 Critical Path ``` -Phase 01 Complete → D2.1 (Error Handling) → D2.4 (Plugins) +Phase 01 Complete → D2.1 (Error Handling) → D2.6 (Docs) → D2.5 (Versioning) → D2.6 (Docs) → D2.7 (Tests) ``` @@ -237,15 +229,13 @@ Phase 01 Complete → D2.1 (Error Handling) → D2.4 (Plugins) ### Week 2 (Phase 02) **Priority Order:** -1. **D2.4: Plugin System** (depends on D2.1 error handling) -2. **D2.5: Version Detection** (independent; can parallel) -3. **Sample Plugins** (depends on D2.4) +1. **D2.5: Version Detection** (independent; can parallel) -**Why:** D2.4 is on critical path; D2.5 independent +**Why:** D2.5 unlocks version documentation and release readiness ### Week 3 (Phase 02) **Sequential order:** -1. **D2.6: Documentation** (depends on D2.4, D2.5) +1. **D2.6: Documentation** (depends on D2.5) 2. **D2.7: Testing** (depends on all modules) 3. **D2.8: CI/CD & Deployment** (can parallel with D2.7) 4. **D2.9: Changelog & Release** (last task) @@ -262,7 +252,6 @@ Phase 01 Complete → D2.1 (Error Handling) → D2.4 (Plugins) | **D1.2 Nav → D1.4 Doc Page** | Navigation metadata format changes break components | Define navigation interface in D1.2; freeze for D1.4 implementation | | **D1.3 Search → D1.4 Components** | Search index too large; bundle bloat | Monitor index size weekly; optimize if > 500KB | | **Phase 01 → Phase 02** | Phase 01 bugs cause Phase 02 rework | Comprehensive testing in Phase 01 Week 3; strict exit criteria | -| **D2.4 Plugins → D2.6 Docs** | Plugin API unstable; docs become obsolete | Finalize plugin interface early in D2.4; freeze for docs | | **D2.6 Docs → D2.7 Tests** | Documentation writing delays testing | Create doc templates in advance; distribute docs work | --- diff --git a/docs/LICENSING-UPDATE-SUMMARY.md b/docs/LICENSING-UPDATE-SUMMARY.md index 09fa09a..13eb229 100644 --- a/docs/LICENSING-UPDATE-SUMMARY.md +++ b/docs/LICENSING-UPDATE-SUMMARY.md @@ -20,11 +20,7 @@ EmberDocs licensing has been updated from "MIT Open Source" to a **source-availa - Users can modify for their own use - Users CANNOT redistribute or sell -2. **Plugin SDK:** GPLv3 (open source) - - Developers can create and distribute plugins - - Encourages ecosystem growth - -3. **Hosted/SaaS:** Proprietary +2. **Hosted/SaaS:** Proprietary - Premium managed hosting service - $15/month or $150/year @@ -83,7 +79,6 @@ EmberDocs licensing has been updated from "MIT Open Source" to a **source-availa ✅ Modify for their own installation ✅ Use for commercial projects ✅ Create unlimited documentation sites -✅ Create and sell plugins (GPLv3) ### They CANNOT: ❌ Redistribute EmberDocs to others @@ -130,7 +125,7 @@ A: Yes, MIT licensed! **New FAQ:** Q: Is EmberDocs open source? -A: EmberDocs is source-available, meaning you can view and study the code, but it's not open source. The core framework is proprietary but free to use and self-host. The Plugin SDK is open source (GPLv3). +A: EmberDocs is source-available, meaning you can view and study the code, but it's not open source. The core framework is proprietary but free to use and self-host. --- @@ -174,7 +169,6 @@ A: Yes! You can modify EmberDocs for your own installation. However, you cannot ### Before Launch - [x] Create LICENSE file (custom proprietary license) -- [ ] Create LICENSE-PLUGIN-SDK.txt (GPLv3) - [x] Update package.json with license field - [x] Update documentation to reference LICENSE file - [ ] Update GitHub repository with license (when repository is public) diff --git a/docs/PROJECT-OVERVIEW.md b/docs/PROJECT-OVERVIEW.md index 0ee1ed1..84c71e3 100644 --- a/docs/PROJECT-OVERVIEW.md +++ b/docs/PROJECT-OVERVIEW.md @@ -2,7 +2,7 @@ **Created:** December 2025 **Status:** Ready for Development -**License:** Core (proprietary, source-available) | Plugin SDK (GPLv3) +**License:** Core (proprietary, source-available) --- @@ -111,7 +111,6 @@ Use the mockups and technical specs to begin implementation. **EMBERDOCS-LICENSING.md** (11KB) - Core: proprietary source-available license (see `LICENSE`) -- Plugin SDK: GPLv3 - What users CAN and CANNOT do - FAQ and use cases @@ -251,7 +250,6 @@ Use the mockups and technical specs to begin implementation. ## 🔐 Licensing **Core Framework:** Proprietary source-available license (see `LICENSE`) -**Plugin SDK:** GPLv3 (open source) **Hosted Service:** Proprietary (optional premium offering) --- diff --git a/docs/QUICK-REFERENCE.md b/docs/QUICK-REFERENCE.md index 63f7e01..00f5957 100644 --- a/docs/QUICK-REFERENCE.md +++ b/docs/QUICK-REFERENCE.md @@ -54,7 +54,6 @@ src/ ├── search.ts # FlexSearch indexing ├── navigation.ts # Sidebar nav generation ├── versioning.ts # Git version detection (Phase 02) - └── plugins.ts # Plugin hook system (Phase 02) docs/ ├── planning/ # Phase plans (mvp_phase01of02.md, etc.) @@ -235,7 +234,6 @@ Each day, create `docs/progress/YYYY_MM_DD.md`: ## Open Questions - Should we pre-generate Lighthouse reports in CI, or manual audit only? -- Plugin system complexity: defer advanced hooks to v1.0? ## Next Steps 1. Create developer quick reference guide diff --git a/docs/emberdocs-roadmap.md b/docs/emberdocs-roadmap.md index 3105a82..857f9db 100644 --- a/docs/emberdocs-roadmap.md +++ b/docs/emberdocs-roadmap.md @@ -749,7 +749,6 @@ npx emberdocs migrate --from docusaurus ./my-docs ### v1.3 (Weeks 25-28) - GraphQL API -- Plugin system - Theme marketplace - Advanced analytics @@ -795,7 +794,6 @@ npx emberdocs migrate --from docusaurus ./my-docs - 1,000 GitHub stars - 100 production deployments - 20+ community contributors -- 5+ ecosystem plugins **Revenue (Premium):** - 50 paying customers diff --git a/docs/emberdocs-technical-spec.md b/docs/emberdocs-technical-spec.md index d9a004e..71264de 100644 --- a/docs/emberdocs-technical-spec.md +++ b/docs/emberdocs-technical-spec.md @@ -1140,43 +1140,4 @@ npx emberdocs migrate --from gitbook --- -## Extensibility & Plugins - -**Plugin System (Future):** - -```typescript -interface EmberDocsPlugin { - name: string; - version: string; - setup: (context: PluginContext) => void; -} - -// Example plugin -const customPlugin: EmberDocsPlugin = { - name: 'custom-plugin', - version: '1.0.0', - setup(context) { - // Add custom markdown renderer - context.addMarkdownPlugin(remarkPlugin); - - // Add custom component - context.addComponent('CustomBlock', CustomBlock); - - // Hook into build process - context.onBuild(async () => { - // Custom build logic - }); - }, -}; -``` - -**Planned Plugin Types:** -- Markdown transformers -- UI components -- Build hooks -- Search providers -- Analytics integrations - ---- - This specification provides the foundation for v1.0 development. Additional detailed specifications for database schema, brand guidelines, and development roadmap follow in separate documents. diff --git a/docs/planning/deferred_frontmatter_ui_editor.md b/docs/planning/deferred_frontmatter_ui_editor.md index 2248cd5..5c9455e 100644 --- a/docs/planning/deferred_frontmatter_ui_editor.md +++ b/docs/planning/deferred_frontmatter_ui_editor.md @@ -74,7 +74,6 @@ Before re-implementing this feature, consider: - Security review capabilities 4. **Integration Complexity:** - - Can this be built as a plugin/extension instead? - Would a separate service be more appropriate? - Is there a way to simplify the implementation? @@ -82,11 +81,10 @@ Before re-implementing this feature, consider: If demand emerges, consider these alternatives: -1. **Plugin/Extension:** Build as a separate plugin that users can opt-in to -2. **External Tool:** Create a standalone web app or CLI tool -3. **Better Documentation:** Improve frontmatter documentation and examples -4. **Template System:** Provide pre-configured frontmatter templates -5. **Simpler UI:** A minimal form-based editor without full authentication +1. **External Tool:** Create a standalone web app or CLI tool +2. **Better Documentation:** Improve frontmatter documentation and examples +3. **Template System:** Provide pre-configured frontmatter templates +4. **Simpler UI:** A minimal form-based editor without full authentication ## Related Documentation diff --git a/docs/planning/license_options_analysis.md b/docs/planning/license_options_analysis.md index e5d6cd9..d78bd2e 100644 --- a/docs/planning/license_options_analysis.md +++ b/docs/planning/license_options_analysis.md @@ -174,8 +174,7 @@ **Approach:** - Core framework: Keep proprietary license -- Plugin SDK: Already planned for GPL v3 -- Consider: Release some components under GPL for community +- Consider: Release some components under a separate open-source license for community (only if demand emerges) **Pros:** - Best of both worlds diff --git a/docs/planning/mvp_phase01of02.md b/docs/planning/mvp_phase01of02.md index 458f465..cd2004f 100644 --- a/docs/planning/mvp_phase01of02.md +++ b/docs/planning/mvp_phase01of02.md @@ -285,4 +285,4 @@ - **Technical Spec:** `docs/emberdocs-technical-spec.md` (architecture, data structures) - **Architecture Decisions:** `docs/ARCHITECTURE-DECISIONS.md` (ADL-001, ADL-003, ADL-004, ADL-005) - **Roadmap:** `docs/emberdocs-roadmap.md` (overview of Beta/v1.0 features) -- **Phase 02:** `docs/planning/mvp_phase02of02.md` (stabilization & plugins) +- **Phase 02:** `docs/planning/mvp_phase02of02.md` (stabilization) diff --git a/docs/planning/mvp_phase02of02.md b/docs/planning/mvp_phase02of02.md index 2cc2cdd..b222845 100644 --- a/docs/planning/mvp_phase02of02.md +++ b/docs/planning/mvp_phase02of02.md @@ -1,6 +1,6 @@ -# MVP Phase 02 of 02 — Stabilization & Plugins (Weeks 4–6) +# MVP Phase 02 of 02 — Stabilization (Weeks 4–6) -**Goal:** Stabilize Phase 01 MVP, add plugin extensibility, implement version detection, and complete documentation before beta launch. +**Goal:** Stabilize Phase 01 MVP, implement version detection, and complete documentation before beta launch. **Duration:** 3 weeks (6 working days/week assumed; ~18 dev days) @@ -17,12 +17,6 @@ - Performance budgets: Lighthouse targets (accessibility ≥ 95, performance ≥ 85, best practices ≥ 90) - Telemetry hooks for observability (env-flagged; no data collection without consent) -### Plugin Extensibility -- Plugin hook system: lifecycle hooks (onBuild, onParse, onSearchIndex, onRender) -- Plugin interface documentation with TypeScript types -- Sample plugins: custom syntax highlighting, analytics integration, content transformer -- Plugin discovery and loading mechanism - ### Versioning & Version Routing - Git tag-based version detection (read git history at build time) - Version switcher in UI; routes like `/docs/v1.0/guide` and `/docs/main/guide` @@ -30,7 +24,7 @@ - Version manifest generation at build time ### Documentation & User Guides -- **Developer Docs:** Plugin API reference, architecture deep dives, contribution guide +- **Developer Docs:** Architecture deep dives, contribution guide - **User Docs:** Setup guide, deployment guide, configuration reference, troubleshooting - **Daily Progress Logs:** Continue logging in `docs/progress/` - **Changelog:** Alpha/Beta release notes with breaking changes, new features, fixes @@ -86,20 +80,6 @@ - ✅ Search index load < 500ms on 3G throttling - ✅ Performance metrics logged to console in dev mode -### D2.4: Plugin Hook System & SDK (`src/lib/plugins.ts` + `docs/PLUGIN-API.md`) -- **Responsibilities:** - - Plugin lifecycle hooks: `onBuild`, `onParseMD`, `onSearchIndex`, `onRender` - - Plugin interface definition (TypeScript types) - - Plugin discovery from `plugins/` folder - - Plugin loading and error isolation (plugin errors don't crash app) - - Example plugins (syntax highlighter theme, custom metadata extractor, analytics event emitter) -- **Acceptance Criteria:** - - ✅ Sample plugin loads and executes without errors - - ✅ Plugin hook signatures match API documentation - - ✅ Plugin errors logged; app continues running - - ✅ API documentation includes TypeScript types and usage examples - - ✅ 2–3 sample plugins created and documented - ### D2.5: Version Detection & Routing (`src/lib/versioning.ts` + `src/app/docs/[version]/[...slug]/page.tsx`) - **Responsibilities:** - Read Git tags and branches at build time @@ -116,7 +96,6 @@ ### D2.6: Documentation Expansion (Docs in `docs/` and `user-docs/`) - **Developer Documentation:** - - `docs/PLUGIN-API.md` — plugin interface, lifecycle hooks, examples - `docs/ARCHITECTURE-DEEP-DIVE.md` — data flow, module responsibilities, extension points - `docs/CONTRIBUTING.md` — how to contribute, code style, PR process - API reference for `src/lib/` modules (auto-generated from JSDoc or manually curated) @@ -124,7 +103,7 @@ - **User-Facing Documentation:** - `user-docs/SETUP-GUIDE.md` — installation, `.env.local`, first doc creation - `user-docs/DEPLOYMENT.md` — Vercel, Docker, self-hosted, environment variables - - `user-docs/CONFIGURATION.md` — config options, theme customization, plugin setup + - `user-docs/CONFIGURATION.md` — configuration reference and theme customization - `user-docs/TROUBLESHOOTING.md` — common issues, error messages, solutions - `user-docs/CHANGELOG.md` — Alpha/Beta release notes (breaking changes, new features, bug fixes) @@ -137,7 +116,7 @@ ### D2.7: Expanded Test Suite & Coverage (`tests/` folder + Playwright) - **Deliverable:** - - Unit tests for D2.1–D2.5 (error handling, accessibility, versioning, plugins) + - Unit tests for D2.1–D2.3 and D2.5 (error handling, accessibility, versioning) - Playwright smoke tests: navigation flow, search, version switching, mobile responsiveness - Coverage report: ≥ 80% for `src/lib/` modules - CI integration: tests run on PR, report coverage @@ -193,28 +172,23 @@ --- -### Week 2: Plugin System, Version Routing, Sample Plugins -**Focus:** Extensibility & versioning +### Week 2: Version Routing & Release Readiness +**Focus:** Versioning -- [ ] Plugin hook system design & implementation (D2.4) -- [ ] Plugin API documentation with TypeScript types -- [ ] 2–3 sample plugins created (e.g., syntax theme plugin, metadata extractor) - [ ] Version detection & routing (D2.5): Git tag reading, version manifest - [ ] Version switcher UI component and integration - [ ] Graceful fallback for missing Git/tags **Definition of Done:** -- Sample plugins load and execute without errors - Version routes work (`/docs/v1.0/guide`, `/docs/main/guide`) - Version switcher displays correctly -- Plugin API documentation complete --- ### Week 3: Documentation Sweep, Testing, CI/CD, Release Prep **Focus:** Documentation, testing, and deployment -- [ ] Developer documentation expansion (D2.6): plugins, architecture, contributing +- [ ] Developer documentation expansion (D2.6): architecture, contributing - [ ] User-facing documentation (D2.6): setup, deployment, troubleshooting - [ ] Expanded test suite & Playwright smoke tests (D2.7) - [ ] GitHub Actions CI matrix & workflow setup (D2.8) @@ -241,7 +215,6 @@ | **Best Practices** | Lighthouse ≥ 90 | Lighthouse audit | | **Core Web Vitals** | LCP < 2.5s, FID < 100ms, CLS < 0.1 | web-vitals library, performance observer | | **Test Coverage** | ≥ 80% for `src/lib/` | Jest coverage report | -| **Plugin API Completeness** | All lifecycle hooks documented | API reference + sample plugins | | **Documentation Quality** | New user can follow guide to deployment | QA: follow user guide step-by-step | | **CI Reliability** | 100% pass rate over 1 week | CI logs, failure analysis | | **Build Performance** | < 30s for 1000 docs | CI logs, build timer | @@ -256,7 +229,6 @@ - ✅ Lighthouse scores: accessibility ≥ 95, performance ≥ 85, best practices ≥ 90 - ✅ Test coverage ≥ 80% for `src/lib/`, ≥ 60% for components - ✅ CI passing on multiple Node versions (18, 20+) -- ✅ Plugin system functional with 2+ sample plugins - ✅ Version routing working (`/docs/v1.0/`, `/docs/main/`) - ✅ Documentation complete: user guides + developer guides - ✅ Changelog with Alpha/Beta release notes @@ -265,7 +237,6 @@ ### Nice-to-Have (Defer if Time-Constrained) - 🟡 Monitoring hooks for external APM (DataDog, New Relic) — can defer to v1.0 - 🟡 Kubernetes deployment guide — self-hosted guide sufficient -- 🟡 Advanced plugin examples (custom search ranking, webhook integrations) — defer to community --- @@ -273,7 +244,6 @@ | Risk | Impact | Mitigation | |------|--------|-----------| -| Plugin system is complex; scope creep | 🔴 High | Minimal plugin API (4–5 hooks); defer advanced features to v1.0 | | Accessibility audit finds many issues | 🟡 Medium | Start early in Week 1; allocate 3–5 days for fixes | | Git tag reading fails in CI environment | 🟡 Medium | Test in CI early; implement graceful fallback (no version switcher) | | Performance budgets hard to hit | 🟡 Medium | Monitor bundle size weekly; use code splitting, dynamic imports | @@ -289,9 +259,8 @@ ### Internal Dependencies - D2.1–D2.3 can run in parallel (quality improvements) -- D2.4 (plugins) depends on Phase 01 complete (content/search/nav stable) - D2.5 (versioning) depends on Phase 01 complete (routing stable) -- D2.6 (docs) can run in parallel but needs D2.4–D2.5 for plugin/version documentation +- D2.6 (docs) can run in parallel but needs D2.5 for version documentation - D2.7 (tests) depends on D2.1–D2.5 (modules to test) - D2.8 (CI/CD) depends on Phase 01 complete (build process stable) - D2.9 (changelog) last task; no dependencies diff --git a/docs/progress/2025_12_23_d1456_completion.md b/docs/progress/2025_12_23_d1456_completion.md index a21d2b3..3c848cc 100644 --- a/docs/progress/2025_12_23_d1456_completion.md +++ b/docs/progress/2025_12_23_d1456_completion.md @@ -18,7 +18,7 @@ - ✅ **Feature-complete:** Search, navigation, breadcrumbs, theme toggle, syntax highlighting - ✅ **Development-ready:** Dev server starts in 836ms, ready for iteration -**Next:** Phase 02 (Stabilization, Plugins, Version Detection) — deferred +**Next:** Phase 02 (Stabilization, Version Detection) — deferred --- @@ -517,7 +517,6 @@ $ npm run check - ⏳ Accessibility audit (WCAG 2.1 AA) — deferred - ⏳ E2E tests (Playwright) — deferred -- ⏳ Plugin system — deferred - ⏳ Version detection/routing (Git tags) — deferred - ⏳ Password-protected pages — deferred - ⏳ Dark mode system preference persistence — will improve in Phase 02 @@ -555,12 +554,11 @@ $ npm run check **Not started (deferred for Phase 02):** 1. Error boundaries and graceful error handling 2. WCAG 2.1 Level AA accessibility audit -3. Plugin system with lifecycle hooks -4. Version detection from Git tags -5. Version switcher UI -6. Web Vitals monitoring -7. E2E testing with Playwright -8. Advanced documentation features +3. Version detection from Git tags +4. Version switcher UI +5. Web Vitals monitoring +6. E2E testing with Playwright +7. Advanced documentation features --- diff --git a/docs/progress/2025_12_23_phase02_quick_wins.md b/docs/progress/2025_12_23_phase02_quick_wins.md index eaa7f05..05c7e0f 100644 --- a/docs/progress/2025_12_23_phase02_quick_wins.md +++ b/docs/progress/2025_12_23_phase02_quick_wins.md @@ -1,6 +1,6 @@ # Phase 02 Quick Wins - Progress Report **Date:** 2025-12-23 -**Phase:** 02 (Error Handling, Accessibility, Performance, Plugins) +**Phase:** 02 (Error Handling, Accessibility, Performance) **Deliverable:** D2.0 - Foundation Improvements & Quick Wins **Status:** ✅ COMPLETE @@ -470,26 +470,20 @@ Time: 0.789 s - Keyboard navigation audit - Estimated: 8-10 hours -4. **D2.4 - Plugin System** - - Design hook architecture - - Implement plugin loader - - Create sample plugins - - Estimated: 12-16 hours - ### Priority 3 - Integration (Week 3) -5. **D2.3 - Version Routing** +4. **D2.3 - Version Routing** - Git-based version detection - Route structure refactor - Version switcher UI - Estimated: 10-12 hours -6. **D2.5 - E2E Testing** +5. **D2.5 - E2E Testing** - Playwright setup - Navigation E2E tests - Search E2E tests - Estimated: 8-10 hours -7. **D2.6 - Web Vitals Integration** +6. **D2.6 - Web Vitals Integration** - Integrate measurements - Add monitoring hooks - Create dashboard diff --git a/docs/progress/2025_12_23_progress.md b/docs/progress/2025_12_23_progress.md index 0d4bcb7..768661e 100644 --- a/docs/progress/2025_12_23_progress.md +++ b/docs/progress/2025_12_23_progress.md @@ -7,7 +7,7 @@ **Completed:** - Created universal development standards (DEVELOPMENT-STANDARDS.md) — 800+ lines, reusable across projects - Enhanced contributing guidelines trio (.cursorrules, claude.md, AGENTS.md) — 800+ lines total, fully synced -- Locked 5 critical architectural decisions (ADL-008 through ADL-012) +- Locked 4 critical architectural decisions (ADL-009 through ADL-012) - Created detailed phase plans with deliverables and success metrics - Created developer quick reference, dependency mapping, dev setup guide, changelog - Defined D1.1 critical path: content pipeline → navigation → search → doc page @@ -18,11 +18,6 @@ ### 1. Architecture Decisions Locked (ADL) -**ADL-008: Plugin System — 4 Lifecycle Hooks** -- Hooks: `onBuild`, `onParseMD`, `onSearchIndex`, `onRender` -- Design: Hook registry pattern for extensibility -- Coverage: ~80% of plugin use cases; Phase 02 scope: CLI hooks, theme system, component registration, real-time indexing - **ADL-009: Search Performance Target — <100ms for 1000 Docs** - Week 1 spike plan to validate achievability (parse docs → build index → test queries) - Index JSON <500KB; less aggressive than <50ms but maintains "instant" UX perception @@ -56,7 +51,7 @@ | File | Before | After | Changes | |------|--------|-------|---------| -| `docs/ARCHITECTURE-DECISIONS.md` | ADL-001–007 | ADL-001–012 | Added ADL-008 through ADL-012 with full context, alternatives, consequences | +| `docs/ARCHITECTURE-DECISIONS.md` | ADL-001–007 | Updated | Added ADL-009 through ADL-012 with full context, alternatives, consequences | | `docs/planning/mvp_phase01of02.md` | 27 lines | 289 lines | Added 9 deliverables (D1.1–D1.9) + weekly milestones + KPIs + exit criteria | | `docs/planning/mvp_phase02of02.md` | 27 lines | 321 lines | Added 9 deliverables (D2.1–D2.9) + prerequisites + risk assessment | | `.cursorrules` | 46 lines | 117 lines | Added "Universal Standards" section, project-specific rules, sync instructions | @@ -137,11 +132,10 @@ export interface ContentData { All user decisions locked (Message 3 of conversation): -1. **Plugin System:** 4 hooks — extensible, defers complexity to Phase 02 -2. **Search Performance:** <100ms target — achievable with FlexSearch; Week 1 spike validates -3. **Versioning:** Git-tag based with fallback — leverages existing Git workflow -4. **Testing:** Hybrid TDD (D1.1) + iterate (D1.2–D1.4) — balances quality with velocity -5. **Accessibility:** WCAG 2.1 Level AA — legally required (US ADA + EU compliance); self-taught Phase 02 +1. **Search Performance:** <100ms target — achievable with FlexSearch; Week 1 spike validates +2. **Versioning:** Git-tag based with fallback — leverages existing Git workflow +3. **Testing:** Hybrid TDD (D1.1) + iterate (D1.2–D1.4) — balances quality with velocity +4. **Accessibility:** WCAG 2.1 Level AA — legally required (US ADA + EU compliance); self-taught Phase 02 --- diff --git a/docs/progress/2025_12_24_ux_improvements.md b/docs/progress/2025_12_24_ux_improvements.md index 87b457c..e38ddc7 100644 --- a/docs/progress/2025_12_24_ux_improvements.md +++ b/docs/progress/2025_12_24_ux_improvements.md @@ -434,9 +434,8 @@ b95ba68 - feat: add mobile navigation, syntax highlighting, and landing page imp ### Phase 02 Planning 1. Version switching implementation -2. Plugin system (4 lifecycle hooks per ADL-008) -3. Multi-version content structure -4. Git tag detection and routing +2. Multi-version content structure +3. Git tag detection and routing --- @@ -459,7 +458,6 @@ b95ba68 - feat: add mobile navigation, syntax highlighting, and landing page imp ## Architecture Decisions Referenced -- **ADL-008**: Plugin system (deferred to Phase 02) - **ADL-009**: Search performance target <100ms (FlexSearch integrated, targeting <50ms) - **ADL-011**: Hybrid testing approach (TDD for critical, implement-then-test for features) - **ADL-012**: WCAG 2.1 Level AA accessibility (aria-labels added, keyboard nav working) diff --git a/mockups/landing/landing-mockup-03-feature-grid.html b/mockups/landing/landing-mockup-03-feature-grid.html index 3fdab08..482a78d 100644 --- a/mockups/landing/landing-mockup-03-feature-grid.html +++ b/mockups/landing/landing-mockup-03-feature-grid.html @@ -339,7 +339,6 @@

Free to Self-Host

  • Unlimited pages and traffic
  • Self-hosted on your infrastructure
  • Premium managed hosting available
  • -
  • Plugin SDK under GPLv3
  • diff --git a/mockups/ui/ui-mockup-02-search-modal.html b/mockups/ui/ui-mockup-02-search-modal.html index 0cbac1c..a245e73 100644 --- a/mockups/ui/ui-mockup-02-search-modal.html +++ b/mockups/ui/ui-mockup-02-search-modal.html @@ -477,14 +477,6 @@ - -
    -
    - 🕐 - plugin sdk -
    - -