Skip to content

Commit 148ddd6

Browse files
Merge pull request #8 from sturdy-barnacle/add_extensions_sdk
chore: remove references to Plugin SDK and update licensing
2 parents 6945a73 + 1ad01c4 commit 148ddd6

29 files changed

Lines changed: 79 additions & 981 deletions

.cursorrules

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ Every PR must include:
7777
- **PR:** Link issues, include testing checklist, scope to one feature
7878

7979
### Key Decisions (Locked in ADL)
80-
- **Plugins:** 4 lifecycle hooks (onBuild, onParseMD, onSearchIndex, onRender)
8180
- **Search:** <100ms per query on 1000 docs (Week 1 spike to validate)
8281
- **Versioning:** Git tags with fallback to single version
8382
- **Testing:** Hybrid TDD (D1.1) + iterate approach (D1.2–D1.4)
@@ -91,7 +90,6 @@ Every PR must include:
9190

9291
### License Compliance
9392
- ✅ Core framework is licensed under a proprietary source-available license (see `LICENSE`)
94-
- ✅ Plugin SDK (`sdk/`) is GPLv3 (see `sdk/LICENSE`)
9593
- ✅ All dependencies are license-compliant with the project's allowlist
9694
- ✅ NOTICES.md file documents all third-party licenses
9795
- ✅ Automated license checking via `npm run license-check`

CHANGELOG.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,17 @@ All notable changes to EmberDocs are documented in this file. The format follows
4848

4949
## [0.1.0-beta] — TBD (Phase 02 Complete)
5050

51-
### MVP Phase 02: Stabilization & Plugins
51+
### MVP Phase 02: Stabilization
5252

5353
**Target Release:** After 6-week MVP development + beta feedback period (4–8 weeks)
5454

5555
### Added
5656
- **Error Handling:** Error boundaries with user-friendly messages for parse failures, missing files, invalid frontmatter
5757
- **Accessibility:** WCAG 2.1 Level AA compliance (keyboard navigation, ARIA labels, color contrast ≥ 4.5:1)
5858
- **Performance Monitoring:** Web Vitals tracking (LCP, FID, CLS) with console logging and hooks for external APM
59-
- **Plugin System:** Lifecycle hooks (`onBuild`, `onParseMD`, `onSearchIndex`, `onRender`) with sample plugins
6059
- **Version Detection:** Git tag-based version routing (`/docs/v1.0/guide`, `/docs/main/guide`)
6160
- **Version Switcher UI:** Header dropdown to select available document versions
62-
- **Documentation:** Expanded user guides (setup, deployment, configuration, troubleshooting), developer guides (plugin API, architecture deep dives)
61+
- **Documentation:** Expanded user guides (setup, deployment, configuration, troubleshooting), developer guides (architecture deep dives)
6362
- **Changelog:** This changelog documenting all releases
6463

6564
### Changed
@@ -107,7 +106,6 @@ This is the first alpha release containing core authoring, navigation, and searc
107106
### Known Issues (Defer to Phase 02)
108107
- [ ] Accessibility audit needed (defer detailed WCAG audit to Phase 02)
109108
- [ ] Playwright end-to-end tests not yet implemented (will add in Phase 02)
110-
- [ ] Plugin system not yet implemented (planned for Phase 02)
111109
- [ ] Version detection/routing not yet implemented (planned for Phase 02)
112110
- [ ] Changelog and release notes automation needed (will improve in Phase 02)
113111

@@ -183,7 +181,7 @@ EmberDocs uses **Semantic Versioning**: `MAJOR.MINOR.PATCH`
183181
```bash
184182
# Create a release tag
185183
git tag -a v0.1.0-alpha -m "MVP Phase 01: Core engine"
186-
git tag -a v0.1.0-beta -m "MVP Phase 02: Stabilization & plugins"
184+
git tag -a v0.1.0-beta -m "MVP Phase 02: Stabilization"
187185
git tag -a v1.0.0 -m "General availability release"
188186

189187
# Push tags to remote

DEVELOPMENT-STANDARDS.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ Useful references:
6363
## Licensing and third-party dependencies
6464

6565
- Core license: `LICENSE`
66-
- SDK license: `sdk/LICENSE`
6766
- Third-party notices: `NOTICES.md`
6867

6968
When adding dependencies:

LICENSE

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ All rights reserved.
66
This license applies to the EmberDocs core framework source code in this repository,
77
except for any files or directories that include a different license notice.
88

9-
In particular:
10-
- The `sdk/` directory (when present) is licensed separately under the GNU General Public License v3.
11-
- Third-party dependencies are licensed under their respective licenses.
9+
Third-party dependencies are licensed under their respective licenses.
1210

1311
By using, copying, or modifying the Software, you agree to the terms below.
1412

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ emberdocs/
138138
### For Contributors
139139

140140
- **[Development Roadmap](docs/emberdocs-roadmap.md)** - 16-week development timeline
141-
- **[Licensing](docs/EMBERDOCS-LICENSING.md)** - Proprietary core license (source-available) and GPLv3 SDK boundary
141+
- **[Licensing](docs/EMBERDOCS-LICENSING.md)** - Proprietary core license (source-available)
142142

143143
---
144144

@@ -155,7 +155,6 @@ emberdocs/
155155

156156
### Advanced Features
157157
- 🔄 Multi-language support (planned)
158-
- 🔄 Plugin system (GPLv3)
159158
- 🔄 API documentation generator
160159
- 🔄 Interactive examples
161160
- 🔄 Version comparison
@@ -183,7 +182,7 @@ Core documentation engine with markdown parsing, basic search, and dark mode.
183182
Multi-version support, advanced search, mobile navigation, and CLI tool.
184183

185184
### **v1.0** (Weeks 13-16)
186-
Plugin SDK, performance optimization, component library, and hosted service.
185+
Performance optimization, component library, and hosted service.
187186

188187
👉 **[View Detailed Roadmap](docs/emberdocs-roadmap.md)**
189188

@@ -192,7 +191,6 @@ Plugin SDK, performance optimization, component library, and hosted service.
192191
## 🔐 License
193192

194193
- **Core Framework:** Proprietary source-available license (free to use and self-host; redistribution is not permitted)
195-
- **Plugin SDK:** GPLv3 (open source)
196194
- **Hosted Service:** Proprietary (optional premium offering)
197195

198196
See **[EMBERDOCS-LICENSING.md](docs/EMBERDOCS-LICENSING.md)** for details.
@@ -232,7 +230,7 @@ npm run dev
232230
2. **Developer First** - Built by developers, for developers
233231
3. **Privacy Matters** - No tracking, no data collection
234232
4. **Performance Obsessed** - Every millisecond counts
235-
5. **Open & Transparent** - Source-available core, open SDK
233+
5. **Open & Transparent** - Source-available core
236234

237235
---
238236

brand/EMBERDOCS-STYLE-GUIDE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,6 @@ Thick: 2.5px (for emphasis)
647647

648648
**License structure:**
649649
- Core: proprietary source-available license
650-
- Plugin SDK: GPLv3
651650
- Hosted/SaaS: Proprietary (optional premium offering)
652651

653652
### Examples

brand/emberdocs-brand-guidelines.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -755,7 +755,6 @@ https://emberdocs.com/brand/logos.zip
755755

756756
**Licensing Details:**
757757
- "Core: proprietary source-available license"
758-
- "Plugin SDK: GPLv3"
759758
- "Hosted Service: Proprietary (optional premium offering)"
760759
- "Full licensing details at emberdocs.com/licensing"
761760

claude.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ EmberDocs is a documentation platform built with Next.js 16, TypeScript, and Tai
3434
- **Auto-Generated Navigation:** Sidebar built from file structure
3535
- **Client-Side Search:** FlexSearch pre-built at build time, <100ms queries
3636
- **Dark-First Theme:** CSS variables with light theme opt-in
37-
- **Plugin System:** 4 lifecycle hooks for extensibility (Phase 02)
3837
- **Multi-Version Support:** Git-tag based versioning with fallback
3938

4039
### Code Organization
@@ -236,7 +235,6 @@ cp .env.example .env.local
236235

237236
**Current Status:**
238237
- ✅ Core framework is licensed under the EmberDocs Core Proprietary License (source-available). See `LICENSE`.
239-
- ✅ Plugin SDK (`sdk/`) is licensed under GPLv3. See `sdk/LICENSE`.
240238
- ✅ NOTICES.md file documents third-party licenses
241239
- ✅ Automated license checking via `npm run license-check`
242240
- ✅ License check integrated into `npm run check` command
@@ -256,7 +254,6 @@ cp .env.example .env.local
256254

257255
These decisions are fixed for Phase 01–02. Follow them:
258256

259-
- **ADL-008:** Plugin system uses 4 lifecycle hooks (onBuild, onParseMD, onSearchIndex, onRender)
260257
- **ADL-009:** Search performance target <100ms per query on 1000 docs (Week 1 spike to validate)
261258
- **ADL-010:** Git-tag versioning with fallback to single version
262259
- **ADL-011:** Hybrid testing (TDD for D1.1; implement-then-test for D1.2–D1.4)

docs/ARCHITECTURE-DECISIONS.md

Lines changed: 5 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -151,50 +151,19 @@ Versions are defined by Git tags (e.g., `v1.0`, `v2.0`) or branch names in the d
151151

152152
---
153153

154-
## ADL-006: AGPL-3.0 Core + GPLv3 Plugin SDK for Licensing
155-
156-
**Date:** 2025-12-20
157-
**Updated:** 2025-12-28 (superseded)
158-
**Status:** Superseded by ADL-013
159-
**Context:**
160-
- EmberDocs aims to be free-to-self-host (core framework) with strong copyleft protection
161-
- Plugins (themes, integrations) should be community-extensible; encourage open-source contributions
162-
- Need to ensure network service providers share source code modifications
163-
164-
**Decision:**
165-
- **Core framework:** AGPL-3.0 license, open source with strong copyleft (ensures network service providers share source code)
166-
- **Plugin SDK:** GPLv3 license; plugins must be open-source, but can integrate with proprietary code
167-
- **Licensed integrations:** Separate paid tier for official plugins/themes (future)
168-
169-
**Alternatives Considered:**
170-
- Fully open-source (MIT): Strong community, but harder to monetize; no revenue for maintenance
171-
- Fully proprietary: Limits adoption and community plugins; not developer-friendly
172-
- Dual licensing (AGPL + commercial): Stronger copyleft, but can discourage enterprise adoption
173-
174-
**Consequences:**
175-
- ✅ Free core appeals to developers and small teams
176-
- ✅ GPL plugins encourage community contributions while protecting against forks
177-
- ✅ Clear path to monetization via paid plugins/themes
178-
- ⚠️ GPL licensing may deter some commercial users (need clear legal guidance)
179-
- ⚠️ Requires discipline to categorize code as core vs. plugin
180-
181-
**Related Docs:** `EMBERDOCS-LICENSING.md`, `LICENSING-UPDATE-SUMMARY.md`
182-
183-
---
184-
185154
## ADL-007: Phase-Based MVP Development (6-Week Plan)
186155

187156
**Date:** 2025-12-23
188157
**Status:** Accepted
189158
**Context:**
190-
- Project scope is large (versioning, search, theming, plugins, analytics)
159+
- Project scope is large (versioning, search, theming, analytics)
191160
- Team is small; need to prioritize ruthlessly
192161
- Early feedback from docs authors and users is critical
193162

194163
**Decision:**
195164
Split MVP into 2 phases over 6 weeks:
196165
- **Phase 01 (Weeks 1-3):** Core engine (content loading, TOC/nav generation, syntax highlighting, dark/light themes, instant search)
197-
- **Phase 02 (Weeks 4-6):** Stabilization & plugins (accessibility, perf budgets, plugin hooks, CI integration, expanded docs)
166+
- **Phase 02 (Weeks 4-6):** Stabilization (accessibility, perf budgets, CI integration, expanded docs)
198167

199168
Full feature set (versioning, team accounts, analytics) deferred to Beta/v1.0.
200169

@@ -214,41 +183,6 @@ Full feature set (versioning, team accounts, analytics) deferred to Beta/v1.0.
214183

215184
---
216185

217-
## ADL-008: Plugin System — Minimal Hooks for MVP (4 Hooks)
218-
219-
**Date:** 2025-12-23
220-
**Status:** Accepted
221-
**Context:**
222-
- EmberDocs needs extensibility for themes, custom transformers, and integrations
223-
- Risk: Too many hooks = scope creep; too few = plugins can't do useful things
224-
- MVP Phase 02 (Week 2) allocates limited time for plugin system design
225-
226-
**Decision:**
227-
Implement 4 lifecycle hooks for MVP: `onBuild`, `onParseMD`, `onSearchIndex`, `onRender`.
228-
- `onBuild`: Runs at start of build; can generate assets or config
229-
- `onParseMD`: Transforms parsed Markdown AST (e.g., inject metadata, custom syntax)
230-
- `onSearchIndex`: Enriches search index (e.g., boost certain docs, add custom fields)
231-
- `onRender`: Post-processes rendered HTML (e.g., theme variants, inject analytics)
232-
233-
**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`.
234-
235-
**Alternatives Considered:**
236-
- Minimal (2 hooks): Too restrictive; couldn't support common use cases
237-
- Rich (8+ hooks): Scope creep; delays Phase 02; overkill for MVP
238-
- None (no plugins yet): Misses extensibility opportunity; harder to retrofit later
239-
240-
**Consequences:**
241-
- ✅ Covers 80% of plugin use cases (themes, metadata, search, rendering)
242-
- ✅ Scoped and shippable in Phase 02
243-
- ⚠️ Defers CLI commands, real-time webhooks, component system to v1.0
244-
- ⚠️ Requires sample plugins to validate design adequacy
245-
246-
**Deferred to v1.0:** CLI hooks, theme system, component registration, real-time indexing.
247-
248-
**Related Docs:** `docs/planning/mvp_phase02of02.md` (D2.4), `docs/FEATURE-DEPENDENCIES.md`
249-
250-
---
251-
252186
## ADL-009: Search Performance Target — <100ms for 1000 Docs
253187

254188
**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
422356

423357
---
424358

425-
## ADL-013: Proprietary Core License (Source-Available) + GPLv3 SDK Boundary
359+
## ADL-013: Proprietary Core License (Source-Available)
426360

427361
**Date:** 2025-12-28
428362
**Status:** Accepted
429363
**Context:**
430364
- EmberDocs core is intended to be free to use and self-host while restricting redistribution of the core framework.
431-
- The project needs a clear boundary for an open-source Plugin SDK.
432365
- Documentation and marketing must reflect the license model accurately to avoid confusion.
433366

434367
**Decision:**
435-
- **Core framework:** Proprietary source-available license (everything outside `sdk/`). See `LICENSE`.
436-
- **Plugin SDK:** GPLv3 (`sdk/`). See `sdk/LICENSE`.
437-
- The core framework must not depend on code within `sdk/` to keep licensing boundaries clear.
368+
- **Core framework:** Proprietary source-available license. See `LICENSE`.
438369
- Docs and marketing must not describe the core framework as open source.
439370

440371
**Alternatives Considered:**
@@ -443,13 +374,11 @@ Implement **WCAG 2.1 Level AA** as MVP target. Phase 02 Week 1 (D2.2) includes 3
443374
- Dual licensing: increases operational and legal overhead.
444375

445376
**Consequences:**
446-
- ✅ Clear boundary between proprietary core and GPLv3 SDK
447377
- ✅ Free-to-self-host core remains available to users
448378
- ✅ Less risk of license messaging drift across docs and marketing
449-
- ⚠️ Requires discipline to keep SDK and core dependencies isolated
450379
- ⚠️ Requires clear contributor guidance on redistribution restrictions
451380

452-
**Related Docs:** `LICENSE`, `docs/EMBERDOCS-LICENSING.md`, `sdk/README.md`, `NOTICES.md`
381+
**Related Docs:** `LICENSE`, `docs/EMBERDOCS-LICENSING.md`, `NOTICES.md`
453382

454383
---
455384

docs/EMBERDOCS-LICENSING.md

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
# EmberDocs Licensing Model
1+
# EmberDocs Licensing
22

33
**Last Updated:** 2025-12-28
4-
**Status:** Official
4+
**Status:** Official
55

66
## Overview
77

8-
EmberDocs uses a split licensing model:
8+
EmberDocs core is licensed under the EmberDocs Core Proprietary License (source-available). See `LICENSE`.
99

10-
- **Core framework (this repository, except `sdk/`)**: EmberDocs Core Proprietary License (source-available). See `LICENSE`.
11-
- **Plugin SDK (`sdk/`)**: GNU General Public License v3. See `sdk/LICENSE`.
12-
- **Third-party dependencies**: Licensed under their respective licenses. See `NOTICES.md`.
10+
Third-party dependencies are licensed under their respective licenses. See `NOTICES.md`.
1311

1412
This document is a human-readable summary. The license texts are the source of truth.
1513

16-
## Core framework (proprietary): what you can do
14+
## Core framework license (summary)
1715

1816
You may:
1917

@@ -22,30 +20,21 @@ You may:
2220
- Modify the core framework for your own use.
2321
- Deploy the core framework to serve documentation content for your products, services, or organization (including serving documentation to the public).
2422

25-
## Core framework (proprietary): restrictions
26-
2723
You may not, without prior written permission from the licensor:
2824

2925
- Distribute, publish, or otherwise make available the core framework (or any modified version of it) to any third party, in source or binary form.
3026
- Sell, sublicense, rent, lease, or otherwise transfer rights to the core framework.
31-
- 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).
27+
- 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).
3228

3329
For full details, see `LICENSE`.
3430

35-
## Plugin SDK (`sdk/`) license
36-
37-
All contents under `sdk/` are licensed under GPLv3. See `sdk/LICENSE`.
38-
39-
To keep licensing boundaries clear, the core framework should not depend on code within `sdk/`.
40-
4131
## Contributions
4232

43-
If you submit a contribution to this repository, your contribution is governed by the contribution terms described in the core license. See `LICENSE`.
33+
If you submit a contribution to this repository, your contribution is governed by the contribution terms described in `LICENSE`.
4434

4535
## Where to find license texts
4636

4737
- Core license: `LICENSE`
48-
- SDK license: `sdk/LICENSE`
4938
- Third-party notices: `NOTICES.md`
5039

5140

0 commit comments

Comments
 (0)