Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Dec 18, 2025

Summary

Adds a new documentation page comparing Fern-generated SDKs to OpenAPI Generator SDKs. The page is placed in a hidden "Resources" section at the end of the SDKs navigation and covers:

  • Documentation & onboarding quality
  • Client ergonomics and API design
  • Authentication & OAuth token lifecycle
  • Pagination with async iterators
  • Typed error handling
  • Resilience features (retries, timeouts, abort signals)
  • Logging with sensitive data redaction
  • Raw response access patterns
  • Runtime compatibility (Node, Deno, Bun, Workers, React Native)
  • Testing and code quality

The comparison uses AccordionGroup components with side-by-side code examples and feature comparison tables, following the format established in the existing Stainless comparison page.

Updates since last revision

  • Fixed vale linting issues: capitalized "API Reference" and removed unnecessary adverb "quickly"
  • Changed code block format from bolded titles (**Fern SDK:**) to code fence titles ( ```typescript Fern SDK)
  • Removed Summary section and integrated key points into the Overview paragraph
  • Moved page from Overview section to a new hidden "Resources" section at the end of navigation

Review & Testing Checklist for Human

  • Verify hidden section behavior: Page is now in a hidden "Resources" section - confirm this is the desired visibility (page accessible via direct URL but not shown in navigation)
  • Review claims for accuracy: Some statements (e.g., "README is minimal/title only" for OpenAPI Generator) are based on a specific demo repo - verify these are fair generalizations
  • Check code examples: The TypeScript snippets are illustrative - verify they accurately represent both SDKs' APIs
  • Verify page renders correctly: Preview the page to ensure AccordionGroup/Accordion components, code blocks with titles, and tables render properly

Recommended test plan: Deploy preview and navigate directly to /sdks/fern-vs-openapi-generator. Verify the page does NOT appear in the sidebar navigation. Expand each accordion section and verify formatting. Have someone familiar with both tools review for factual accuracy.

Notes

Link to Devin run: https://app.devin.ai/sessions/6419d0f32163483496509efaceb528e1
Requested by: Chris McDonnell ([email protected]) / @cdonel707

@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring


| Capability | Fern | OpenAPI Generator |
|------------|------|-------------------|
| **Documentation** | Comprehensive README + API reference | Minimal (title only) |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[FernStyles.Reject] Use 'API Reference' instead of 'API reference'.

<AccordionGroup>
<Accordion title="Documentation and onboarding" defaultOpen={true}>

Fern SDKs ship with comprehensive documentation that enables developers to get started quickly without reading generated code. OpenAPI Generator output requires developers to infer usage patterns from the generated files.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Adverbs] Remove 'quickly' if it's not important to the meaning of the statement.

| Feature | Fern | OpenAPI Generator |
|---------|------|-------------------|
| **README** | Comprehensive guide covering installation, auth, types, errors, pagination, retries, timeouts, logging, and runtime compatibility | Minimal (often just a title) |
| **API reference** | Generated `reference.md` with usage examples for every endpoint | None |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[FernStyles.Reject] Use 'API Reference' instead of 'API reference'.


<Accordion title="Runtime compatibility and packaging">

Fern explicitly supports multiple JavaScript runtimes and ships with proper ESM/CJS dual builds. OpenAPI Generator has basic module support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ESM' has no definition.


<Accordion title="Runtime compatibility and packaging">

Fern explicitly supports multiple JavaScript runtimes and ships with proper ESM/CJS dual builds. OpenAPI Generator has basic module support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'CJS' has no definition.

| **Bun** | 1.0+ | Not documented |
| **Cloudflare Workers** | Yes | Not documented |
| **React Native** | Yes | Not documented |
| **ESM/CJS builds** | Dual builds with proper exports | Basic ESM/CJS |
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ESM' has no definition.

| **Bun** | 1.0+ | Not documented |
| **Cloudflare Workers** | Yes | Not documented |
| **React Native** | Yes | Not documented |
| **ESM/CJS builds** | Dual builds with proper exports | Basic ESM/CJS |
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'CJS' has no definition.

| **Bun** | 1.0+ | Not documented |
| **Cloudflare Workers** | Yes | Not documented |
| **React Native** | Yes | Not documented |
| **ESM/CJS builds** | Dual builds with proper exports | Basic ESM/CJS |
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ESM' has no definition.

| **Bun** | 1.0+ | Not documented |
| **Cloudflare Workers** | Yes | Not documented |
| **React Native** | Yes | Not documented |
| **ESM/CJS builds** | Dual builds with proper exports | Basic ESM/CJS |
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'CJS' has no definition.

@github-actions
Copy link
Contributor

@github-actions
Copy link
Contributor


Fern presents a single unified client with intuitive namespaces that align with how developers think about APIs. OpenAPI Generator requires instantiating separate API classes.

**Fern SDK:**
Copy link
Collaborator

@devalog devalog Dec 18, 2025

Choose a reason for hiding this comment

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

don't use bolded titles like this for a codeblock, instead use this format, here and throughout:

typescript Fern SDK

</Accordion>
</AccordionGroup>

## Summary
Copy link
Collaborator

Choose a reason for hiding this comment

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

no need to have a separate summary section. integrate this info into the intro paragraph and delete any excess info (stay concise)

- page: Capabilities
path: ./capabilities.mdx
slug: capabilities
- page: Fern SDKs vs OpenAPI Generator
Copy link
Collaborator

Choose a reason for hiding this comment

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

this should be in a separate section called "Resources" that is at the end and marked as hidden

@github-actions
Copy link
Contributor

@github-actions
Copy link
Contributor


## Runtime compatibility and packaging

Fern supports multiple JavaScript runtimes with ESM/CJS dual builds and automatic runtime detection. OpenAPI Generator provides ESM/CJS support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ESM' has no definition.


## Runtime compatibility and packaging

Fern supports multiple JavaScript runtimes with ESM/CJS dual builds and automatic runtime detection. OpenAPI Generator provides ESM/CJS support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'CJS' has no definition.


## Runtime compatibility and packaging

Fern supports multiple JavaScript runtimes with ESM/CJS dual builds and automatic runtime detection. OpenAPI Generator provides ESM/CJS support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'ESM' has no definition.


## Runtime compatibility and packaging

Fern supports multiple JavaScript runtimes with ESM/CJS dual builds and automatic runtime detection. OpenAPI Generator provides ESM/CJS support.
Copy link
Contributor

Choose a reason for hiding this comment

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

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'CJS' has no definition.

@github-actions
Copy link
Contributor

@github-actions
Copy link
Contributor

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