kestra-io / kestra-io/docs

Phase 2: serve authored Markdown for marketing pages via content negotiation

Open
#5,670 0 comments 0 reactions 0 assignees View on GitHub
area/frontend kind/website
Dominant language
Astro
Stars
155
Forks
177
Avg merge
1d 20m
Merged PRs (30d)
192

Description

Follow-up to #5652 Phase 1. Deliberately out of scope for Phase 1.

## Current state (verified 2026-09-16)
- `.md` twins exist only for content collections: `docs/[...docsPath].md.ts`, `docs.md.ts`, `blogs/[...slug].md.ts`, `resources/[category]/[topic].md.ts`, `resources/airflow-2-eol-whitepaper.md.ts`, plus the `.md` suffix branch for versioned docs in `src/middleware.ts`.
- `/pricing.md`, `/enterprise.md`, `/index.md`, `/about-us.md`, `/customers/.md` return 404.
- There is no `Accept: text/markdown` negotiation at the origin; `src/middlewares/worker.ts` has none, and Cloudflare's converter runs on every marketing page (`x-markdown-tokens` present).

## Scope
- In `worker.ts` (`run_worker_first` is on): if `Accept: text/markdown` and an authored twin exists, serve it; otherwise fall through to the Cloudflare conversion.
- Authored twins for the marketing pages that matter (`/`, `/pricing`, `/enterprise` first).
- `` in `layout.astro` and entries in `llms.txt`.
- Mind the edge cache: responses must `Vary: Accept`.

## Done when
- The three pages return authored Markdown for `Accept: text/markdown` and for the `.md` URL, and HTML otherwise.

Contributor guide

Open the contributing guide

Research direction

Start in src/middlewares/worker.ts and compare the existing authored Markdown routes listed in the issue with the marketing-page routing. Then inspect layout.astro and llms.txt for the metadata and listing changes. Verify that /, /pricing, and /enterprise return authored Markdown for text/markdown and .md requests, HTML otherwise, and Vary: Accept is present.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
content, documentation, web-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.