Skip to content

🐛 Fix landing pages stuck on Loading spinner on Netlify#4244

Merged
clubanderson merged 1 commit intomainfrom
fix/landing-pages-no-auth
Apr 2, 2026
Merged

🐛 Fix landing pages stuck on Loading spinner on Netlify#4244
clubanderson merged 1 commit intomainfrom
fix/landing-pages-no-auth

Conversation

@clubanderson
Copy link
Copy Markdown
Collaborator

Summary

Public landing pages (/from-holmesgpt, /from-lens, /from-headlamp, /feature-inspektorgadget, /feature-kagent, /white-label, /welcome) were inside FullDashboardApp, which wraps everything in AuthProvider.

On console.kubestellar.io (Netlify deployment, no Go backend), AuthProvider calls /api/me which never resolves — leaving the page permanently stuck on the "Loading KubeStellar Console" spinner.

Fix

Move all public landing pages to LightweightShell routes (same pattern already used by /missions). This skips auth and the full provider stack (~1.8MB → ~200KB initial JS).

Also fixes

  • Removes unused DEV_BAR_HEIGHT_PX import that was blocking tsc

Test plan

  • Build passes
  • Visit console.kubestellar.io/from-holmesgpt — should render immediately without spinner
  • Visit console.kubestellar.io/from-lens — same
  • Visit console.kubestellar.io/welcome — same
  • Verify auth-protected routes (dashboard, settings) still require login

Public landing pages (/from-holmesgpt, /from-lens, /from-headlamp,
/feature-inspektorgadget, /feature-kagent, /white-label, /welcome)
were inside FullDashboardApp which wraps everything in AuthProvider.

On console.kubestellar.io (Netlify, no Go backend), AuthProvider calls
/api/me which never resolves, leaving the page stuck on "Loading
KubeStellar Console" forever.

Fix: Move all public landing pages to LightweightShell routes (same
pattern as /missions), which skip auth and the full provider stack.

Also removes unused DEV_BAR_HEIGHT_PX import that was blocking tsc.

Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Copilot AI review requested due to automatic review settings April 2, 2026 14:01
@kubestellar-prow kubestellar-prow bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Apr 2, 2026
@clubanderson
Copy link
Copy Markdown
Collaborator Author

/lgtm
/approve

@kubestellar-prow
Copy link
Copy Markdown
Contributor

@clubanderson: you cannot LGTM your own PR.

Details

In response to this:

/lgtm
/approve

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubestellar-prow kubestellar-prow bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Apr 2, 2026
@kubestellar-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: clubanderson

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubestellar-prow kubestellar-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 2, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

👋 Hey @clubanderson — thanks for opening this PR!

🤖 This project is developed exclusively using AI coding assistants.

Please do not attempt to code anything for this project manually.
All contributions should be authored using an AI coding tool such as:

This ensures consistency in code style, architecture patterns, test coverage,
and commit quality across the entire codebase.


This is an automated message.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 2, 2026

Deploy Preview for kubestellarconsole ready!

Name Link
🔨 Latest commit 41effcf
🔍 Latest deploy log https://app.netlify.com/projects/kubestellarconsole/deploys/69ce76dfc8222e0008faa67b
😎 Deploy Preview https://deploy-preview-4244.console-deploy-preview.kubestellar.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes public landing pages getting stuck on the “Loading KubeStellar Console” spinner in the Netlify deployment by moving those routes out of the auth-wrapped app shell and into the existing lightweight routing pattern.

Changes:

  • Routes several public marketing/landing pages through LightweightShell to avoid AuthProvider (and its /api/me call) on Netlify.
  • Removes the unused DEV_BAR_HEIGHT_PX import to satisfy TypeScript build settings.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
web/src/App.tsx Moves public landing page routes to LightweightShell and removes them from FullDashboardApp so they render without auth/back-end dependencies.
web/src/components/layout/Layout.tsx Drops an unused UI constant import (DEV_BAR_HEIGHT_PX).

Comment on lines +445 to +449
{/* ── Public landing pages ──────────────────────────────────────
Marketing/comparison pages that must render without auth.
On Netlify (no Go backend), AuthProvider blocks forever
waiting for /api/me — these pages skip that entirely. */}
<Route path={ROUTES.FROM_LENS} element={<LightweightShell><FromLens /></LightweightShell>} />
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

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

Moving these landing pages out of FullDashboardApp means they no longer mount PageViewTracker. Several of the public pages (e.g., Welcome/FromLens/FromHeadlamp/WhiteLabel) don’t set document.title or emit a GA4 page_view themselves, so titles/analytics will regress for these routes. Consider hoisting PageViewTracker to App() (outside AuthProvider) or adding an equivalent tracker inside LightweightShell for the public routes.

Copilot uses AI. Check for mistakes.
Comment on lines +449 to +453
<Route path={ROUTES.FROM_LENS} element={<LightweightShell><FromLens /></LightweightShell>} />
<Route path={ROUTES.FROM_HEADLAMP} element={<LightweightShell><FromHeadlamp /></LightweightShell>} />
<Route path={ROUTES.FROM_HOLMESGPT} element={<LightweightShell><FromHolmesGPT /></LightweightShell>} />
<Route path={ROUTES.FEATURE_INSPEKTORGADGET} element={<LightweightShell><FeatureInspektorGadget /></LightweightShell>} />
<Route path={ROUTES.FEATURE_KAGENT} element={<LightweightShell><FeatureKagent /></LightweightShell>} />
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

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

These public landing page routes all repeat the same LightweightShell wrapper. To reduce duplication and keep route definitions easier to update, consider grouping them under a parent that renders LightweightShell + , then define the individual paths as children.

Copilot uses AI. Check for mistakes.
@clubanderson
Copy link
Copy Markdown
Collaborator Author

🔄 Auto-Applying Copilot Code Review

Copilot code review found 0 code suggestion(s) and 2 general comment(s).

Also address these general comments:

  • web/src/App.tsx (line 449): Moving these landing pages out of FullDashboardApp means they no longer mount PageViewTracker. Several of the public pag
  • web/src/App.tsx (line 453): These public landing page routes all repeat the same LightweightShell wrapper. To reduce duplication and keep route defi

Push all fixes in a single commit. Run cd web && npm run build && npm run lint before committing.


Auto-generated by copilot-review-apply workflow.

@clubanderson clubanderson merged commit 57e1cd1 into main Apr 2, 2026
27 of 28 checks passed
@kubestellar-prow kubestellar-prow bot deleted the fix/landing-pages-no-auth branch April 2, 2026 14:07
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Thank you for your contribution! Your PR has been merged.

Check out what's new:

Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey

clubanderson added a commit that referenced this pull request Apr 2, 2026
tsc fails on this unused import, preventing Netlify from deploying the
production crash fix (#4248). This import was removed in #4244 but
re-introduced by #4245.

Signed-off-by: Andrew Anderson <andy@clubanderson.com>
clubanderson added a commit that referenced this pull request Apr 2, 2026
…ld (#4253)

tsc fails on this unused import, preventing Netlify from deploying the
production crash fix (#4248). This import was removed in #4244 but
re-introduced by #4245.

Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has signed the DCO. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants