Skip to content

Commit d33eec8

Browse files
authored
Merge pull request #672 from webstackdev/maintenance/search-console-issues
Fix 404 and stale links for Google Search Console
2 parents a2cae64 + 3e9396a commit d33eec8

7 files changed

Lines changed: 43 additions & 7 deletions

File tree

‎.cache/pages.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@
126126
"prometheus/2",
127127
"python",
128128
"python/2",
129+
"react",
129130
"reliability-and-testing",
130131
"ruby",
131132
"system-modernization",

‎src/components/CallToAction/Download/__tests__/index.spec.ts‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,25 @@ describe('Download CallToAction (Astro)', () => {
137137
})
138138
})
139139

140+
test('uses the services landing page for the default secondary link', async () => {
141+
const Download = (await import('@components/CallToAction/Download/index.astro')).default
142+
143+
const renderedHtml = await container.renderToString(Download, {
144+
props: {
145+
resource: 'example-resource',
146+
},
147+
})
148+
149+
await withJsdomEnvironment(async ({ window }) => {
150+
window.document.body.innerHTML = renderedHtml
151+
152+
const links = [...window.document.querySelectorAll('a')]
153+
const secondaryLink = links.find(link => link.textContent?.trim() === 'Learn More')
154+
155+
expect(secondaryLink?.getAttribute('href')).toBe('/services')
156+
})
157+
})
158+
140159
test('throws BuildError when resource is blank', async () => {
141160
const Download = (await import('@components/CallToAction/Download/index.astro')).default
142161

‎src/components/CallToAction/Download/index.astro‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const {
4141
listItems,
4242
buttonText = 'Download Now',
4343
secondaryLink = {
44-
href: '/services/consulting',
44+
href: '/services',
4545
text: 'Learn More',
4646
},
4747
} = Astro.props

‎src/content/articles/demo/index.mdx‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2531,8 +2531,8 @@ Download PDF files
25312531
},
25322532
]}
25332533
secondaryLink={{
2534-
href: "/services/consulting",
2535-
text: "View consulting services",
2534+
href: "/services",
2535+
text: "View services",
25362536
}}
25372537
/>
25382538
```
@@ -2556,8 +2556,8 @@ Download PDF files
25562556
},
25572557
]}
25582558
secondaryLink={{
2559-
href: "/services/consulting",
2560-
text: "View consulting services",
2559+
href: "/services",
2560+
text: "View services",
25612561
}}
25622562
/>
25632563

‎src/content/articles/openapi-spec-documentation-sdk-generation-validation/index.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ cover: "./cover.jpg"
55
coverAlt: "Central glowing OpenAPI spec document with streams flowing to documentation pages, SDK code in multiple languages, and validation shields"
66
author: "kevin-brown"
77
publishDate: 2023-12-03
8-
tags: ["apis-and-gateways", "typescript", "python", "ruby", "go"]
8+
tags: ["apis-and-gateways", "typescript", "python", "ruby", "go", "react"]
99
featured: true
1010
---
1111

‎src/content/articles/openapi-spec-documentation-sdk-generation-validation/pdf.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ cover: "./cover.jpg"
55
coverAlt: "Central glowing OpenAPI spec document with streams flowing to documentation pages, SDK code in multiple languages, and validation shields"
66
author: "kevin-brown"
77
publishDate: 2023-12-03
8-
tags: ["apis-and-gateways", "typescript", "python", "ruby", "go"]
8+
tags: ["apis-and-gateways", "typescript", "python", "ruby", "go", "react"]
99
featured: true
1010
---
1111

‎src/content/tags/react/index.mdx‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
slug: "react"
3+
displayName: "React"
4+
intro: "Component-based UI library used for frontend applications, design systems, and typed client integrations"
5+
description: "React for frontend platform work, component libraries, internal tools, typed API clients, and web application architecture that intersects with broader platform engineering concerns."
6+
cover: "../../articles/openapi-spec-documentation-sdk-generation-validation/cover.jpg"
7+
coverAlt: "Central glowing OpenAPI spec document with streams flowing to documentation pages, SDK code in multiple languages, and validation shields"
8+
featured: false
9+
isSkill: true
10+
---
11+
12+
React shows up in platform engineering more often than pure backend teams expect. Internal developer portals, admin consoles, design systems, documentation surfaces, and SDK consumers frequently land in React because it remains the default UI layer for many TypeScript-heavy organizations. When platform teams need to expose workflows through a browser, React is usually part of the stack.
13+
14+
The value is less about the framework itself and more about the surrounding ecosystem. React Query, form libraries, component primitives, and TypeScript support make it practical to build internal tools that sit on top of platform APIs without hand-rolling state management and client integration patterns. That matters when the job is turning platform capabilities into something developers can actually use.
15+
16+
The tradeoff is complexity creep. React apps accumulate build tooling, state layers, and dependency churn quickly, and many teams reach for it when simpler server-rendered pages would do. Used deliberately, it is a strong fit for interactive operational tooling. Used by reflex, it adds a lot of surface area for marginal gain.

0 commit comments

Comments
 (0)