Skip to content

docs: add redirects for removed and moved Hilla pages - #6248

Merged
peholmst merged 1 commit into
mainfrom
docs/hilla-redirects
Oct 2, 2026
Merged

peholmst merged 1 commit into
mainfrom
docs/hilla-redirects

Conversation

@peholmst

@peholmst peholmst commented Oct 2, 2026

Copy link
Copy Markdown
Member

The Hilla cleanup PRs #5955, #5960, #5962, #5963, #5964, #5965, #5968, and #5971 removed or moved 52 pages without adding redirects, so external links to those pages return 404. #6243 only covered the MCP, long-running tasks, and browserless testing pages. This PR adds a redirect from each old URL to the page that replaced it, in redirects in dspublisher/config/default.json.

It also covers two URLs that existed only on main between these merges: /hilla/lit/faq (#5960 created it, #5963 removed it, and #5963 asked for this redirect) and /hilla/lit/guides/browser-callable-services (#5965 created it, #5971 removed it). That makes 54 new entries. Every entry points straight at a page, with no chains through other redirects. A URL that was renamed and then removed goes to its final destination.

Redirects

Lit copies of framework-independent pages → main Hilla section

#5955, #5964, and #5971 removed Lit pages that rendered the same shared content as their main-section pages, or moved them to the main section. Each one goes to its counterpart. Two pages were renamed after #5955 removed their Lit copy: endpoint-generator became typescript-generator, and endpoints became browser-callable-services (both in #5965). Those two go to the new names, not to the targets listed in #5955.

Old path Destination
/hilla/lit/guides/browser-callable-services /hilla/guides/browser-callable-services
/hilla/lit/guides/client-caching /hilla/guides/client-caching
/hilla/lit/guides/client-middleware /hilla/guides/client-middleware
/hilla/lit/guides/endpoints /hilla/guides/browser-callable-services
/hilla/lit/guides/event-handling /hilla/guides/event-handling
/hilla/lit/guides/security/authentication /hilla/guides/security/authentication
/hilla/lit/guides/security/best-practices /hilla/guides/security/best-practices
/hilla/lit/guides/security/configuring /hilla/guides/security/configuring
/hilla/lit/guides/security/intro /hilla/guides/security/intro
/hilla/lit/guides/security/offline-auth /hilla/guides/security/offline-auth
/hilla/lit/guides/security/spring-stateless /hilla/guides/security/spring-stateless
/hilla/lit/guides/security/vulnerabilities /hilla/guides/security/vulnerabilities
/hilla/lit/reference /hilla/reference
/hilla/lit/reference/configuration /hilla/reference/configuration
/hilla/lit/reference/connection-indicator /hilla/reference/connection-indicator
/hilla/lit/reference/endpoint-generator /hilla/reference/typescript-generator
/hilla/lit/reference/gradle /hilla/reference/gradle
/hilla/lit/reference/type-conversion /hilla/reference/type-conversion
/hilla/lit/reference/type-nullability /hilla/reference/type-nullability
/hilla/lit/reference/typescript-client /hilla/reference/typescript-client

Endpoints renamed to browser-callable services

#5965 renamed these pages. The Lit reactive services page still exists, so its old URL stays in the Lit section.

Old path Destination
/hilla/guides/endpoints /hilla/guides/browser-callable-services
/hilla/guides/reactive-endpoints /hilla/guides/reactive-services
/hilla/lit/guides/reactive-endpoints /hilla/lit/guides/reactive-services
/hilla/reference/endpoint-generator /hilla/reference/typescript-generator

Hilla production section → Flow production section

#5968 removed both copies of the Hilla production section, because articles/flow/production covers all of Vaadin and is a superset of them. Every page has a counterpart there with the same file name and topic, so both sections map onto it page by page.

Old path (main and Lit section) Destination
/hilla/guides/production, /hilla/lit/guides/production /flow/production
/hilla/guides/production/cloud-providers, /hilla/lit/guides/production/cloud-providers /flow/production/cloud-providers
/hilla/guides/production/cloud-providers/aws, /hilla/lit/guides/production/cloud-providers/aws /flow/production/cloud-providers/aws
/hilla/guides/production/cloud-providers/azure, /hilla/lit/guides/production/cloud-providers/azure /flow/production/cloud-providers/azure
/hilla/guides/production/cloud-providers/google, /hilla/lit/guides/production/cloud-providers/google /flow/production/cloud-providers/google
/hilla/guides/production/cloud-providers/heroku, /hilla/lit/guides/production/cloud-providers/heroku /flow/production/cloud-providers/heroku
/hilla/guides/production/native, /hilla/lit/guides/production/native /flow/production/native
/hilla/guides/production/production-build, /hilla/lit/guides/production/production-build /flow/production/production-build
/hilla/guides/production/servlet-containers, /hilla/lit/guides/production/servlet-containers /flow/production/servlet-containers
/hilla/guides/production/spring-boot, /hilla/lit/guides/production/spring-boot /flow/production/spring-boot
/hilla/guides/production/troubleshooting, /hilla/lit/guides/production/troubleshooting /flow/production/troubleshooting

Hilla upgrading guides → main upgrading guide

#5962 removed the Lit upgrading page and pointed it at the main Hilla one. #5968 then removed that page too, and moved the still-relevant steps (React Router imports, browser-callable services in other packages) to the Hilla part of the main upgrading guide.

Old path Destination
/hilla/guides/upgrading /upgrading
/hilla/lit/guides/upgrading /upgrading

Hilla CLI getting-started pages, tutorials, and the Lit FAQ

#5960 removed the Lit getting-started section and the React CRM tutorial, because they started from a Hilla CLI or preset project. It sends readers to Getting Started to create a project instead, so the section, the quick start, and both tutorials go to the matching Getting Started pages. The Lit FAQ moved to /hilla/lit/faq in #5960, and #5963 merged it into the main FAQ.

Old path Destination
/hilla/lit/faq /hilla/faq
/hilla/lit/start /getting-started
/hilla/lit/start/basics /getting-started/tutorial
/hilla/lit/start/faq /hilla/faq
/hilla/lit/start/quick /getting-started/quick-start
/hilla/tutorial /getting-started/tutorial

The Getting Started tutorial uses only Java, so it isn't a React tutorial. The closest React page is /building-apps/react, but it says it's "not a guide to building a complete application in React", so it isn't a tutorial either. Matching tutorial to tutorial is in line with #5960.

Verification

🤖 Generated with Claude Code

The Hilla cleanup PRs #5955, #5960, #5962, #5963, #5964, #5965, #5968,
and #5971 removed or moved 52 pages without redirects, plus two pages
that only existed on main between those merges. Each old URL now
redirects to the page that replaced it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Preview Deployment

This PR has been deployed for preview.

URL: https://docs-preview-pr-6248.fly.dev

No documentation page changes detected.

Built from b54d669

@peholmst

peholmst commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

Redirects tested on the preview

All 69 redirects in dspublisher/config/default.json work on https://docs-preview-pr-6248.fly.dev/: the 54 added here and the 15 from #6243.

For each redirect, the test checked that:

  • The old URL redirects. The source path, with and without a trailing slash, leads to the destination in the config.
  • The destination is a real page. It returns HTTP 200 and isn't another redirect. The preview returns a real 404 for unknown paths, so a broken destination would fail this check.
  • It's the right page. For each of the 52 distinct destinations, the page heading matches the title or heading of the article in the repository.

Result: 69 of 69 redirects pass, and all 52 destinations match their articles.

The preview serves redirects as static HTML pages with a meta refresh and HTTP status 200, not as 301 responses. That comes from how dspublisher builds redirects, so it applies to the existing redirects as well.

All 69 redirects
Old path Destination Result
/building-apps/mcp /building-apps/agentic-development/mcp ✅
/building-apps/mcp/supported-tools /building-apps/agentic-development/mcp/supported-tools ✅
/building-apps/mcp/supported-tools/claude-code /building-apps/agentic-development/mcp/supported-tools/claude-code ✅
/building-apps/mcp/supported-tools/codex /building-apps/agentic-development/mcp/supported-tools/codex ✅
/building-apps/mcp/supported-tools/cursor /building-apps/agentic-development/mcp/supported-tools/cursor ✅
/building-apps/mcp/supported-tools/gemini-cli /building-apps/agentic-development/mcp/supported-tools/gemini-cli ✅
/building-apps/mcp/supported-tools/github-copilot /building-apps/agentic-development/mcp/supported-tools/github-copilot ✅
/building-apps/mcp/supported-tools/junie /building-apps/agentic-development/mcp/supported-tools/junie ✅
/building-apps/mcp/supported-tools/other-tools /building-apps/agentic-development/mcp/supported-tools/other-tools ✅
/building-apps/mcp/supported-tools/windsurf /building-apps/agentic-development/mcp/supported-tools/windsurf ✅
/flow/advanced/long-running-tasks /building-apps/business-logic/background-jobs/interaction ✅
/flow/testing/browserless/getting-started /building-apps/testing/browserless ✅
/flow/testing/browserless/migration /building-apps/testing/browserless/migrate-ui-unit-tests ✅
/flow/testing/browserless/non-spring /building-apps/testing/browserless/setup-without-spring ✅
/flow/testing/browserless/optimizing-tests /building-apps/testing/browserless/speed-up-tests ✅
/hilla/guides/endpoints /hilla/guides/browser-callable-services ✅
/hilla/guides/production /flow/production ✅
/hilla/guides/production/cloud-providers /flow/production/cloud-providers ✅
/hilla/guides/production/cloud-providers/aws /flow/production/cloud-providers/aws ✅
/hilla/guides/production/cloud-providers/azure /flow/production/cloud-providers/azure ✅
/hilla/guides/production/cloud-providers/google /flow/production/cloud-providers/google ✅
/hilla/guides/production/cloud-providers/heroku /flow/production/cloud-providers/heroku ✅
/hilla/guides/production/native /flow/production/native ✅
/hilla/guides/production/production-build /flow/production/production-build ✅
/hilla/guides/production/servlet-containers /flow/production/servlet-containers ✅
/hilla/guides/production/spring-boot /flow/production/spring-boot ✅
/hilla/guides/production/troubleshooting /flow/production/troubleshooting ✅
/hilla/guides/reactive-endpoints /hilla/guides/reactive-services ✅
/hilla/guides/upgrading /upgrading ✅
/hilla/lit/faq /hilla/faq ✅
/hilla/lit/guides/browser-callable-services /hilla/guides/browser-callable-services ✅
/hilla/lit/guides/client-caching /hilla/guides/client-caching ✅
/hilla/lit/guides/client-middleware /hilla/guides/client-middleware ✅
/hilla/lit/guides/endpoints /hilla/guides/browser-callable-services ✅
/hilla/lit/guides/event-handling /hilla/guides/event-handling ✅
/hilla/lit/guides/production /flow/production ✅
/hilla/lit/guides/production/cloud-providers /flow/production/cloud-providers ✅
/hilla/lit/guides/production/cloud-providers/aws /flow/production/cloud-providers/aws ✅
/hilla/lit/guides/production/cloud-providers/azure /flow/production/cloud-providers/azure ✅
/hilla/lit/guides/production/cloud-providers/google /flow/production/cloud-providers/google ✅
/hilla/lit/guides/production/cloud-providers/heroku /flow/production/cloud-providers/heroku ✅
/hilla/lit/guides/production/native /flow/production/native ✅
/hilla/lit/guides/production/production-build /flow/production/production-build ✅
/hilla/lit/guides/production/servlet-containers /flow/production/servlet-containers ✅
/hilla/lit/guides/production/spring-boot /flow/production/spring-boot ✅
/hilla/lit/guides/production/troubleshooting /flow/production/troubleshooting ✅
/hilla/lit/guides/reactive-endpoints /hilla/lit/guides/reactive-services ✅
/hilla/lit/guides/security/authentication /hilla/guides/security/authentication ✅
/hilla/lit/guides/security/best-practices /hilla/guides/security/best-practices ✅
/hilla/lit/guides/security/configuring /hilla/guides/security/configuring ✅
/hilla/lit/guides/security/intro /hilla/guides/security/intro ✅
/hilla/lit/guides/security/offline-auth /hilla/guides/security/offline-auth ✅
/hilla/lit/guides/security/spring-stateless /hilla/guides/security/spring-stateless ✅
/hilla/lit/guides/security/vulnerabilities /hilla/guides/security/vulnerabilities ✅
/hilla/lit/guides/upgrading /upgrading ✅
/hilla/lit/reference /hilla/reference ✅
/hilla/lit/reference/configuration /hilla/reference/configuration ✅
/hilla/lit/reference/connection-indicator /hilla/reference/connection-indicator ✅
/hilla/lit/reference/endpoint-generator /hilla/reference/typescript-generator ✅
/hilla/lit/reference/gradle /hilla/reference/gradle ✅
/hilla/lit/reference/type-conversion /hilla/reference/type-conversion ✅
/hilla/lit/reference/type-nullability /hilla/reference/type-nullability ✅
/hilla/lit/reference/typescript-client /hilla/reference/typescript-client ✅
/hilla/lit/start /getting-started ✅
/hilla/lit/start/basics /getting-started/tutorial ✅
/hilla/lit/start/faq /hilla/faq ✅
/hilla/lit/start/quick /getting-started/quick-start ✅
/hilla/reference/endpoint-generator /hilla/reference/typescript-generator ✅
/hilla/tutorial /getting-started/tutorial ✅

🤖 Generated with Claude Code

@peholmst peholmst added the target/v25.3 Automatically cherry-pick to the v25.3 branch label Oct 2, 2026
@peholmst
peholmst merged commit 39cfa13 into main Oct 2, 2026
10 checks passed
@peholmst
peholmst deleted the docs/hilla-redirects branch October 2, 2026 12:46
peholmst added a commit that referenced this pull request Oct 2, 2026
…5.3) (#6250)

Co-authored-by: Petter Holmström <petter@vaadin.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cherry-picked-v25.3 target/v25.3 Automatically cherry-pick to the v25.3 branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants