From ab423701671e8c3649b0b2888f24e70e6fced959 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:36:35 +0000 Subject: [PATCH 01/11] Add multi-source docs example with four independent sub-projects Co-Authored-By: kenny --- .github/workflows/check.yml | 2 +- .github/workflows/preview-docs.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- README.md | 1 + multi-source/greenhouses/fern/docs.yml | 23 +++++++++++++++ .../greenhouses/fern/fern.config.json | 4 +++ .../fern/pages/climate-control.mdx | 23 +++++++++++++++ .../greenhouses/fern/pages/overview.mdx | 24 ++++++++++++++++ multi-source/homepage/fern/docs.yml | 19 +++++++++++++ multi-source/homepage/fern/fern.config.json | 4 +++ multi-source/homepage/fern/pages/home.mdx | 18 ++++++++++++ multi-source/nursery/fern/docs.yml | 23 +++++++++++++++ multi-source/nursery/fern/fern.config.json | 4 +++ multi-source/nursery/fern/pages/overview.mdx | 24 ++++++++++++++++ .../nursery/fern/pages/propagation.mdx | 28 +++++++++++++++++++ multi-source/seeds/fern/docs.yml | 23 +++++++++++++++ multi-source/seeds/fern/fern.config.json | 4 +++ multi-source/seeds/fern/pages/catalog.mdx | 21 ++++++++++++++ multi-source/seeds/fern/pages/overview.mdx | 24 ++++++++++++++++ 19 files changed, 270 insertions(+), 3 deletions(-) create mode 100644 multi-source/greenhouses/fern/docs.yml create mode 100644 multi-source/greenhouses/fern/fern.config.json create mode 100644 multi-source/greenhouses/fern/pages/climate-control.mdx create mode 100644 multi-source/greenhouses/fern/pages/overview.mdx create mode 100644 multi-source/homepage/fern/docs.yml create mode 100644 multi-source/homepage/fern/fern.config.json create mode 100644 multi-source/homepage/fern/pages/home.mdx create mode 100644 multi-source/nursery/fern/docs.yml create mode 100644 multi-source/nursery/fern/fern.config.json create mode 100644 multi-source/nursery/fern/pages/overview.mdx create mode 100644 multi-source/nursery/fern/pages/propagation.mdx create mode 100644 multi-source/seeds/fern/docs.yml create mode 100644 multi-source/seeds/fern/fern.config.json create mode 100644 multi-source/seeds/fern/pages/catalog.mdx create mode 100644 multi-source/seeds/fern/pages/overview.mdx diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index b098b66..3e0ee9d 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/preview-docs.yml b/.github/workflows/preview-docs.yml index ca6fc1e..fcf15f9 100644 --- a/.github/workflows/preview-docs.yml +++ b/.github/workflows/preview-docs.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 75d1b59..787d15f 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/README.md b/README.md index fe50428..4e835be 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ Example Fern docs projects. Each top-level folder is a self-contained example wi | --- | --- | --- | | [`docs-starter`](./docs-starter) | Minimal starter project | [docs-starter.docs.buildwithfern.com](https://docs-starter.docs.buildwithfern.com) | | [`i18n`](./i18n) | Multi-language docs with English + Japanese translations | [i18n.docs.buildwithfern.com](https://i18n.docs.buildwithfern.com) | +| [`multi-source`](./multi-source) | Multi-source docs — four independent projects publishing to one domain | [multi-source.docs.buildwithfern.com/home](https://multi-source.docs.buildwithfern.com/home) | | [`versioning`](./docs-versioned) | Versioned site with a version dropdown and a shared page | [versioning.docs.buildwithfern.com](https://versioning.docs.buildwithfern.com) | ## Use an example diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml new file mode 100644 index 0000000..30cc39f --- /dev/null +++ b/multi-source/greenhouses/fern/docs.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +instances: + - url: multi-source.docs.buildwithfern.com/greenhouses + multi-source: true + +title: Plant Store — Greenhouses + +colors: + accent-primary: + dark: "#70E155" + light: "#008700" + background: + dark: "#111113" + light: "#FFFFFF" + +navigation: + - section: Getting started + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Climate control + path: ./pages/climate-control.mdx diff --git a/multi-source/greenhouses/fern/fern.config.json b/multi-source/greenhouses/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/greenhouses/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/greenhouses/fern/pages/climate-control.mdx b/multi-source/greenhouses/fern/pages/climate-control.mdx new file mode 100644 index 0000000..39f15c6 --- /dev/null +++ b/multi-source/greenhouses/fern/pages/climate-control.mdx @@ -0,0 +1,23 @@ +--- +title: Climate control +subtitle: Configure and tune environmental parameters. +--- + +Each greenhouse zone supports independent climate profiles. A climate profile defines the target ranges for temperature, humidity, light intensity, and CO2 concentration. + +## Creating a climate profile + +```bash +curl -X POST https://api.plantstore.com/greenhouses/{greenhouseId}/profiles \ + -H "Authorization: Bearer $TOKEN" \ + -d '{ + "name": "tropical", + "temperature": { "min": 24, "max": 30, "unit": "celsius" }, + "humidity": { "min": 70, "max": 85, "unit": "percent" }, + "light_hours": 14 + }' +``` + +## Scheduling + +Climate profiles can follow a schedule to simulate day/night cycles or seasonal transitions. Use `PATCH /greenhouses/{greenhouseId}/profiles/{profileId}/schedule` to attach a cron-based schedule. diff --git a/multi-source/greenhouses/fern/pages/overview.mdx b/multi-source/greenhouses/fern/pages/overview.mdx new file mode 100644 index 0000000..6253f74 --- /dev/null +++ b/multi-source/greenhouses/fern/pages/overview.mdx @@ -0,0 +1,24 @@ +--- +title: Greenhouses overview +subtitle: Manage climate-controlled growing environments. +--- + +The Greenhouses team builds and maintains climate control systems for indoor growing environments. This documentation covers greenhouse provisioning, sensor configuration, and environment monitoring. + +## Quickstart + + + + +Create a new greenhouse environment using `POST /greenhouses` with the desired dimensions, climate zone, and target plant families. + + + +Attach temperature, humidity, and light sensors to each zone. The system auto-calibrates based on the target plant family. + + + +View real-time dashboards or set up alerts when conditions drift outside optimal ranges. + + + diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml new file mode 100644 index 0000000..74130dc --- /dev/null +++ b/multi-source/homepage/fern/docs.yml @@ -0,0 +1,19 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +instances: + - url: multi-source.docs.buildwithfern.com/home + multi-source: true + +title: Plant Store + +colors: + accent-primary: + dark: "#70E155" + light: "#008700" + background: + dark: "#111113" + light: "#FFFFFF" + +navigation: + - page: Home + path: ./pages/home.mdx diff --git a/multi-source/homepage/fern/fern.config.json b/multi-source/homepage/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/homepage/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx new file mode 100644 index 0000000..9aae8e4 --- /dev/null +++ b/multi-source/homepage/fern/pages/home.mdx @@ -0,0 +1,18 @@ +--- +title: Plant Store docs +subtitle: Browse documentation from every team. +--- + +Welcome to the Plant Store developer hub. Each team publishes independently to their own sub-path on this domain. + + + + Seed catalog and germination guides. + + + Climate control and monitoring. + + + Plant care and propagation. + + diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml new file mode 100644 index 0000000..4d41df4 --- /dev/null +++ b/multi-source/nursery/fern/docs.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +instances: + - url: multi-source.docs.buildwithfern.com/nursery + multi-source: true + +title: Plant Store — Nursery + +colors: + accent-primary: + dark: "#70E155" + light: "#008700" + background: + dark: "#111113" + light: "#FFFFFF" + +navigation: + - section: Getting started + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Propagation + path: ./pages/propagation.mdx diff --git a/multi-source/nursery/fern/fern.config.json b/multi-source/nursery/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/nursery/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/nursery/fern/pages/overview.mdx b/multi-source/nursery/fern/pages/overview.mdx new file mode 100644 index 0000000..c23cc5c --- /dev/null +++ b/multi-source/nursery/fern/pages/overview.mdx @@ -0,0 +1,24 @@ +--- +title: Nursery overview +subtitle: Plant care, propagation, and grow-out tracking. +--- + +The Nursery team handles everything after germination — transplanting seedlings, managing grow-out schedules, and preparing plants for distribution. This documentation covers the nursery workflow from intake to shipment. + +## Quickstart + + + + +When seedlings arrive from the Seeds team, register them with `POST /nursery/intake` including the seed lot ID and greenhouse destination. + + + +Each plant variety has a recommended grow-out schedule. The system suggests one based on the species, but you can customize timing and nutrient plans. + + + +Once plants reach maturity, mark them ready for distribution. The logistics system handles routing to retail locations or direct-to-customer shipments. + + + diff --git a/multi-source/nursery/fern/pages/propagation.mdx b/multi-source/nursery/fern/pages/propagation.mdx new file mode 100644 index 0000000..614ad5a --- /dev/null +++ b/multi-source/nursery/fern/pages/propagation.mdx @@ -0,0 +1,28 @@ +--- +title: Propagation +subtitle: Techniques for multiplying plant stock. +--- + +Propagation lets the nursery multiply plant stock without sourcing additional seeds. The system tracks propagation batches alongside seed-grown plants so inventory stays accurate. + +## Supported methods + + + + +Take a 10–15 cm cutting below a node, remove lower leaves, and place in a rooting medium. Log the cutting with `POST /nursery/propagation` using method `stem_cutting`. + + + +Split an established root clump into sections, each with at least one growing point. Use method `division` when logging. + + + +Pin a low-growing branch to the soil surface and wait for roots to form at the contact point. Use method `layering` when logging. + + + + +## Tracking batches + +Every propagation event creates a batch linked to the parent plant. Query batches with `GET /nursery/propagation?parent_plant_id={plantId}` to see rooting success rates and timeline. diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml new file mode 100644 index 0000000..125b9c4 --- /dev/null +++ b/multi-source/seeds/fern/docs.yml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +instances: + - url: multi-source.docs.buildwithfern.com/seeds + multi-source: true + +title: Plant Store — Seeds + +colors: + accent-primary: + dark: "#70E155" + light: "#008700" + background: + dark: "#111113" + light: "#FFFFFF" + +navigation: + - section: Getting started + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Seed catalog + path: ./pages/catalog.mdx diff --git a/multi-source/seeds/fern/fern.config.json b/multi-source/seeds/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/seeds/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/seeds/fern/pages/catalog.mdx b/multi-source/seeds/fern/pages/catalog.mdx new file mode 100644 index 0000000..212db11 --- /dev/null +++ b/multi-source/seeds/fern/pages/catalog.mdx @@ -0,0 +1,21 @@ +--- +title: Seed catalog +subtitle: Search and filter the full seed inventory. +--- + +The seed catalog contains every variety available through Plant Store. Each entry includes the plant family, optimal climate zone, expected germination time, and current stock levels. + +## Filtering + +Filter seeds by any combination of attributes: + +| Attribute | Example | +| --- | --- | +| Climate zone | `zone:9b` | +| Plant family | `family:solanaceae` | +| Germination time | `germ:<14d` | +| Availability | `in_stock:true` | + +## Requesting new varieties + +Submit a request through the supplier portal at `POST /plants/request` with the desired species name and preferred supplier. The Seeds team reviews requests weekly. diff --git a/multi-source/seeds/fern/pages/overview.mdx b/multi-source/seeds/fern/pages/overview.mdx new file mode 100644 index 0000000..bf88152 --- /dev/null +++ b/multi-source/seeds/fern/pages/overview.mdx @@ -0,0 +1,24 @@ +--- +title: Seeds overview +subtitle: Everything you need to know about sourcing and germinating seeds. +--- + +The Seeds team manages the seed catalog, germination protocols, and supplier integrations. This documentation covers how to browse the catalog, place bulk orders, and track germination rates. + +## Quickstart + + + + +Open the [seed catalog](/seeds/getting-started/seed-catalog) to search varieties by climate zone, germination time, or plant family. + + + +Use the `/plants/{plantId}/order` endpoint to submit a bulk seed order. Each order requires a valid greenhouse destination. + + + +Monitor germination progress through the dashboard or subscribe to webhook events for status updates. + + + From 37f13589a8725065fa1ad9697ec4cd35a48e74f0 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:46:30 +0000 Subject: [PATCH 02/11] =?UTF-8?q?Remove=20homepage=20sub-project=20?= =?UTF-8?q?=E2=80=94=20use=20three=20team=20sub-paths=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: kenny --- .github/workflows/check.yml | 2 +- .github/workflows/preview-docs.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- README.md | 2 +- multi-source/homepage/fern/docs.yml | 19 ------------------- multi-source/homepage/fern/fern.config.json | 4 ---- multi-source/homepage/fern/pages/home.mdx | 18 ------------------ 7 files changed, 4 insertions(+), 45 deletions(-) delete mode 100644 multi-source/homepage/fern/docs.yml delete mode 100644 multi-source/homepage/fern/fern.config.json delete mode 100644 multi-source/homepage/fern/pages/home.mdx diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 3e0ee9d..e10ee51 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/preview-docs.yml b/.github/workflows/preview-docs.yml index fcf15f9..93b3376 100644 --- a/.github/workflows/preview-docs.yml +++ b/.github/workflows/preview-docs.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 787d15f..b30703f 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/README.md b/README.md index 4e835be..1aff7fa 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Example Fern docs projects. Each top-level folder is a self-contained example wi | --- | --- | --- | | [`docs-starter`](./docs-starter) | Minimal starter project | [docs-starter.docs.buildwithfern.com](https://docs-starter.docs.buildwithfern.com) | | [`i18n`](./i18n) | Multi-language docs with English + Japanese translations | [i18n.docs.buildwithfern.com](https://i18n.docs.buildwithfern.com) | -| [`multi-source`](./multi-source) | Multi-source docs — four independent projects publishing to one domain | [multi-source.docs.buildwithfern.com/home](https://multi-source.docs.buildwithfern.com/home) | +| [`multi-source`](./multi-source) | Multi-source docs — three independent projects publishing to one domain | [multi-source.docs.buildwithfern.com/seeds](https://multi-source.docs.buildwithfern.com/seeds) | | [`versioning`](./docs-versioned) | Versioned site with a version dropdown and a shared page | [versioning.docs.buildwithfern.com](https://versioning.docs.buildwithfern.com) | ## Use an example diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml deleted file mode 100644 index 74130dc..0000000 --- a/multi-source/homepage/fern/docs.yml +++ /dev/null @@ -1,19 +0,0 @@ -# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json - -instances: - - url: multi-source.docs.buildwithfern.com/home - multi-source: true - -title: Plant Store - -colors: - accent-primary: - dark: "#70E155" - light: "#008700" - background: - dark: "#111113" - light: "#FFFFFF" - -navigation: - - page: Home - path: ./pages/home.mdx diff --git a/multi-source/homepage/fern/fern.config.json b/multi-source/homepage/fern/fern.config.json deleted file mode 100644 index 3635565..0000000 --- a/multi-source/homepage/fern/fern.config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "organization": "fern-docs-examples", - "version": "5.3.0" -} diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx deleted file mode 100644 index 9aae8e4..0000000 --- a/multi-source/homepage/fern/pages/home.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Plant Store docs -subtitle: Browse documentation from every team. ---- - -Welcome to the Plant Store developer hub. Each team publishes independently to their own sub-path on this domain. - - - - Seed catalog and germination guides. - - - Climate control and monitoring. - - - Plant care and propagation. - - From c47a1ace1d282f9db6105a06edb803301e2fee8e Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:53:47 +0000 Subject: [PATCH 03/11] Add root homepage project publishing to multi-source.docs.buildwithfern.com (no basepath) Co-Authored-By: kenny --- .github/workflows/check.yml | 2 +- .github/workflows/preview-docs.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- README.md | 2 +- multi-source/homepage/fern/docs.yml | 19 +++++++++++++++++++ multi-source/homepage/fern/fern.config.json | 4 ++++ multi-source/homepage/fern/pages/home.mdx | 18 ++++++++++++++++++ 7 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 multi-source/homepage/fern/docs.yml create mode 100644 multi-source/homepage/fern/fern.config.json create mode 100644 multi-source/homepage/fern/pages/home.mdx diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index e10ee51..3e0ee9d 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/preview-docs.yml b/.github/workflows/preview-docs.yml index 93b3376..fcf15f9 100644 --- a/.github/workflows/preview-docs.yml +++ b/.github/workflows/preview-docs.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index b30703f..787d15f 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/README.md b/README.md index 1aff7fa..b9ca762 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Example Fern docs projects. Each top-level folder is a self-contained example wi | --- | --- | --- | | [`docs-starter`](./docs-starter) | Minimal starter project | [docs-starter.docs.buildwithfern.com](https://docs-starter.docs.buildwithfern.com) | | [`i18n`](./i18n) | Multi-language docs with English + Japanese translations | [i18n.docs.buildwithfern.com](https://i18n.docs.buildwithfern.com) | -| [`multi-source`](./multi-source) | Multi-source docs — three independent projects publishing to one domain | [multi-source.docs.buildwithfern.com/seeds](https://multi-source.docs.buildwithfern.com/seeds) | +| [`multi-source`](./multi-source) | Multi-source docs — four independent projects publishing to one domain | [multi-source.docs.buildwithfern.com](https://multi-source.docs.buildwithfern.com) | | [`versioning`](./docs-versioned) | Versioned site with a version dropdown and a shared page | [versioning.docs.buildwithfern.com](https://versioning.docs.buildwithfern.com) | ## Use an example diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml new file mode 100644 index 0000000..2799b3f --- /dev/null +++ b/multi-source/homepage/fern/docs.yml @@ -0,0 +1,19 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +instances: + - url: multi-source.docs.buildwithfern.com + multi-source: true + +title: Plant Store + +colors: + accent-primary: + dark: "#70E155" + light: "#008700" + background: + dark: "#111113" + light: "#FFFFFF" + +navigation: + - page: Home + path: ./pages/home.mdx diff --git a/multi-source/homepage/fern/fern.config.json b/multi-source/homepage/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/homepage/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx new file mode 100644 index 0000000..9aae8e4 --- /dev/null +++ b/multi-source/homepage/fern/pages/home.mdx @@ -0,0 +1,18 @@ +--- +title: Plant Store docs +subtitle: Browse documentation from every team. +--- + +Welcome to the Plant Store developer hub. Each team publishes independently to their own sub-path on this domain. + + + + Seed catalog and germination guides. + + + Climate control and monitoring. + + + Plant care and propagation. + + From 60a3d40b06b558df8b5ed21b14915520808967be Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 04:09:16 +0000 Subject: [PATCH 04/11] feat: add global theme, minimalist CSS, logo, nested seed sub-paths - Upload plantstore-theme global theme with tan/forest-green branding - Add SVG logo (dark + light) saying 'Multi-Source Docs' - Add custom CSS with minimalist card hover effects and sidebar styling - Restructure /seeds as a hub with /seeds/sunflower and /seeds/tomato children - All sub-sites reference global-theme: plantstore-theme - Each sub-site has navbar-links with product name + Home link - Update CI matrices for 6 multi-source projects Co-Authored-By: kenny --- .github/workflows/check.yml | 2 +- .github/workflows/preview-docs.yml | 2 +- .github/workflows/publish-docs.yml | 2 +- README.md | 2 +- multi-source/greenhouses/fern/docs.yml | 15 ++++--- .../homepage/fern/assets/logo-dark.svg | 4 ++ .../homepage/fern/assets/logo-light.svg | 4 ++ multi-source/homepage/fern/docs.yml | 41 ++++++++++++++++-- multi-source/homepage/fern/pages/home.mdx | 6 +-- multi-source/homepage/fern/styles.css | 42 +++++++++++++++++++ multi-source/nursery/fern/docs.yml | 15 ++++--- multi-source/seeds-sunflower/fern/docs.yml | 25 +++++++++++ .../seeds-sunflower/fern/fern.config.json | 4 ++ .../seeds-sunflower/fern/pages/overview.mdx | 23 ++++++++++ .../seeds-sunflower/fern/pages/planting.mdx | 36 ++++++++++++++++ multi-source/seeds-tomato/fern/docs.yml | 25 +++++++++++ .../seeds-tomato/fern/fern.config.json | 4 ++ .../seeds-tomato/fern/pages/overview.mdx | 24 +++++++++++ .../seeds-tomato/fern/pages/transplanting.mdx | 36 ++++++++++++++++ multi-source/seeds/fern/docs.yml | 21 ++++++---- multi-source/seeds/fern/pages/overview.mdx | 21 +++++++--- 21 files changed, 313 insertions(+), 41 deletions(-) create mode 100644 multi-source/homepage/fern/assets/logo-dark.svg create mode 100644 multi-source/homepage/fern/assets/logo-light.svg create mode 100644 multi-source/homepage/fern/styles.css create mode 100644 multi-source/seeds-sunflower/fern/docs.yml create mode 100644 multi-source/seeds-sunflower/fern/fern.config.json create mode 100644 multi-source/seeds-sunflower/fern/pages/overview.mdx create mode 100644 multi-source/seeds-sunflower/fern/pages/planting.mdx create mode 100644 multi-source/seeds-tomato/fern/docs.yml create mode 100644 multi-source/seeds-tomato/fern/fern.config.json create mode 100644 multi-source/seeds-tomato/fern/pages/overview.mdx create mode 100644 multi-source/seeds-tomato/fern/pages/transplanting.mdx diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 3e0ee9d..9d7cbff 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/preview-docs.yml b/.github/workflows/preview-docs.yml index fcf15f9..939aee3 100644 --- a/.github/workflows/preview-docs.yml +++ b/.github/workflows/preview-docs.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index 787d15f..a5588f5 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/greenhouses, multi-source/nursery, versioning] + project: [docs-starter, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, versioning] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/README.md b/README.md index b9ca762..485fef1 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Example Fern docs projects. Each top-level folder is a self-contained example wi | --- | --- | --- | | [`docs-starter`](./docs-starter) | Minimal starter project | [docs-starter.docs.buildwithfern.com](https://docs-starter.docs.buildwithfern.com) | | [`i18n`](./i18n) | Multi-language docs with English + Japanese translations | [i18n.docs.buildwithfern.com](https://i18n.docs.buildwithfern.com) | -| [`multi-source`](./multi-source) | Multi-source docs — four independent projects publishing to one domain | [multi-source.docs.buildwithfern.com](https://multi-source.docs.buildwithfern.com) | +| [`multi-source`](./multi-source) | Multi-source docs — six independent projects publishing to one domain with global theme, nested sub-paths, and shared branding | [multi-source.docs.buildwithfern.com](https://multi-source.docs.buildwithfern.com) | | [`versioning`](./docs-versioned) | Versioned site with a version dropdown and a shared page | [versioning.docs.buildwithfern.com](https://versioning.docs.buildwithfern.com) | ## Use an example diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml index 30cc39f..7cc03ee 100644 --- a/multi-source/greenhouses/fern/docs.yml +++ b/multi-source/greenhouses/fern/docs.yml @@ -1,18 +1,17 @@ # yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json +global-theme: plantstore-theme + instances: - url: multi-source.docs.buildwithfern.com/greenhouses multi-source: true -title: Plant Store — Greenhouses +title: Greenhouses -colors: - accent-primary: - dark: "#70E155" - light: "#008700" - background: - dark: "#111113" - light: "#FFFFFF" +navbar-links: + - type: minimal + text: Home + href: / navigation: - section: Getting started diff --git a/multi-source/homepage/fern/assets/logo-dark.svg b/multi-source/homepage/fern/assets/logo-dark.svg new file mode 100644 index 0000000..408b933 --- /dev/null +++ b/multi-source/homepage/fern/assets/logo-dark.svg @@ -0,0 +1,4 @@ + + + Multi-Source Docs + diff --git a/multi-source/homepage/fern/assets/logo-light.svg b/multi-source/homepage/fern/assets/logo-light.svg new file mode 100644 index 0000000..9d06475 --- /dev/null +++ b/multi-source/homepage/fern/assets/logo-light.svg @@ -0,0 +1,4 @@ + + + Multi-Source Docs + diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml index 2799b3f..da7e435 100644 --- a/multi-source/homepage/fern/docs.yml +++ b/multi-source/homepage/fern/docs.yml @@ -1,18 +1,51 @@ # yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json +global-theme: plantstore-theme + instances: - url: multi-source.docs.buildwithfern.com multi-source: true -title: Plant Store +title: Multi-Source Docs + +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 colors: accent-primary: dark: "#70E155" - light: "#008700" + light: "#1B4332" background: - dark: "#111113" - light: "#FFFFFF" + dark: "#1A1A17" + light: "#F5F0E8" + border: + dark: "#3A3A30" + light: "#D4C9B5" + sidebar-background: + dark: "#1F1F1B" + light: "#F0EBE1" + header-background: + dark: "#1A1A17" + light: "#F5F0E8" + card-background: + dark: "#252520" + light: "#EDE8DC" + +css: ./styles.css + +navbar-links: + - type: minimal + text: Seeds + href: /seeds + - type: minimal + text: Greenhouses + href: /greenhouses + - type: minimal + text: Nursery + href: /nursery navigation: - page: Home diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx index 9aae8e4..266a803 100644 --- a/multi-source/homepage/fern/pages/home.mdx +++ b/multi-source/homepage/fern/pages/home.mdx @@ -1,13 +1,13 @@ --- -title: Plant Store docs +title: Multi-Source Docs subtitle: Browse documentation from every team. --- -Welcome to the Plant Store developer hub. Each team publishes independently to their own sub-path on this domain. +Each team publishes independently to their own sub-path on this domain. Some teams have nested sub-children for individual product areas. - Seed catalog and germination guides. + Seed catalog hub with nested variety docs (sunflower, tomato). Climate control and monitoring. diff --git a/multi-source/homepage/fern/styles.css b/multi-source/homepage/fern/styles.css new file mode 100644 index 0000000..0a4b33e --- /dev/null +++ b/multi-source/homepage/fern/styles.css @@ -0,0 +1,42 @@ +/* Multi-Source Docs — shared minimalist theme */ + +:root, +.light { + --background: #F5F0E8; + --card-background: #EDE8DC; + --sidebar-background: #F0EBE1; + --header-background: #F5F0E8; + --border: #D4C9B5; +} + +.dark { + --background: #1A1A17; + --card-background: #252520; + --sidebar-background: #1F1F1B; + --header-background: #1A1A17; + --border: #3A3A30; +} + +/* Typography */ +.fern-page-heading { + letter-spacing: -0.03em; +} + +/* Sidebar refinements */ +.fern-sidebar { + font-size: 0.875rem; +} + +/* Card hover lift */ +.fern-card { + transition: transform 0.15s ease, box-shadow 0.15s ease; +} + +.fern-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.dark .fern-card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); +} diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml index 4d41df4..bcd595f 100644 --- a/multi-source/nursery/fern/docs.yml +++ b/multi-source/nursery/fern/docs.yml @@ -1,18 +1,17 @@ # yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json +global-theme: plantstore-theme + instances: - url: multi-source.docs.buildwithfern.com/nursery multi-source: true -title: Plant Store — Nursery +title: Nursery -colors: - accent-primary: - dark: "#70E155" - light: "#008700" - background: - dark: "#111113" - light: "#FFFFFF" +navbar-links: + - type: minimal + text: Home + href: / navigation: - section: Getting started diff --git a/multi-source/seeds-sunflower/fern/docs.yml b/multi-source/seeds-sunflower/fern/docs.yml new file mode 100644 index 0000000..2cc13ab --- /dev/null +++ b/multi-source/seeds-sunflower/fern/docs.yml @@ -0,0 +1,25 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +global-theme: plantstore-theme + +instances: + - url: multi-source.docs.buildwithfern.com/seeds/sunflower + multi-source: true + +title: Seeds — Sunflower + +navbar-links: + - type: minimal + text: Home + href: / + - type: minimal + text: Seeds + href: /seeds + +navigation: + - section: Sunflower seeds + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Planting guide + path: ./pages/planting.mdx diff --git a/multi-source/seeds-sunflower/fern/fern.config.json b/multi-source/seeds-sunflower/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/seeds-sunflower/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/seeds-sunflower/fern/pages/overview.mdx b/multi-source/seeds-sunflower/fern/pages/overview.mdx new file mode 100644 index 0000000..e96eb4d --- /dev/null +++ b/multi-source/seeds-sunflower/fern/pages/overview.mdx @@ -0,0 +1,23 @@ +--- +title: Sunflower seeds +subtitle: Helianthus annuus varieties and growing guides. +--- + +Sunflowers are one of the most rewarding plants to grow from seed. This section covers our full range of Helianthus varieties, from dwarf patio sunflowers to giant Russian mammoth cultivars. + +## Available varieties + +| Variety | Height | Days to bloom | Best for | +| --- | --- | --- | --- | +| Mammoth Russian | 3-4 m | 80-100 | Large seeds, bird feed | +| Teddy Bear | 60-90 cm | 65-75 | Containers, borders | +| Autumn Beauty | 1.5-2 m | 70-80 | Cut flowers, mixed colors | +| Lemon Queen | 1.5 m | 75-85 | Pollinators, pale yellow | + +## Germination specs + +- **Soil temperature**: 18-24 C +- **Depth**: 2.5 cm +- **Spacing**: 45-60 cm apart +- **Germination time**: 7-14 days +- **Light**: Full sun (6+ hours) diff --git a/multi-source/seeds-sunflower/fern/pages/planting.mdx b/multi-source/seeds-sunflower/fern/pages/planting.mdx new file mode 100644 index 0000000..98934b7 --- /dev/null +++ b/multi-source/seeds-sunflower/fern/pages/planting.mdx @@ -0,0 +1,36 @@ +--- +title: Planting guide +subtitle: Step-by-step sunflower planting instructions. +--- + +Sunflowers are direct-sown after the last frost date. They dislike transplanting, so start them where they will grow. + +## When to plant + + + + +Sunflowers need warm soil. Wait until soil temperatures are consistently above 15 C, typically 2-3 weeks after the last spring frost. + + + +Choose a spot with full sun and well-drained soil. Work in compost to a depth of 15 cm. Sunflowers are not fussy about pH but prefer 6.0-7.5. + + + +Plant seeds 2.5 cm deep and 15 cm apart. Once seedlings have two sets of true leaves, thin to 45-60 cm spacing for full-size varieties. + + + +Keep soil evenly moist until germination. After establishment, sunflowers are drought-tolerant. Expect blooms in 65-100 days depending on variety. + + + + +## Common issues + +| Issue | Cause | Solution | +| --- | --- | --- | +| Leggy seedlings | Insufficient light | Ensure 6+ hours direct sun | +| No germination | Cold soil | Wait for soil temps above 15 C | +| Broken stems | Wind exposure | Stake tall varieties or plant near a fence | diff --git a/multi-source/seeds-tomato/fern/docs.yml b/multi-source/seeds-tomato/fern/docs.yml new file mode 100644 index 0000000..aec3dd2 --- /dev/null +++ b/multi-source/seeds-tomato/fern/docs.yml @@ -0,0 +1,25 @@ +# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json + +global-theme: plantstore-theme + +instances: + - url: multi-source.docs.buildwithfern.com/seeds/tomato + multi-source: true + +title: Seeds — Tomato + +navbar-links: + - type: minimal + text: Home + href: / + - type: minimal + text: Seeds + href: /seeds + +navigation: + - section: Tomato seeds + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Transplanting + path: ./pages/transplanting.mdx diff --git a/multi-source/seeds-tomato/fern/fern.config.json b/multi-source/seeds-tomato/fern/fern.config.json new file mode 100644 index 0000000..3635565 --- /dev/null +++ b/multi-source/seeds-tomato/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "fern-docs-examples", + "version": "5.3.0" +} diff --git a/multi-source/seeds-tomato/fern/pages/overview.mdx b/multi-source/seeds-tomato/fern/pages/overview.mdx new file mode 100644 index 0000000..33bd11d --- /dev/null +++ b/multi-source/seeds-tomato/fern/pages/overview.mdx @@ -0,0 +1,24 @@ +--- +title: Tomato seeds +subtitle: Heirloom and hybrid cultivars for every climate. +--- + +Tomatoes are the backbone of any kitchen garden. This section covers our full range of tomato varieties, from compact cherry tomatoes to heavy-yielding beefsteaks. + +## Available varieties + +| Variety | Type | Days to harvest | Fruit size | +| --- | --- | --- | --- | +| Cherokee Purple | Heirloom | 80-90 | Large beefsteak | +| Sun Gold | Hybrid | 55-65 | Cherry | +| San Marzano | Heirloom | 78-85 | Paste/plum | +| Early Girl | Hybrid | 50-62 | Medium globe | + +## Germination specs + +- **Soil temperature**: 21-27 C +- **Depth**: 6 mm +- **Spacing**: 60-90 cm apart (after transplant) +- **Germination time**: 5-10 days +- **Light**: Full sun (8+ hours) +- **Start indoors**: 6-8 weeks before last frost diff --git a/multi-source/seeds-tomato/fern/pages/transplanting.mdx b/multi-source/seeds-tomato/fern/pages/transplanting.mdx new file mode 100644 index 0000000..2b1ee06 --- /dev/null +++ b/multi-source/seeds-tomato/fern/pages/transplanting.mdx @@ -0,0 +1,36 @@ +--- +title: Transplanting +subtitle: Moving tomato seedlings outdoors successfully. +--- + +Tomatoes are always started indoors and transplanted after the last frost. Proper hardening off is critical to avoid transplant shock. + +## Hardening off + + + + +One week before transplanting, place seedlings outdoors in a sheltered, shaded spot for 2-3 hours. Bring them inside at night. + + + +Each day, increase sun exposure by 1-2 hours and introduce light wind. By day five, leave them in full sun for the entire day. + + + +On a cloudy afternoon, dig a hole deep enough to bury the stem up to the first set of true leaves. Tomatoes root along buried stems, producing a stronger plant. + + + +Water deeply at transplant time. Apply 5-8 cm of straw or wood chip mulch around (not touching) the stem to retain moisture and suppress weeds. + + + + +## Spacing guide + +| Growth habit | Spacing | Support | +| --- | --- | --- | +| Determinate (bush) | 60 cm | Cage or short stake | +| Indeterminate (vine) | 90 cm | Tall stake or trellis | +| Cherry / patio | 45 cm | Optional small cage | diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml index 125b9c4..205b78f 100644 --- a/multi-source/seeds/fern/docs.yml +++ b/multi-source/seeds/fern/docs.yml @@ -1,18 +1,23 @@ # yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json +global-theme: plantstore-theme + instances: - url: multi-source.docs.buildwithfern.com/seeds multi-source: true -title: Plant Store — Seeds +title: Seeds -colors: - accent-primary: - dark: "#70E155" - light: "#008700" - background: - dark: "#111113" - light: "#FFFFFF" +navbar-links: + - type: minimal + text: Home + href: / + - type: minimal + text: Sunflower + href: /seeds/sunflower + - type: minimal + text: Tomato + href: /seeds/tomato navigation: - section: Getting started diff --git a/multi-source/seeds/fern/pages/overview.mdx b/multi-source/seeds/fern/pages/overview.mdx index bf88152..c16c0ce 100644 --- a/multi-source/seeds/fern/pages/overview.mdx +++ b/multi-source/seeds/fern/pages/overview.mdx @@ -1,20 +1,29 @@ --- -title: Seeds overview -subtitle: Everything you need to know about sourcing and germinating seeds. +title: Seeds +subtitle: Browse seed documentation by variety. --- -The Seeds team manages the seed catalog, germination protocols, and supplier integrations. This documentation covers how to browse the catalog, place bulk orders, and track germination rates. +The Seeds team manages the full seed catalog across all varieties. Each variety has its own dedicated documentation maintained by a specialist sub-team. + + + + Helianthus varieties, planting guides, and harvest timing. + + + Heirloom and hybrid cultivars, germination, and transplanting. + + ## Quickstart - -Open the [seed catalog](/seeds/getting-started/seed-catalog) to search varieties by climate zone, germination time, or plant family. + +Browse the variety sub-sites above to find planting guides, soil requirements, and expected yields. -Use the `/plants/{plantId}/order` endpoint to submit a bulk seed order. Each order requires a valid greenhouse destination. +Use the `POST /plants/{plantId}/order` endpoint to submit a bulk seed order. Each order requires a valid greenhouse destination. From 87617d44aed974fe9bf55945c77f8ddfcebe95eb Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 04:21:58 +0000 Subject: [PATCH 05/11] Add NVIDIA-style header: leaf logo + per-site right-text, fix navbar-links per site Co-Authored-By: kenny --- .../greenhouses/fern/assets/logo-dark.svg | 3 +++ .../greenhouses/fern/assets/logo-light.svg | 3 +++ multi-source/greenhouses/fern/docs.yml | 7 ++++++ .../homepage/fern/assets/logo-dark.svg | 5 ++-- .../homepage/fern/assets/logo-light.svg | 5 ++-- multi-source/homepage/fern/docs.yml | 23 +------------------ .../nursery/fern/assets/logo-dark.svg | 3 +++ .../nursery/fern/assets/logo-light.svg | 3 +++ multi-source/nursery/fern/docs.yml | 7 ++++++ .../seeds-sunflower/fern/assets/logo-dark.svg | 3 +++ .../fern/assets/logo-light.svg | 3 +++ multi-source/seeds-sunflower/fern/docs.yml | 9 +++++++- .../seeds-tomato/fern/assets/logo-dark.svg | 3 +++ .../seeds-tomato/fern/assets/logo-light.svg | 3 +++ multi-source/seeds-tomato/fern/docs.yml | 9 +++++++- multi-source/seeds/fern/assets/logo-dark.svg | 3 +++ multi-source/seeds/fern/assets/logo-light.svg | 3 +++ multi-source/seeds/fern/docs.yml | 7 ++++++ 18 files changed, 72 insertions(+), 30 deletions(-) create mode 100644 multi-source/greenhouses/fern/assets/logo-dark.svg create mode 100644 multi-source/greenhouses/fern/assets/logo-light.svg create mode 100644 multi-source/nursery/fern/assets/logo-dark.svg create mode 100644 multi-source/nursery/fern/assets/logo-light.svg create mode 100644 multi-source/seeds-sunflower/fern/assets/logo-dark.svg create mode 100644 multi-source/seeds-sunflower/fern/assets/logo-light.svg create mode 100644 multi-source/seeds-tomato/fern/assets/logo-dark.svg create mode 100644 multi-source/seeds-tomato/fern/assets/logo-light.svg create mode 100644 multi-source/seeds/fern/assets/logo-dark.svg create mode 100644 multi-source/seeds/fern/assets/logo-light.svg diff --git a/multi-source/greenhouses/fern/assets/logo-dark.svg b/multi-source/greenhouses/fern/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/greenhouses/fern/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/greenhouses/fern/assets/logo-light.svg b/multi-source/greenhouses/fern/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/greenhouses/fern/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml index 7cc03ee..8ad57fb 100644 --- a/multi-source/greenhouses/fern/docs.yml +++ b/multi-source/greenhouses/fern/docs.yml @@ -8,6 +8,13 @@ instances: title: Greenhouses +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Greenhouses + navbar-links: - type: minimal text: Home diff --git a/multi-source/homepage/fern/assets/logo-dark.svg b/multi-source/homepage/fern/assets/logo-dark.svg index 408b933..7ca0e5e 100644 --- a/multi-source/homepage/fern/assets/logo-dark.svg +++ b/multi-source/homepage/fern/assets/logo-dark.svg @@ -1,4 +1,3 @@ - - - Multi-Source Docs + + diff --git a/multi-source/homepage/fern/assets/logo-light.svg b/multi-source/homepage/fern/assets/logo-light.svg index 9d06475..356f3ae 100644 --- a/multi-source/homepage/fern/assets/logo-light.svg +++ b/multi-source/homepage/fern/assets/logo-light.svg @@ -1,4 +1,3 @@ - - - Multi-Source Docs + + diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml index da7e435..50603ad 100644 --- a/multi-source/homepage/fern/docs.yml +++ b/multi-source/homepage/fern/docs.yml @@ -13,28 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - -colors: - accent-primary: - dark: "#70E155" - light: "#1B4332" - background: - dark: "#1A1A17" - light: "#F5F0E8" - border: - dark: "#3A3A30" - light: "#D4C9B5" - sidebar-background: - dark: "#1F1F1B" - light: "#F0EBE1" - header-background: - dark: "#1A1A17" - light: "#F5F0E8" - card-background: - dark: "#252520" - light: "#EDE8DC" - -css: ./styles.css + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/nursery/fern/assets/logo-dark.svg b/multi-source/nursery/fern/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/nursery/fern/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/nursery/fern/assets/logo-light.svg b/multi-source/nursery/fern/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/nursery/fern/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml index bcd595f..b2a599c 100644 --- a/multi-source/nursery/fern/docs.yml +++ b/multi-source/nursery/fern/docs.yml @@ -8,6 +8,13 @@ instances: title: Nursery +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Nursery + navbar-links: - type: minimal text: Home diff --git a/multi-source/seeds-sunflower/fern/assets/logo-dark.svg b/multi-source/seeds-sunflower/fern/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/seeds-sunflower/fern/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds-sunflower/fern/assets/logo-light.svg b/multi-source/seeds-sunflower/fern/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/seeds-sunflower/fern/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds-sunflower/fern/docs.yml b/multi-source/seeds-sunflower/fern/docs.yml index 2cc13ab..083f396 100644 --- a/multi-source/seeds-sunflower/fern/docs.yml +++ b/multi-source/seeds-sunflower/fern/docs.yml @@ -6,7 +6,14 @@ instances: - url: multi-source.docs.buildwithfern.com/seeds/sunflower multi-source: true -title: Seeds — Sunflower +title: Sunflower + +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Sunflower navbar-links: - type: minimal diff --git a/multi-source/seeds-tomato/fern/assets/logo-dark.svg b/multi-source/seeds-tomato/fern/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/seeds-tomato/fern/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds-tomato/fern/assets/logo-light.svg b/multi-source/seeds-tomato/fern/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/seeds-tomato/fern/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds-tomato/fern/docs.yml b/multi-source/seeds-tomato/fern/docs.yml index aec3dd2..2c3ae77 100644 --- a/multi-source/seeds-tomato/fern/docs.yml +++ b/multi-source/seeds-tomato/fern/docs.yml @@ -6,7 +6,14 @@ instances: - url: multi-source.docs.buildwithfern.com/seeds/tomato multi-source: true -title: Seeds — Tomato +title: Tomato + +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Tomato navbar-links: - type: minimal diff --git a/multi-source/seeds/fern/assets/logo-dark.svg b/multi-source/seeds/fern/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/seeds/fern/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds/fern/assets/logo-light.svg b/multi-source/seeds/fern/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/seeds/fern/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml index 205b78f..e8957de 100644 --- a/multi-source/seeds/fern/docs.yml +++ b/multi-source/seeds/fern/docs.yml @@ -8,6 +8,13 @@ instances: title: Seeds +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Seeds + navbar-links: - type: minimal text: Home From 4fd34167b84d1e87a457dba8616b67accc00e269 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 19:20:16 +0000 Subject: [PATCH 06/11] Rewrite content: multi-source docs tutorial instead of plant theme - Homepage: explains multi-source features, search scoping, links to GitHub - Seeds: shows nested sub-children config - Seeds/catalog: Search and Ask AI scoping walkthrough - Sunflower: shows minimal docs.yml config example - Sunflower/planting: per-site navbar customization - Tomato: global theme upload workflow - Tomato/transplanting: theme merging behavior - Greenhouses: unified theming with color palette and CSS - Greenhouses/climate-control: full theme.yml contents - Nursery: independent publishing workflow - Nursery/propagation: CI/CD matrix setup - Updated sidebar nav labels to match new content Co-Authored-By: kenny --- multi-source/greenhouses/fern/docs.yml | 6 +- .../fern/pages/climate-control.mdx | 60 +++++++++++++----- .../greenhouses/fern/pages/overview.mdx | 51 ++++++++++----- multi-source/homepage/fern/pages/home.mdx | 37 +++++++++-- multi-source/nursery/fern/docs.yml | 6 +- multi-source/nursery/fern/pages/overview.mdx | 42 ++++++++----- .../nursery/fern/pages/propagation.mdx | 47 +++++++++----- multi-source/seeds-sunflower/fern/docs.yml | 4 +- .../seeds-sunflower/fern/pages/overview.mdx | 52 +++++++++++----- .../seeds-sunflower/fern/pages/planting.mdx | 62 ++++++++++--------- multi-source/seeds-tomato/fern/docs.yml | 4 +- .../seeds-tomato/fern/pages/overview.mdx | 47 +++++++++----- .../seeds-tomato/fern/pages/transplanting.mdx | 48 +++++++------- multi-source/seeds/fern/docs.yml | 4 +- multi-source/seeds/fern/pages/catalog.mdx | 37 +++++++---- multi-source/seeds/fern/pages/overview.mdx | 41 ++++++------ 16 files changed, 349 insertions(+), 199 deletions(-) diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml index 8ad57fb..d81b973 100644 --- a/multi-source/greenhouses/fern/docs.yml +++ b/multi-source/greenhouses/fern/docs.yml @@ -21,9 +21,9 @@ navbar-links: href: / navigation: - - section: Getting started + - section: Theming contents: - - page: Overview + - page: Unified theming path: ./pages/overview.mdx - - page: Climate control + - page: Theme configuration path: ./pages/climate-control.mdx diff --git a/multi-source/greenhouses/fern/pages/climate-control.mdx b/multi-source/greenhouses/fern/pages/climate-control.mdx index 39f15c6..22ae962 100644 --- a/multi-source/greenhouses/fern/pages/climate-control.mdx +++ b/multi-source/greenhouses/fern/pages/climate-control.mdx @@ -1,23 +1,53 @@ --- -title: Climate control -subtitle: Configure and tune environmental parameters. +title: Theme configuration +subtitle: The full theme.yml that powers this site. --- -Each greenhouse zone supports independent climate profiles. A climate profile defines the target ranges for temperature, humidity, light intensity, and CO2 concentration. +When you run `fern docs theme export`, the CLI extracts theme-eligible fields from your `docs.yml` into a `theme.yml` file. Here's the complete theme used by all six sites on this domain. -## Creating a climate profile +## theme.yml -```bash -curl -X POST https://api.plantstore.com/greenhouses/{greenhouseId}/profiles \ - -H "Authorization: Bearer $TOKEN" \ - -d '{ - "name": "tropical", - "temperature": { "min": 24, "max": 30, "unit": "celsius" }, - "humidity": { "min": 70, "max": 85, "unit": "percent" }, - "light_hours": 14 - }' +```yaml +colors: + accent-primary: + dark: '#70E155' + light: '#1B4332' + background: + dark: '#1A1A17' + light: '#F5F0E8' + border: + dark: '#3A3A30' + light: '#D4C9B5' + sidebar-background: + dark: '#1F1F1B' + light: '#F0EBE1' + header-background: + dark: '#1A1A17' + light: '#F5F0E8' + card-background: + dark: '#252520' + light: '#EDE8DC' +css: ./assets/styles.css ``` -## Scheduling +## Upload workflow -Climate profiles can follow a schedule to simulate day/night cycles or seasonal transitions. Use `PATCH /greenhouses/{greenhouseId}/profiles/{profileId}/schedule` to attach a cron-based schedule. + + + +Set colors and CSS in the project that will own the theme (typically the homepage or a shared config project). + + + +Run `fern docs theme export` to extract theme-eligible fields into a `theme/` directory. + + + +Run `fern docs theme upload --name plantstore-theme` to save it under a name your org can reference. + + + +Each sub-site adds `global-theme: plantstore-theme` to their `docs.yml`. The CLI fetches and applies it at publish time. + + + diff --git a/multi-source/greenhouses/fern/pages/overview.mdx b/multi-source/greenhouses/fern/pages/overview.mdx index 6253f74..5807e67 100644 --- a/multi-source/greenhouses/fern/pages/overview.mdx +++ b/multi-source/greenhouses/fern/pages/overview.mdx @@ -1,24 +1,45 @@ --- -title: Greenhouses overview -subtitle: Manage climate-controlled growing environments. +title: Unified theming +subtitle: Consistent branding across independent sites. --- -The Greenhouses team builds and maintains climate control systems for indoor growing environments. This documentation covers greenhouse provisioning, sensor configuration, and environment monitoring. +This Greenhouses site looks the same as every other site on this domain — same colors, same card styles, same typography. That's the `global-theme` at work. -## Quickstart +## One theme, six sites - +All sites reference the same theme with a single line in their `docs.yml`: - -Create a new greenhouse environment using `POST /greenhouses` with the desired dimensions, climate zone, and target plant families. - +```yaml +global-theme: plantstore-theme +``` - -Attach temperature, humidity, and light sensors to each zone. The system auto-calibrates based on the target plant family. - +The theme is [defined in the homepage project](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern) and uploaded to Fern's registry. When any site publishes, the CLI fetches the theme and merges it with the local config. - -View real-time dashboards or set up alerts when conditions drift outside optimal ranges. - +## The color palette - +| Token | Light | Dark | +| --- | --- | --- | +| Background | `#F5F0E8` (light tan) | `#1A1A17` | +| Accent | `#1B4332` (forest green) | `#70E155` | +| Border | `#D4C9B5` | `#3A3A30` | +| Sidebar | `#F0EBE1` | `#1F1F1B` | +| Card | `#EDE8DC` | `#252520` | + +## Custom CSS + +The theme also includes a `styles.css` with subtle refinements: + +```css +/* Card hover lift effect */ +.fern-card { + transition: transform 0.15s ease, box-shadow 0.15s ease; +} +.fern-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} +``` + + +Toggle dark mode to see both color schemes in action. The theme defines separate values for light and dark modes. + diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx index 266a803..3b24b0a 100644 --- a/multi-source/homepage/fern/pages/home.mdx +++ b/multi-source/homepage/fern/pages/home.mdx @@ -1,18 +1,45 @@ --- title: Multi-Source Docs -subtitle: Browse documentation from every team. +subtitle: A live example of Fern's multi-source documentation. --- -Each team publishes independently to their own sub-path on this domain. Some teams have nested sub-children for individual product areas. +This site is built from [six independent projects](https://github.com/fern-api/docs-examples/tree/main/multi-source), each publishing to a different sub-path on the same domain. Every team owns their own `fern/` directory and deploys independently. + + +Try the search bar or Ask AI — results are scoped hierarchically by sub-path. Navigate to a team site like [Seeds](/seeds) and search again to see only that team's content. + - Seed catalog hub with nested variety docs (sunflower, tomato). + A hub site with nested sub-children at `/seeds/sunflower` and `/seeds/tomato`. - Climate control and monitoring. + Demonstrates unified theming via `global-theme` with a shared color palette and CSS. - Plant care and propagation. + Shows how each team publishes independently with their own CI workflow. + +## How it works + +Each sub-site is a separate `fern/` project with its own `docs.yml`. The key setting is `multi-source: true` on the instance: + +```yaml +instances: + - url: multi-source.docs.buildwithfern.com/seeds + multi-source: true +``` + +All six projects share a `global-theme` for consistent branding — colors, CSS, and typography are defined once and [uploaded to the registry](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern). + +## Features demonstrated + +| Feature | Where to see it | +| --- | --- | +| Multi-source publishing | Every sub-path is a separate project | +| Nested sub-children | [/seeds](/seeds) → [/seeds/sunflower](/seeds/sunflower), [/seeds/tomato](/seeds/tomato) | +| Global theme | Shared colors and CSS across all sites | +| Per-site navbar | Each site has its own header links | +| Hierarchical search | Search results scope to the current sub-path | +| Independent deploys | Each team publishes without affecting others | diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml index b2a599c..b2b8cd9 100644 --- a/multi-source/nursery/fern/docs.yml +++ b/multi-source/nursery/fern/docs.yml @@ -21,9 +21,9 @@ navbar-links: href: / navigation: - - section: Getting started + - section: Publishing contents: - - page: Overview + - page: Independent publishing path: ./pages/overview.mdx - - page: Propagation + - page: CI/CD setup path: ./pages/propagation.mdx diff --git a/multi-source/nursery/fern/pages/overview.mdx b/multi-source/nursery/fern/pages/overview.mdx index c23cc5c..afaf2be 100644 --- a/multi-source/nursery/fern/pages/overview.mdx +++ b/multi-source/nursery/fern/pages/overview.mdx @@ -1,24 +1,36 @@ --- -title: Nursery overview -subtitle: Plant care, propagation, and grow-out tracking. +title: Independent publishing +subtitle: Each team deploys on their own schedule. --- -The Nursery team handles everything after germination — transplanting seedlings, managing grow-out schedules, and preparing plants for distribution. This documentation covers the nursery workflow from intake to shipment. +This Nursery site is published independently from the other five sites on this domain. The Seeds team can ship updates without waiting on Nursery, and vice versa. -## Quickstart +## How multi-source publishing works - +Each sub-site is a separate `fern/` project with its own `fern.config.json` and `docs.yml`. Publishing one site doesn't affect the others: - -When seedlings arrive from the Seeds team, register them with `POST /nursery/intake` including the seed lot ID and greenhouse destination. - +```bash +# Publish only the Nursery site +cd multi-source/nursery +fern generate --docs +``` - -Each plant variety has a recommended grow-out schedule. The system suggests one based on the species, but you can customize timing and nutrient plans. - +The other five sites remain unchanged. This is the key benefit of multi-source — teams don't block each other. - -Once plants reach maturity, mark them ready for distribution. The logistics system handles routing to retail locations or direct-to-customer shipments. - +## Project structure - +``` +multi-source/ +├── homepage/fern/ # publishes to / +├── seeds/fern/ # publishes to /seeds +├── seeds-sunflower/fern/ # publishes to /seeds/sunflower +├── seeds-tomato/fern/ # publishes to /seeds/tomato +├── greenhouses/fern/ # publishes to /greenhouses +└── nursery/fern/ # publishes to /nursery (this site) +``` + +Each directory is self-contained with its own pages, assets, and configuration. The only shared element is the `global-theme` name — and even that is fetched from the registry at publish time, not from a local file. + + +View the full source for all six projects on [GitHub](https://github.com/fern-api/docs-examples/tree/main/multi-source). + diff --git a/multi-source/nursery/fern/pages/propagation.mdx b/multi-source/nursery/fern/pages/propagation.mdx index 614ad5a..f26f69d 100644 --- a/multi-source/nursery/fern/pages/propagation.mdx +++ b/multi-source/nursery/fern/pages/propagation.mdx @@ -1,28 +1,41 @@ --- -title: Propagation -subtitle: Techniques for multiplying plant stock. +title: CI/CD setup +subtitle: Automated publishing with GitHub Actions. --- -Propagation lets the nursery multiply plant stock without sourcing additional seeds. The system tracks propagation batches alongside seed-grown plants so inventory stays accurate. +Each sub-site can be published through CI/CD. This example uses a GitHub Actions matrix to check and publish all six projects. -## Supported methods +## Workflow matrix - +The `publish-docs.yml` workflow runs `fern generate --docs` for each project in the matrix: - -Take a 10–15 cm cutting below a node, remove lower leaves, and place in a rooting medium. Log the cutting with `POST /nursery/propagation` using method `stem_cutting`. - +```yaml +strategy: + matrix: + project: + - multi-source/homepage + - multi-source/seeds + - multi-source/seeds-sunflower + - multi-source/seeds-tomato + - multi-source/greenhouses + - multi-source/nursery +``` - -Split an established root clump into sections, each with at least one growing point. Use method `division` when logging. - +Each matrix entry runs independently. If one site fails to publish, the others still succeed. - -Pin a low-growing branch to the soil surface and wait for roots to form at the contact point. Use method `layering` when logging. - +## Selective publishing - +In a real setup, you might want to publish only the sites that changed. You can use path filters in your workflow: -## Tracking batches +```yaml +on: + push: + paths: + - 'multi-source/nursery/**' +``` -Every propagation event creates a batch linked to the parent plant. Query batches with `GET /nursery/propagation?parent_plant_id={plantId}` to see rooting success rates and timeline. +This way, changes to the Nursery project only trigger a Nursery publish — the other five sites are unaffected. + +## Preview deployments + +The `preview-docs.yml` workflow generates preview URLs for pull requests, letting teams review changes before they go live. Each project in the matrix gets its own preview. diff --git a/multi-source/seeds-sunflower/fern/docs.yml b/multi-source/seeds-sunflower/fern/docs.yml index 083f396..0aa7a59 100644 --- a/multi-source/seeds-sunflower/fern/docs.yml +++ b/multi-source/seeds-sunflower/fern/docs.yml @@ -24,9 +24,9 @@ navbar-links: href: /seeds navigation: - - section: Sunflower seeds + - section: Sub-site config contents: - page: Overview path: ./pages/overview.mdx - - page: Planting guide + - page: Per-site navbar path: ./pages/planting.mdx diff --git a/multi-source/seeds-sunflower/fern/pages/overview.mdx b/multi-source/seeds-sunflower/fern/pages/overview.mdx index e96eb4d..c4449ca 100644 --- a/multi-source/seeds-sunflower/fern/pages/overview.mdx +++ b/multi-source/seeds-sunflower/fern/pages/overview.mdx @@ -1,23 +1,43 @@ --- -title: Sunflower seeds -subtitle: Helianthus annuus varieties and growing guides. +title: Sunflower sub-site +subtitle: How simple a sub-site's docs.yml can be. --- -Sunflowers are one of the most rewarding plants to grow from seed. This section covers our full range of Helianthus varieties, from dwarf patio sunflowers to giant Russian mammoth cultivars. +This is a sub-child site at `/seeds/sunflower`. Its entire configuration fits in a few lines — the `global-theme` handles all the branding. -## Available varieties +## The complete docs.yml -| Variety | Height | Days to bloom | Best for | -| --- | --- | --- | --- | -| Mammoth Russian | 3-4 m | 80-100 | Large seeds, bird feed | -| Teddy Bear | 60-90 cm | 65-75 | Containers, borders | -| Autumn Beauty | 1.5-2 m | 70-80 | Cut flowers, mixed colors | -| Lemon Queen | 1.5 m | 75-85 | Pollinators, pale yellow | +```yaml +global-theme: plantstore-theme -## Germination specs +instances: + - url: multi-source.docs.buildwithfern.com/seeds/sunflower + multi-source: true -- **Soil temperature**: 18-24 C -- **Depth**: 2.5 cm -- **Spacing**: 45-60 cm apart -- **Germination time**: 7-14 days -- **Light**: Full sun (6+ hours) +title: Sunflower + +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Sunflower + +navbar-links: + - type: minimal + text: Home + href: / + - type: minimal + text: Seeds + href: /seeds + +navigation: + - section: Sunflower seeds + contents: + - page: Overview + path: ./pages/overview.mdx + - page: Planting guide + path: ./pages/planting.mdx +``` + +That's it. The theme provides colors and CSS. The local config adds the logo text, navbar links, and page navigation. Each team only needs to manage their own pages and a minimal `docs.yml`. diff --git a/multi-source/seeds-sunflower/fern/pages/planting.mdx b/multi-source/seeds-sunflower/fern/pages/planting.mdx index 98934b7..c9691b4 100644 --- a/multi-source/seeds-sunflower/fern/pages/planting.mdx +++ b/multi-source/seeds-sunflower/fern/pages/planting.mdx @@ -1,36 +1,38 @@ --- -title: Planting guide -subtitle: Step-by-step sunflower planting instructions. +title: Per-site navbar +subtitle: Each sub-site controls its own header links. --- -Sunflowers are direct-sown after the last frost date. They dislike transplanting, so start them where they will grow. +Every sub-site in a multi-source setup defines its own `navbar-links`. This lets each team customize the header navigation for their audience. -## When to plant +## Navbar links by site - - - -Sunflowers need warm soil. Wait until soil temperatures are consistently above 15 C, typically 2-3 weeks after the last spring frost. - - - -Choose a spot with full sun and well-drained soil. Work in compost to a depth of 15 cm. Sunflowers are not fussy about pH but prefer 6.0-7.5. - - - -Plant seeds 2.5 cm deep and 15 cm apart. Once seedlings have two sets of true leaves, thin to 45-60 cm spacing for full-size varieties. - - - -Keep soil evenly moist until germination. After establishment, sunflowers are drought-tolerant. Expect blooms in 65-100 days depending on variety. - - - - -## Common issues - -| Issue | Cause | Solution | +| Site | Header shows | Links to | | --- | --- | --- | -| Leggy seedlings | Insufficient light | Ensure 6+ hours direct sun | -| No germination | Cold soil | Wait for soil temps above 15 C | -| Broken stems | Wind exposure | Stake tall varieties or plant near a fence | +| Homepage (`/`) | Multi-Source Docs | Seeds, Greenhouses, Nursery | +| Seeds (`/seeds`) | Seeds | Home, Sunflower, Tomato | +| Sunflower (`/seeds/sunflower`) | Sunflower | Home, Seeds | +| Tomato (`/seeds/tomato`) | Tomato | Home, Seeds | +| Greenhouses (`/greenhouses`) | Greenhouses | Home | +| Nursery (`/nursery`) | Nursery | Home | + +## How it's configured + +Each site sets `navbar-links` in its own `docs.yml`: + +```yaml +# On this Sunflower sub-site +navbar-links: + - type: minimal + text: Home + href: / + - type: minimal + text: Seeds + href: /seeds +``` + +The `logo.right-text` field sets the team name next to the shared leaf icon — inspired by how [NVIDIA's docs](https://docs.nvidia.com/heavyai) show `NVIDIA | HEAVY.AI` in the header. + + +Navbar links are **not** inherited from the global theme. They must be set per-site so each team can link to what matters for their users. + diff --git a/multi-source/seeds-tomato/fern/docs.yml b/multi-source/seeds-tomato/fern/docs.yml index 2c3ae77..170ba00 100644 --- a/multi-source/seeds-tomato/fern/docs.yml +++ b/multi-source/seeds-tomato/fern/docs.yml @@ -24,9 +24,9 @@ navbar-links: href: /seeds navigation: - - section: Tomato seeds + - section: Global theme contents: - page: Overview path: ./pages/overview.mdx - - page: Transplanting + - page: Theme merging path: ./pages/transplanting.mdx diff --git a/multi-source/seeds-tomato/fern/pages/overview.mdx b/multi-source/seeds-tomato/fern/pages/overview.mdx index 33bd11d..c1b1a0a 100644 --- a/multi-source/seeds-tomato/fern/pages/overview.mdx +++ b/multi-source/seeds-tomato/fern/pages/overview.mdx @@ -1,24 +1,37 @@ --- -title: Tomato seeds -subtitle: Heirloom and hybrid cultivars for every climate. +title: Global theme +subtitle: How the shared theme is created and uploaded. --- -Tomatoes are the backbone of any kitchen garden. This section covers our full range of tomato varieties, from compact cherry tomatoes to heavy-yielding beefsteaks. +All six sites on this domain share a `global-theme` called `plantstore-theme`. It's defined once in the homepage project and uploaded to Fern's registry. -## Available varieties +## Uploading the theme -| Variety | Type | Days to harvest | Fruit size | -| --- | --- | --- | --- | -| Cherokee Purple | Heirloom | 80-90 | Large beefsteak | -| Sun Gold | Hybrid | 55-65 | Cherry | -| San Marzano | Heirloom | 78-85 | Paste/plum | -| Early Girl | Hybrid | 50-62 | Medium globe | +The theme is exported from the homepage's `docs.yml` and uploaded with two commands: -## Germination specs +```bash +# Export theme-eligible fields (colors, CSS) to a theme directory +fern docs theme export -- **Soil temperature**: 21-27 C -- **Depth**: 6 mm -- **Spacing**: 60-90 cm apart (after transplant) -- **Germination time**: 5-10 days -- **Light**: Full sun (8+ hours) -- **Start indoors**: 6-8 weeks before last frost +# Upload to the registry with a name +fern docs theme upload --name plantstore-theme +``` + +Every other site references it with a single line: + +```yaml +global-theme: plantstore-theme +``` + +## What the theme includes + +The `plantstore-theme` provides: + +- **Colors** — light tan background (`#F5F0E8`), dark forest green accents (`#1B4332`), with dark mode variants +- **CSS** — custom styles for card hover effects, sidebar typography, and heading letter-spacing + +The theme does **not** include logo or navbar-links — those are set per-site so each team can customize their header. + + +View the full theme source in the [homepage project on GitHub](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern). + diff --git a/multi-source/seeds-tomato/fern/pages/transplanting.mdx b/multi-source/seeds-tomato/fern/pages/transplanting.mdx index 2b1ee06..172358d 100644 --- a/multi-source/seeds-tomato/fern/pages/transplanting.mdx +++ b/multi-source/seeds-tomato/fern/pages/transplanting.mdx @@ -1,36 +1,32 @@ --- -title: Transplanting -subtitle: Moving tomato seedlings outdoors successfully. +title: Theme merging +subtitle: How global theme fields merge with local config. --- -Tomatoes are always started indoors and transplanted after the last frost. Proper hardening off is critical to avoid transplant shock. +When a site uses `global-theme`, Fern merges the theme's fields into the local `docs.yml` at publish time. Understanding the merge behavior helps you decide what to put in the theme vs. what to keep local. -## Hardening off +## Merge rules - +| Field | Behavior | +| --- | --- | +| `colors` | Theme provides defaults; local values override per-key | +| `css` | Theme CSS is applied; local CSS is appended after | +| `logo` | Local `logo` replaces the theme's logo entirely | +| `navbar-links` | Local links replace the theme's links entirely | +| `navigation` | Always local — the theme never provides navigation | - -One week before transplanting, place seedlings outdoors in a sheltered, shaded spot for 2-3 hours. Bring them inside at night. - +## Practical split - -Each day, increase sun exposure by 1-2 hours and introduce light wind. By day five, leave them in full sun for the entire day. - +For this example site, the split is: - -On a cloudy afternoon, dig a hole deep enough to bury the stem up to the first set of true leaves. Tomatoes root along buried stems, producing a stronger plant. - +**In the theme** (shared by all six sites): +- Color palette (background, accent, border, sidebar, header, card) +- Custom CSS (card hover effects, sidebar font size, heading letter-spacing) - -Water deeply at transplant time. Apply 5-8 cm of straw or wood chip mulch around (not touching) the stem to retain moisture and suppress weeds. - +**In each site's local config** (unique per team): +- Logo with `right-text` for the team name +- Navbar links (Home, parent site, sibling sites) +- Navigation structure (pages and sections) +- Title - - -## Spacing guide - -| Growth habit | Spacing | Support | -| --- | --- | --- | -| Determinate (bush) | 60 cm | Cage or short stake | -| Indeterminate (vine) | 90 cm | Tall stake or trellis | -| Cherry / patio | 45 cm | Optional small cage | +This split keeps branding consistent while letting each team own their content structure. diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml index e8957de..a0d00d4 100644 --- a/multi-source/seeds/fern/docs.yml +++ b/multi-source/seeds/fern/docs.yml @@ -27,9 +27,9 @@ navbar-links: href: /seeds/tomato navigation: - - section: Getting started + - section: Nested multi-source contents: - page: Overview path: ./pages/overview.mdx - - page: Seed catalog + - page: Search and Ask AI path: ./pages/catalog.mdx diff --git a/multi-source/seeds/fern/pages/catalog.mdx b/multi-source/seeds/fern/pages/catalog.mdx index 212db11..f6d78c3 100644 --- a/multi-source/seeds/fern/pages/catalog.mdx +++ b/multi-source/seeds/fern/pages/catalog.mdx @@ -1,21 +1,32 @@ --- -title: Seed catalog -subtitle: Search and filter the full seed inventory. +title: Search and Ask AI +subtitle: How search scopes hierarchically by sub-path. --- -The seed catalog contains every variety available through Plant Store. Each entry includes the plant family, optimal climate zone, expected germination time, and current stock levels. +Multi-source sites use **hierarchical search scoping**. When you search from a sub-path, results are filtered to content within that path and its children. -## Filtering +## Try it yourself -Filter seeds by any combination of attributes: + -| Attribute | Example | -| --- | --- | -| Climate zone | `zone:9b` | -| Plant family | `family:solanaceae` | -| Germination time | `germ:<14d` | -| Availability | `in_stock:true` | + +Go to [the homepage](/) and open the search bar. You'll see results from all six sub-sites — Seeds, Greenhouses, Nursery, and the nested Sunflower and Tomato sites. + -## Requesting new varieties + +Now try the search bar on this page. Results are scoped to `/seeds` and its children (`/seeds/sunflower`, `/seeds/tomato`). You won't see Greenhouse or Nursery content. + -Submit a request through the supplier portal at `POST /plants/request` with the desired species name and preferred supplier. The Seeds team reviews requests weekly. + +Navigate to [Sunflower](/seeds/sunflower) and search again. Results narrow further to only Sunflower content. + + + + +## Ask AI works the same way + +The Ask AI feature follows the same hierarchical scoping. Ask a question from `/seeds` and the AI draws only from Seeds, Sunflower, and Tomato content. Ask from the homepage and it has access to everything. + + +Search scoping is configured via `hierarchical` mode in the basepath settings. This is the default for multi-source sites. + diff --git a/multi-source/seeds/fern/pages/overview.mdx b/multi-source/seeds/fern/pages/overview.mdx index c16c0ce..8e4de6e 100644 --- a/multi-source/seeds/fern/pages/overview.mdx +++ b/multi-source/seeds/fern/pages/overview.mdx @@ -1,33 +1,38 @@ --- title: Seeds -subtitle: Browse seed documentation by variety. +subtitle: A hub site with nested sub-children. --- -The Seeds team manages the full seed catalog across all varieties. Each variety has its own dedicated documentation maintained by a specialist sub-team. +This site demonstrates **nested multi-source** — a parent hub at `/seeds` with two child sites at `/seeds/sunflower` and `/seeds/tomato`. Each is a separate `fern/` project that publishes independently. - - Helianthus varieties, planting guides, and harvest timing. + + A sub-child site at `/seeds/sunflower` with its own pages and navbar links. - - Heirloom and hybrid cultivars, germination, and transplanting. + + Another sub-child at `/seeds/tomato` showing the global theme upload process. -## Quickstart +## How nested sub-children work - +The Seeds hub publishes to `/seeds`, while its children publish to deeper paths: - -Browse the variety sub-sites above to find planting guides, soil requirements, and expected yields. - +```yaml +# seeds/fern/docs.yml (this site) +instances: + - url: multi-source.docs.buildwithfern.com/seeds + multi-source: true - -Use the `POST /plants/{plantId}/order` endpoint to submit a bulk seed order. Each order requires a valid greenhouse destination. - +# seeds-sunflower/fern/docs.yml +instances: + - url: multi-source.docs.buildwithfern.com/seeds/sunflower + multi-source: true - -Monitor germination progress through the dashboard or subscribe to webhook events for status updates. - +# seeds-tomato/fern/docs.yml +instances: + - url: multi-source.docs.buildwithfern.com/seeds/tomato + multi-source: true +``` - +Each project is fully independent — different teams can own different sub-paths and deploy on their own schedule. From aa5edc91a8565b0e8028e21154e72c8333f7d9d3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 19:53:13 +0000 Subject: [PATCH 07/11] Use 'Multi-Source Docs' as right-text on all sub-sites Co-Authored-By: kenny --- multi-source/greenhouses/fern/docs.yml | 2 +- multi-source/nursery/fern/docs.yml | 2 +- multi-source/seeds-sunflower/fern/docs.yml | 2 +- multi-source/seeds-sunflower/fern/pages/overview.mdx | 2 +- multi-source/seeds-sunflower/fern/pages/planting.mdx | 12 ++++++------ multi-source/seeds-tomato/fern/docs.yml | 2 +- multi-source/seeds/fern/docs.yml | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml index d81b973..a635f4d 100644 --- a/multi-source/greenhouses/fern/docs.yml +++ b/multi-source/greenhouses/fern/docs.yml @@ -13,7 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Greenhouses + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml index b2b8cd9..5950ca5 100644 --- a/multi-source/nursery/fern/docs.yml +++ b/multi-source/nursery/fern/docs.yml @@ -13,7 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Nursery + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/seeds-sunflower/fern/docs.yml b/multi-source/seeds-sunflower/fern/docs.yml index 0aa7a59..85886c6 100644 --- a/multi-source/seeds-sunflower/fern/docs.yml +++ b/multi-source/seeds-sunflower/fern/docs.yml @@ -13,7 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Sunflower + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/seeds-sunflower/fern/pages/overview.mdx b/multi-source/seeds-sunflower/fern/pages/overview.mdx index c4449ca..617ee16 100644 --- a/multi-source/seeds-sunflower/fern/pages/overview.mdx +++ b/multi-source/seeds-sunflower/fern/pages/overview.mdx @@ -21,7 +21,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Sunflower + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/seeds-sunflower/fern/pages/planting.mdx b/multi-source/seeds-sunflower/fern/pages/planting.mdx index c9691b4..1ae7363 100644 --- a/multi-source/seeds-sunflower/fern/pages/planting.mdx +++ b/multi-source/seeds-sunflower/fern/pages/planting.mdx @@ -10,11 +10,11 @@ Every sub-site in a multi-source setup defines its own `navbar-links`. This lets | Site | Header shows | Links to | | --- | --- | --- | | Homepage (`/`) | Multi-Source Docs | Seeds, Greenhouses, Nursery | -| Seeds (`/seeds`) | Seeds | Home, Sunflower, Tomato | -| Sunflower (`/seeds/sunflower`) | Sunflower | Home, Seeds | -| Tomato (`/seeds/tomato`) | Tomato | Home, Seeds | -| Greenhouses (`/greenhouses`) | Greenhouses | Home | -| Nursery (`/nursery`) | Nursery | Home | +| Seeds (`/seeds`) | Multi-Source Docs | Home, Sunflower, Tomato | +| Sunflower (`/seeds/sunflower`) | Multi-Source Docs | Home, Seeds | +| Tomato (`/seeds/tomato`) | Multi-Source Docs | Home, Seeds | +| Greenhouses (`/greenhouses`) | Multi-Source Docs | Home | +| Nursery (`/nursery`) | Multi-Source Docs | Home | ## How it's configured @@ -31,7 +31,7 @@ navbar-links: href: /seeds ``` -The `logo.right-text` field sets the team name next to the shared leaf icon — inspired by how [NVIDIA's docs](https://docs.nvidia.com/heavyai) show `NVIDIA | HEAVY.AI` in the header. +The `logo.right-text` field sets the site name next to the shared leaf icon. All sites use `Multi-Source Docs` for consistent branding across the domain. Navbar links are **not** inherited from the global theme. They must be set per-site so each team can link to what matters for their users. diff --git a/multi-source/seeds-tomato/fern/docs.yml b/multi-source/seeds-tomato/fern/docs.yml index 170ba00..43b1de8 100644 --- a/multi-source/seeds-tomato/fern/docs.yml +++ b/multi-source/seeds-tomato/fern/docs.yml @@ -13,7 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Tomato + right-text: Multi-Source Docs navbar-links: - type: minimal diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml index a0d00d4..d34617c 100644 --- a/multi-source/seeds/fern/docs.yml +++ b/multi-source/seeds/fern/docs.yml @@ -13,7 +13,7 @@ logo: dark: ./assets/logo-dark.svg light: ./assets/logo-light.svg height: 28 - right-text: Seeds + right-text: Multi-Source Docs navbar-links: - type: minimal From a7eeec17398cc382a3977fc8552d958c99568b4c Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 20:11:40 +0000 Subject: [PATCH 08/11] Homepage: add file structure, explain search scoping, soften wording Co-Authored-By: kenny --- multi-source/homepage/fern/pages/home.mdx | 36 +++++++++++++---------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx index 3b24b0a..0355b5c 100644 --- a/multi-source/homepage/fern/pages/home.mdx +++ b/multi-source/homepage/fern/pages/home.mdx @@ -5,19 +5,27 @@ subtitle: A live example of Fern's multi-source documentation. This site is built from [six independent projects](https://github.com/fern-api/docs-examples/tree/main/multi-source), each publishing to a different sub-path on the same domain. Every team owns their own `fern/` directory and deploys independently. - -Try the search bar or Ask AI — results are scoped hierarchically by sub-path. Navigate to a team site like [Seeds](/seeds) and search again to see only that team's content. - +``` +multi-source.docs.buildwithfern.com +├── / ← homepage (this page) +├── /seeds ← Seeds team hub +│ ├── /seeds/sunflower ← Sunflower sub-team +│ └── /seeds/tomato ← Tomato sub-team +├── /greenhouses ← Greenhouses team +└── /nursery ← Nursery team +``` + +Search and Ask AI are scoped to the current source and any sources deeper in the path. For example, searching from `/seeds` returns results from `/seeds`, `/seeds/sunflower`, and `/seeds/tomato` — but not from `/greenhouses` or `/nursery`. Try it: navigate to [Seeds](/seeds) and open the search bar. - A hub site with nested sub-children at `/seeds/sunflower` and `/seeds/tomato`. + A hub with nested sub-children at `/seeds/sunflower` and `/seeds/tomato`. - Demonstrates unified theming via `global-theme` with a shared color palette and CSS. + Unified theming via `global-theme` — shared colors, CSS, and typography. - Shows how each team publishes independently with their own CI workflow. + Independent publishing — each team deploys on their own schedule. @@ -33,13 +41,11 @@ instances: All six projects share a `global-theme` for consistent branding — colors, CSS, and typography are defined once and [uploaded to the registry](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern). -## Features demonstrated +## What's in this example -| Feature | Where to see it | -| --- | --- | -| Multi-source publishing | Every sub-path is a separate project | -| Nested sub-children | [/seeds](/seeds) → [/seeds/sunflower](/seeds/sunflower), [/seeds/tomato](/seeds/tomato) | -| Global theme | Shared colors and CSS across all sites | -| Per-site navbar | Each site has its own header links | -| Hierarchical search | Search results scope to the current sub-path | -| Independent deploys | Each team publishes without affecting others | +- **Multi-source publishing** — every sub-path is a separate project that publishes independently +- **Nested sub-children** — [/seeds](/seeds) acts as a hub for [/seeds/sunflower](/seeds/sunflower) and [/seeds/tomato](/seeds/tomato) +- **Global theme** — shared colors and CSS across all six sites ([source](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern)) +- **Per-site navbar** — each site defines its own header links +- **Hierarchical search** — results scope to the current sub-path and its children +- **Independent deploys** — teams publish without affecting each other From c6751502239ac213f77279edf20be50fc2233e0b Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 20:16:13 +0000 Subject: [PATCH 09/11] Add sidebar links to Seeds, Greenhouses, Nursery on homepage Co-Authored-By: kenny --- multi-source/homepage/fern/docs.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml index 50603ad..6c64e2d 100644 --- a/multi-source/homepage/fern/docs.yml +++ b/multi-source/homepage/fern/docs.yml @@ -29,3 +29,11 @@ navbar-links: navigation: - page: Home path: ./pages/home.mdx + - section: Teams + contents: + - link: Seeds + href: /seeds + - link: Greenhouses + href: /greenhouses + - link: Nursery + href: /nursery From fdba02070a7a3af010d212e3638cabd1bf86a6d0 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 20:21:11 +0000 Subject: [PATCH 10/11] Homepage: collapsible project structure, update intro text Co-Authored-By: kenny --- multi-source/homepage/fern/pages/home.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/multi-source/homepage/fern/pages/home.mdx b/multi-source/homepage/fern/pages/home.mdx index 0355b5c..190b75b 100644 --- a/multi-source/homepage/fern/pages/home.mdx +++ b/multi-source/homepage/fern/pages/home.mdx @@ -3,8 +3,9 @@ title: Multi-Source Docs subtitle: A live example of Fern's multi-source documentation. --- -This site is built from [six independent projects](https://github.com/fern-api/docs-examples/tree/main/multi-source), each publishing to a different sub-path on the same domain. Every team owns their own `fern/` directory and deploys independently. +This site is built from [six independent projects](https://github.com/fern-api/docs-examples/tree/main/multi-source) — in the common case, each one is a team — publishing to different sub-paths on the same domain. Every team owns their own `fern/` directory and deploys independently. + ``` multi-source.docs.buildwithfern.com ├── / ← homepage (this page) @@ -14,6 +15,7 @@ multi-source.docs.buildwithfern.com ├── /greenhouses ← Greenhouses team └── /nursery ← Nursery team ``` + Search and Ask AI are scoped to the current source and any sources deeper in the path. For example, searching from `/seeds` returns results from `/seeds`, `/seeds/sunflower`, and `/seeds/tomato` — but not from `/greenhouses` or `/nursery`. Try it: navigate to [Seeds](/seeds) and open the search bar. From 38d5a8c108f9bb8b80be7c3f8e71bb40fa31ded7 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 20:27:37 +0000 Subject: [PATCH 11/11] Move logo into global theme, simplify sub-site docs.yml configs Co-Authored-By: kenny --- multi-source/greenhouses/fern/docs.yml | 7 ---- .../fern/pages/climate-control.mdx | 6 +++ multi-source/homepage/fern/docs.yml | 7 ---- .../homepage/fern/theme/assets/logo-dark.svg | 3 ++ .../homepage/fern/theme/assets/logo-light.svg | 3 ++ .../homepage/fern/theme/assets/styles.css | 42 +++++++++++++++++++ multi-source/homepage/fern/theme/theme.yml | 26 ++++++++++++ multi-source/nursery/fern/docs.yml | 7 ---- multi-source/seeds-sunflower/fern/docs.yml | 7 ---- .../seeds-sunflower/fern/pages/overview.mdx | 11 +---- .../seeds-sunflower/fern/pages/planting.mdx | 2 +- multi-source/seeds-tomato/fern/docs.yml | 7 ---- .../seeds-tomato/fern/pages/overview.mdx | 3 +- .../seeds-tomato/fern/pages/transplanting.mdx | 4 +- multi-source/seeds/fern/docs.yml | 7 ---- 15 files changed, 87 insertions(+), 55 deletions(-) create mode 100644 multi-source/homepage/fern/theme/assets/logo-dark.svg create mode 100644 multi-source/homepage/fern/theme/assets/logo-light.svg create mode 100644 multi-source/homepage/fern/theme/assets/styles.css create mode 100644 multi-source/homepage/fern/theme/theme.yml diff --git a/multi-source/greenhouses/fern/docs.yml b/multi-source/greenhouses/fern/docs.yml index a635f4d..a33c12f 100644 --- a/multi-source/greenhouses/fern/docs.yml +++ b/multi-source/greenhouses/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Greenhouses -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home diff --git a/multi-source/greenhouses/fern/pages/climate-control.mdx b/multi-source/greenhouses/fern/pages/climate-control.mdx index 22ae962..ddfa3e3 100644 --- a/multi-source/greenhouses/fern/pages/climate-control.mdx +++ b/multi-source/greenhouses/fern/pages/climate-control.mdx @@ -28,6 +28,12 @@ colors: dark: '#252520' light: '#EDE8DC' css: ./assets/styles.css +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Multi-Source Docs ``` ## Upload workflow diff --git a/multi-source/homepage/fern/docs.yml b/multi-source/homepage/fern/docs.yml index 6c64e2d..791b6f0 100644 --- a/multi-source/homepage/fern/docs.yml +++ b/multi-source/homepage/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Multi-Source Docs -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Seeds diff --git a/multi-source/homepage/fern/theme/assets/logo-dark.svg b/multi-source/homepage/fern/theme/assets/logo-dark.svg new file mode 100644 index 0000000..7ca0e5e --- /dev/null +++ b/multi-source/homepage/fern/theme/assets/logo-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/homepage/fern/theme/assets/logo-light.svg b/multi-source/homepage/fern/theme/assets/logo-light.svg new file mode 100644 index 0000000..356f3ae --- /dev/null +++ b/multi-source/homepage/fern/theme/assets/logo-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/multi-source/homepage/fern/theme/assets/styles.css b/multi-source/homepage/fern/theme/assets/styles.css new file mode 100644 index 0000000..0a4b33e --- /dev/null +++ b/multi-source/homepage/fern/theme/assets/styles.css @@ -0,0 +1,42 @@ +/* Multi-Source Docs — shared minimalist theme */ + +:root, +.light { + --background: #F5F0E8; + --card-background: #EDE8DC; + --sidebar-background: #F0EBE1; + --header-background: #F5F0E8; + --border: #D4C9B5; +} + +.dark { + --background: #1A1A17; + --card-background: #252520; + --sidebar-background: #1F1F1B; + --header-background: #1A1A17; + --border: #3A3A30; +} + +/* Typography */ +.fern-page-heading { + letter-spacing: -0.03em; +} + +/* Sidebar refinements */ +.fern-sidebar { + font-size: 0.875rem; +} + +/* Card hover lift */ +.fern-card { + transition: transform 0.15s ease, box-shadow 0.15s ease; +} + +.fern-card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.dark .fern-card:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); +} diff --git a/multi-source/homepage/fern/theme/theme.yml b/multi-source/homepage/fern/theme/theme.yml new file mode 100644 index 0000000..503557d --- /dev/null +++ b/multi-source/homepage/fern/theme/theme.yml @@ -0,0 +1,26 @@ +colors: + accent-primary: + dark: '#70E155' + light: '#1B4332' + background: + dark: '#1A1A17' + light: '#F5F0E8' + border: + dark: '#3A3A30' + light: '#D4C9B5' + sidebar-background: + dark: '#1F1F1B' + light: '#F0EBE1' + header-background: + dark: '#1A1A17' + light: '#F5F0E8' + card-background: + dark: '#252520' + light: '#EDE8DC' +css: ./assets/styles.css +logo: + href: / + dark: ./assets/logo-dark.svg + light: ./assets/logo-light.svg + height: 28 + right-text: Multi-Source Docs diff --git a/multi-source/nursery/fern/docs.yml b/multi-source/nursery/fern/docs.yml index 5950ca5..abe651e 100644 --- a/multi-source/nursery/fern/docs.yml +++ b/multi-source/nursery/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Nursery -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home diff --git a/multi-source/seeds-sunflower/fern/docs.yml b/multi-source/seeds-sunflower/fern/docs.yml index 85886c6..572ed12 100644 --- a/multi-source/seeds-sunflower/fern/docs.yml +++ b/multi-source/seeds-sunflower/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Sunflower -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home diff --git a/multi-source/seeds-sunflower/fern/pages/overview.mdx b/multi-source/seeds-sunflower/fern/pages/overview.mdx index 617ee16..9769d8e 100644 --- a/multi-source/seeds-sunflower/fern/pages/overview.mdx +++ b/multi-source/seeds-sunflower/fern/pages/overview.mdx @@ -3,7 +3,7 @@ title: Sunflower sub-site subtitle: How simple a sub-site's docs.yml can be. --- -This is a sub-child site at `/seeds/sunflower`. Its entire configuration fits in a few lines — the `global-theme` handles all the branding. +This is a sub-child site at `/seeds/sunflower`. Its entire configuration fits in a few lines — the `global-theme` handles all the branding, including the logo. ## The complete docs.yml @@ -16,13 +16,6 @@ instances: title: Sunflower -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home @@ -40,4 +33,4 @@ navigation: path: ./pages/planting.mdx ``` -That's it. The theme provides colors and CSS. The local config adds the logo text, navbar links, and page navigation. Each team only needs to manage their own pages and a minimal `docs.yml`. +That's it. The theme provides colors, CSS, and the logo. The local config only needs navbar links and page navigation. Each team manages their own pages and a minimal `docs.yml`. diff --git a/multi-source/seeds-sunflower/fern/pages/planting.mdx b/multi-source/seeds-sunflower/fern/pages/planting.mdx index 1ae7363..123bfca 100644 --- a/multi-source/seeds-sunflower/fern/pages/planting.mdx +++ b/multi-source/seeds-sunflower/fern/pages/planting.mdx @@ -31,7 +31,7 @@ navbar-links: href: /seeds ``` -The `logo.right-text` field sets the site name next to the shared leaf icon. All sites use `Multi-Source Docs` for consistent branding across the domain. +The logo and `right-text` come from the global theme, so all sites show the same "Multi-Source Docs" branding automatically. Navbar links are **not** inherited from the global theme. They must be set per-site so each team can link to what matters for their users. diff --git a/multi-source/seeds-tomato/fern/docs.yml b/multi-source/seeds-tomato/fern/docs.yml index 43b1de8..85af01f 100644 --- a/multi-source/seeds-tomato/fern/docs.yml +++ b/multi-source/seeds-tomato/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Tomato -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home diff --git a/multi-source/seeds-tomato/fern/pages/overview.mdx b/multi-source/seeds-tomato/fern/pages/overview.mdx index c1b1a0a..a684e26 100644 --- a/multi-source/seeds-tomato/fern/pages/overview.mdx +++ b/multi-source/seeds-tomato/fern/pages/overview.mdx @@ -29,8 +29,9 @@ The `plantstore-theme` provides: - **Colors** — light tan background (`#F5F0E8`), dark forest green accents (`#1B4332`), with dark mode variants - **CSS** — custom styles for card hover effects, sidebar typography, and heading letter-spacing +- **Logo** — the shared leaf icon and "Multi-Source Docs" text -The theme does **not** include logo or navbar-links — those are set per-site so each team can customize their header. +The theme does **not** include navbar-links — those are set per-site so each team can customize their header navigation. View the full theme source in the [homepage project on GitHub](https://github.com/fern-api/docs-examples/tree/main/multi-source/homepage/fern). diff --git a/multi-source/seeds-tomato/fern/pages/transplanting.mdx b/multi-source/seeds-tomato/fern/pages/transplanting.mdx index 172358d..566566f 100644 --- a/multi-source/seeds-tomato/fern/pages/transplanting.mdx +++ b/multi-source/seeds-tomato/fern/pages/transplanting.mdx @@ -11,7 +11,7 @@ When a site uses `global-theme`, Fern merges the theme's fields into the local ` | --- | --- | | `colors` | Theme provides defaults; local values override per-key | | `css` | Theme CSS is applied; local CSS is appended after | -| `logo` | Local `logo` replaces the theme's logo entirely | +| `logo` | Theme provides the default; local `logo` overrides it entirely | | `navbar-links` | Local links replace the theme's links entirely | | `navigation` | Always local — the theme never provides navigation | @@ -22,9 +22,9 @@ For this example site, the split is: **In the theme** (shared by all six sites): - Color palette (background, accent, border, sidebar, header, card) - Custom CSS (card hover effects, sidebar font size, heading letter-spacing) +- Logo (leaf icon + "Multi-Source Docs" text) **In each site's local config** (unique per team): -- Logo with `right-text` for the team name - Navbar links (Home, parent site, sibling sites) - Navigation structure (pages and sections) - Title diff --git a/multi-source/seeds/fern/docs.yml b/multi-source/seeds/fern/docs.yml index d34617c..6d44d32 100644 --- a/multi-source/seeds/fern/docs.yml +++ b/multi-source/seeds/fern/docs.yml @@ -8,13 +8,6 @@ instances: title: Seeds -logo: - href: / - dark: ./assets/logo-dark.svg - light: ./assets/logo-light.svg - height: 28 - right-text: Multi-Source Docs - navbar-links: - type: minimal text: Home