Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
project: [docs-starter, graphql, grpc, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, sse, versioning]
project: [blog, docs-starter, graphql, grpc, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, sse, versioning]
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/preview-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
FERN_TOKEN: ${{ secrets.FERN_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
PROJECTS="docs-starter graphql grpc i18n multi-source/homepage multi-source/seeds multi-source/seeds-sunflower multi-source/seeds-tomato multi-source/greenhouses multi-source/nursery sse versioning"
PROJECTS="blog docs-starter graphql grpc i18n multi-source/homepage multi-source/seeds multi-source/seeds-sunflower multi-source/seeds-tomato multi-source/greenhouses multi-source/nursery sse versioning"
CHANGED_FILES=$(git diff --name-only origin/main...HEAD)

: > comment.md
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
project: [docs-starter, graphql, grpc, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, sse, versioning]
project: [blog, docs-starter, graphql, grpc, i18n, multi-source/homepage, multi-source/seeds, multi-source/seeds-sunflower, multi-source/seeds-tomato, multi-source/greenhouses, multi-source/nursery, sse, versioning]
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Example Fern docs projects. Each top-level folder is a self-contained example wi

| Example | Description | Live demo |
| --- | --- | --- |
| [`blog`](./blog) | Blog layout with authors, tags, images, and RSS/Atom/JSON feeds | [blog.docs.buildwithfern.com](https://blog.docs.buildwithfern.com) |
| [`docs-starter`](./docs-starter) | Minimal starter project | [docs-starter.docs.buildwithfern.com](https://docs-starter.docs.buildwithfern.com) |
| [`graphql`](./graphql) | GraphQL API Reference from a `.graphql` schema | [graphql.docs.buildwithfern.com](https://graphql.docs.buildwithfern.com) |
| [`grpc`](./grpc) | gRPC API Reference from `.proto` files | [grpc.docs.buildwithfern.com](https://grpc.docs.buildwithfern.com) |
Expand Down
8 changes: 8 additions & 0 deletions blog/fern/assets/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions blog/fern/assets/logo-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions blog/fern/assets/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions blog/fern/blog/2026-01-14.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Winter watering schedules in the API
slug: blog/winter-watering-schedules
description: Seasonal watering plans now adjust for daylight hours and indoor humidity.
tags: ["api", "plant-care"]
author: mira
thumbnail: https://images.unsplash.com/photo-1516253593875-bd7ba052fbc5?q=80&w=1200&h=675&fit=crop
---

The watering endpoint now accepts a greenhouse profile and a local date. It uses daylight hours and indoor humidity to calculate the next recommended watering window.

Existing schedules continue to work without those fields. The response includes the inputs used for the recommendation so store operators can compare it with their manual plan.
12 changes: 12 additions & 0 deletions blog/fern/blog/2026-02-03.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Rebuilding the seed catalog search index
slug: blog/seed-catalog-search
description: Cultivar synonyms, misspellings, and Latin names now resolve to one canonical seed.
tags: ["engineering", "search"]
author: priya
thumbnail: https://images.unsplash.com/photo-1523348837708-15d4a09cfac2?q=80&w=1200&h=675&fit=crop
---

The seed catalog index now stores cultivar synonyms beside the canonical seed record. Search requests can match common misspellings and Latin names without duplicating catalog entries.

The rebuild runs from the source catalog and writes a versioned index. Deployments switch indexes after validation, so an incomplete rebuild does not change search results.
14 changes: 14 additions & 0 deletions blog/fern/blog/2026-03-11.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Streaming greenhouse sensor data
slug: blog/greenhouse-sensor-streams
description: Temperature and moisture readings are available over server-sent events.
tags: ["api", "engineering"]
authors:
- priya
- mira
thumbnail: https://images.unsplash.com/photo-1518770660439-4636190af475?q=80&w=1200&h=675&fit=crop
---

Greenhouse temperature and moisture readings are now available over a server-sent events endpoint. Each event includes the sensor identifier, reading time, and calibrated value.

Clients can reconnect with the last event identifier after a network interruption. The service keeps a short replay window and closes idle connections after the configured timeout.
12 changes: 12 additions & 0 deletions blog/fern/blog/2026-04-08.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: A soil composition endpoint
slug: blog/soil-composition-endpoint
description: Query pH, drainage, and nutrient ranges for every plant we sell.
tags: ["api"]
author: mira
thumbnail: https://images.unsplash.com/photo-1416879595882-3373a0480b5b?q=80&w=1200&h=675&fit=crop
---

The catalog API now exposes soil composition ranges for each plant. Queries can filter by pH, drainage, and nutrient requirements before returning compatible products.

Values describe the supported range rather than a single recommended number. This lets the storefront compare a customer's soil report with several plants in one request.
12 changes: 12 additions & 0 deletions blog/fern/blog/2026-05-19.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Pruning reminders as webhooks
slug: blog/pruning-webhooks
description: Subscribe to per-plant pruning windows instead of polling the schedule endpoint.
tags: ["api", "plant-care"]
author: priya
thumbnail: https://images.unsplash.com/photo-1585320806297-9794b3e4eeae?q=80&w=1200&h=675&fit=crop
---

The care service can now send pruning-window events to a configured webhook. Subscriptions are scoped to a plant and include the start date, end date, and required tool category.

Delivery attempts use the same retry policy as order events. The event identifier remains stable across retries so receivers can safely de-duplicate updates.
13 changes: 13 additions & 0 deletions blog/fern/blog/2026-06-24.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Shipping zones and frost dates
slug: blog/shipping-zones-frost-dates
description: Orders now validate against the destination's last frost date before checkout.
tags: ["engineering"]
author: mira
thumbnail: https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?q=80&w=1200&h=675&fit=crop
excerpt: Live plants ship on a weather-dependent calendar, and the API now enforces it.
---

Live plants ship on a weather-dependent calendar, and the API now enforces it. Checkout compares the destination zone with the plant's shipping window before accepting an order.

The validation response identifies the first eligible ship date and the rule that delayed the order. Dry goods continue to use the regular zone calendar.
14 changes: 14 additions & 0 deletions blog/fern/blog/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Plantstore blog
subtitle: Notes from the team building the Plantstore API
layout: blog
blog-layout: list
authors:
mira:
name: Mira Okonjo
role: Developer Advocate
url: https://buildwithfern.com
priya:
name: Priya Nair
role: Staff Engineer
---
41 changes: 41 additions & 0 deletions blog/fern/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# yaml-language-server: $schema=https://schema.buildwithfern.dev/docs-yml.json

instances:
- url: blog.docs.buildwithfern.com

title: Plantstore

layout:
searchbar-placement: header
page-width: full

navigation:
- section: Get started
contents:
- page: Overview
path: ./pages/overview.mdx
icon: fa-duotone fa-seedling
- blog: ./blog

navbar-links:
- type: minimal
text: Fork this repo
url: https://github.com/fern-api/docs-examples
- type: filled
text: Dashboard
url: https://dashboard.buildwithfern.com

colors:
accent-primary:
dark: "#70E155"
light: "#008700"
background:
dark: "#111113"
light: "#FFFFFF"

logo:
dark: ./assets/logo-dark.svg
light: ./assets/logo.svg
height: 20

favicon: ./assets/favicon.svg
4 changes: 4 additions & 0 deletions blog/fern/fern.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"organization": "fern-docs-examples",
"version": "5.106.1"
}
9 changes: 9 additions & 0 deletions blog/fern/pages/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Overview
description: A small example of Fern's blog changelog layout.
---

This example uses the `blog:` navigation key with `layout: blog` and `blog-layout: grid`.
It includes an author registry and posts with per-post `slug`, `tags`, and `image` fields.
Published posts are available through the blog listing and individual post pages.
Feeds are available at `/blog.rss`, `/blog.atom`, and `/blog.json`.
Loading