Skip to content

docs(blog): add client generator intro blog post - #399

Open
Marshevskyy wants to merge 4 commits into
mainfrom
docs/client-generator-intro-blog-post
Open

docs(blog): add client generator intro blog post#399
Marshevskyy wants to merge 4 commits into
mainfrom
docs/client-generator-intro-blog-post

Conversation

@Marshevskyy

@Marshevskyy Marshevskyy commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

What/Why/How?

preview https://marketing-site--3aecf8.preview.redocly.app/blog/agent-friendly-sdks

Adds the "Open-source, agent-friendly SDKs and tooling from OpenAPI description" blog post announcing redocly generate-client — built as a React page (blog/agent-friendly-sdks.page.tsx) instead of markdown, since the post has custom visuals: an inline SVG hero diagram, a numbered quick-start section with highlighted code, a generators table, and a reviewer-style CTA card with the eclipse glow.

Supporting theme changes:

  • @theme/utils/blog-post.js — blog routes ending in .page.tsx load their frontmatter via Realm's react-frontmatter loader, so React posts appear in the blog index, category pages, and RSS feed like markdown posts.
  • @theme/plugin.js — publishes a new blog-recent-posts shared data (top 4 posts) attached to every post route.
  • @theme/components/Blog/RecentPosts.tsx + @theme/templates/BlogPost.tsx — the "Latest from our blog" section now excludes the currently open post (previously the newest post listed itself). The BlogPost template is localized from marketing-pages with that one behavioral change.
  • blog/metadata/blog-metadata.yaml — new categories: api-descriptions:openapi and api-lifecycle:sdks (existing api-specifications untouched).

Notes

  • The post is dated 2026-08-27 — bump publishedDate if publication slips.
  • CTA links point at expected docs slugs (/docs/cli/commands/generate-client, /docs/cli/guides/customize-client-generation) — verify they exist by publish time.
  • No card image on purpose: the featured-post card on /blog renders image under a semi-transparent gradient, and recent posts follow the no-image convention.

Testing

Verified with npx @redocly/cli preview (1350 pages, no build errors): post renders with author/date/categories, appears first on /blog and in feed.xml with correct categories, recent-posts section excludes the open post on both React and markdown posts, new category pages return 200, and the layout holds at mobile widths.

🤖 Generated with Claude Code

Marshevskyy and others added 3 commits August 27, 2026 12:42
- Add /blog/agent-friendly-sdks as a React page with inline hero diagram
  and a reviewer-style CTA card
- Support react-frontmatter for .page.tsx blog posts in the theme plugin
- Add blog-recent-posts shared data (top 4) and a shared RecentPosts
  component that excludes the currently open post; localize the BlogPost
  template to use it
- Add api-descriptions:openapi and api-lifecycle:sdks blog categories

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…indenting

The 0-indent lists markdownlint wants break Markdoc tag parsing in the
project build, so keep the original indentation and skip the file like
other markdoc-heavy pages.
@Marshevskyy
Marshevskyy marked this pull request as ready for review August 27, 2026 09:59
@Marshevskyy
Marshevskyy requested a review from a team as a code owner August 27, 2026 09:59

@redocly redocly Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

marketing-site AI Review: 🟢 Completed

Redocly Agent has reviewed your changes and found 2 potential issue(s).

Note

Low Risk

This PR safely introduces a new React-based blog post along with minor theme updates. It carries minimal risk as changes are isolated to the marketing site's blog layout and build infrastructure, and do not affect core application functionality.

Overview

Adds a React-based blog post (blog/agent-friendly-sdks.page.tsx) announcing the redocly generate-client feature.

To support React-based posts and custom layout components, this PR includes:

  • Blog infrastructure: Updates @theme/utils/blog-post.js to parse frontmatter from .page.tsx files via react-frontmatter, allowing them to appear in blog indices and RSS feeds.
  • Recent posts logic: Modifies @theme/plugin.js to fetch the top 4 recent posts and introduces a localized BlogPost template with a custom RecentPosts component, ensuring the "Latest from our blog" section excludes the currently active post.
  • Metadata: Adds an sdks subcategory to blog-metadata.yaml and a minor exclusion in the docs-tests CI workflow.

Comment thread blog/agent-friendly-sdks.page.tsx Outdated
Comment thread blog/metadata/blog-metadata.yaml Outdated
Comment thread blog/agent-friendly-sdks.page.tsx
Comment thread blog/agent-friendly-sdks.page.tsx
Comment thread blog/agent-friendly-sdks.page.tsx
- Use root-relative docs links in the CTA
- Revert to api-specifications:openapi category (api-descriptions to be
  handled in a separate PR)
- Dim the lead paragraph and add space below it
- Highlight the steps tagline with TextGradient and add spacing
- Use the theme CodeBlock with copy control for all code samples
@Marshevskyy
Marshevskyy requested a review from illiaRedoc August 27, 2026 12:00

@illiaRedoc illiaRedoc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines +132 to +133
No account, no config required. Flags or a <code>redocly.yaml</code>{' '}
<code>client</code> block, your choice.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mb can be rephrased to prevent code block following code block

Image

<CtaActionColumn>
<CodeBlock
lang="bash"
header={{ controls: { copy: {} } }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
header={{ controls: { copy: {} } }}
header={{ controls: { copy: {}, report: { hidden: true } } }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets hide report button

Image

@illiaRedoc
illiaRedoc requested a review from a team August 27, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants