Skip to content

Conversation

@geropl
Copy link
Member

@geropl geropl commented Jan 23, 2026

Description

This PR implements two changes to support the eventual migration of gitpod.io to a minimal static site:

Preview (enabled via feature flag): https://gl-clc-2204892e73929.preview.gitpod-dev.com/workspaces

Before (dynamic, with backend) After (almost completely static, no backend)
image image

|

Please review the decision logic, and that the Dedicated branch is left untouched

Task 1: Proxy Redirect Logging

Adds a new (enable_redirect_log) Caddy snippet that logs all 3xx responses, capturing:

  • Source URL and host
  • Redirect destination (Location header)
  • Status code
  • User agent

This provides observability into server-side redirects before making further changes.

Task 2: Minimal gitpod.io Mode

Implements a "minimal mode" for the exact gitpod.io domain that handles requests without booting the full React app:

Request Type Behavior
Website slugs (/docs, /pricing) Redirect → www.gitpod.io
Hash-based workspace creation (/#https://github.com/...) Redirect → app.ona.com/#...
Legacy URL formats (/github.com/org/repo) Redirect → app.ona.com/#...
App routes (/workspaces, /settings/*) Render minimal login page
Root path (/) Render minimal login page
Unknown paths Redirect → www.gitpod.io

The minimal login page shows Ona branding with a "Continue with Ona" button.

Feature flag: Controlled by ConfigCat flag minimal_gitpod_io_mode with localStorage override for testing.

Related Issue(s)

Relates to CLC-2206

How to test

Testing minimal mode locally

  1. Deploy to a preview environment or test on gitpod.io
  2. Open browser console and enable minimal mode:
    localStorage.setItem("minimal_gitpod_io_mode", "true");
    location.reload();
  3. Verify:
    • Root path (/) shows minimal login page with Ona branding
    • App routes (/workspaces, /settings) show minimal login page
    • Hash URLs (/#https://github.com/gitpod-io/gitpod) redirect to app.ona.com
  4. Disable minimal mode:
    localStorage.removeItem("minimal_gitpod_io_mode");
    location.reload();

Testing redirect logging

  1. Deploy proxy changes
  2. Check logs for entries with "type":"redirect" containing redirect details

Task 1: Add redirect logging to Caddy proxy
- New (enable_redirect_log) snippet that logs all 3xx responses
- Captures source URL, destination, status code, and user agent
- Added to http://, https://{GITPOD_DOMAIN}, and workspace blocks

Task 2: Implement minimal gitpod.io mode in dashboard
- Only active on exact "gitpod.io" domain
- Controlled by ConfigCat flag "minimal_gitpod_io_mode"
- localStorage override for testing: minimal_gitpod_io_mode=true/false
- Handles redirects without booting full React app:
  - Website slugs -> www.gitpod.io
  - Hash-based workspace creation -> app.ona.com
  - Legacy URL formats -> app.ona.com
  - App routes and root path -> minimal login page
  - Unknown paths -> www.gitpod.io
- Minimal login page shows Ona branding and "Continue with Ona" button

Part of CLC-2206: Reduce Compute Engine costs

Co-authored-by: Ona <no-reply@ona.com>
Use existing getExperimentsClient() wrapper instead of raw configcat-js API.

Co-authored-by: Ona <no-reply@ona.com>
- Two-panel layout: white left panel with login, gradient right panel with Ona branding
- Gitpod orange logo on left panel
- 'What do you want to get done today?' subtitle
- Black outlined 'Continue with Ona' button
- Sunset notice with links to Ona
- Terms of service and privacy policy footer
- Right panel with Ona wordmark, description, and 'Try Ona' button
- Responsive: hides right panel on smaller screens

Co-authored-by: Ona <no-reply@ona.com>
- Move inline HTML template to src/minimal-login.html for easier review
- Add webpack config to import HTML as raw string
- Add TypeScript declaration for HTML imports

Co-authored-by: Ona <no-reply@ona.com>
Co-authored-by: Ona <no-reply@ona.com>
- Fix button styling: dark background with white text (matching current design)
- Remove terms of service footer (no longer applicable)
- Add ona-application.webp to public folder for the preview image

Co-authored-by: Ona <no-reply@ona.com>
Copy link
Contributor

@kylos101 kylos101 left a comment

Choose a reason for hiding this comment

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

✅ to unblock, added some suggestions for 🫧

<h1 class="minimal-title">Start building with Ona</h1>
<p class="minimal-subtitle">What do you want to get done today?</p>

<a href="https://app.ona.com/login" class="minimal-btn">Continue with Ona</a>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
<a href="https://app.ona.com/login" class="minimal-btn">Continue with Ona</a>
<a href="https://app.ona.com/login" class="minimal-btn">Start for free</a>

Why? To be consistent with ona.com, which uses this call to action text. Also, it's what they'll see on smaller widths.

<div class="minimal-sunset-notice">
Gitpod Classic has been sunset on Oct 15.
<a href="https://ona.com/stories/gitpod-is-now-ona" target="_blank" rel="noopener noreferrer">Gitpod is now Ona</a>,
<a href="https://app.ona.com" target="_blank" rel="noopener noreferrer">start for free</a> and get $100 credits.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
<a href="https://app.ona.com" target="_blank" rel="noopener noreferrer">start for free</a> and get $100 credits.
<a href="https://app.ona.com" target="_blank" rel="noopener noreferrer">continue with Ona</a> and get $100 credits.

Why? I like this verbiage and feel it fits well here.

Comment on lines +268 to +275
Ona - parallel SWE agents in the cloud, sandboxed for high-autonomy.<br/><br/>
<a href="https://app.ona.com" target="_blank" rel="noopener noreferrer">Start for free</a> and get $100 in credits.<br/><br/>
Gitpod Classic has been sunset on Oct 15 |
<a href="https://ona.com/stories/gitpod-classic-payg-sunset" target="_blank" rel="noopener noreferrer">Learn more</a>
</h2>

<p>
Delegate software tasks to Ona. It writes code, runs tests, and opens a pull request. Or jump in to inspect output or pair program in your IDE.
Copy link
Contributor

Choose a reason for hiding this comment

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

This section is 👍 ! It isn't shown at the moment for smaller widths, though. How often do mobile devices land here?

<a href="https://app.ona.com/login" class="minimal-btn">Continue with Ona</a>

<div class="minimal-sunset-notice">
Gitpod Classic has been sunset on Oct 15.
Copy link
Contributor

Choose a reason for hiding this comment

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

Am thinking we should be linking to https://ona.com/stories/gitpod-classic-payg-sunset on the left panel, too.


<div style="overflow: hidden; border-radius: 8px;">
<img
src="/ona-application.webp"
Copy link
Contributor

Choose a reason for hiding this comment

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

This image is great! We don't see it in smaller widths.

<div class="minimal-left-content">
<div class="minimal-login-area">
<!-- Gitpod Logo (orange) -->
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 140 40" class="minimal-gitpod-logo">
Copy link
Contributor

Choose a reason for hiding this comment

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

I feel like we should be showing the Ona logo prominently in the left panel, especially considering that is what you see on a smaller screen.

Bonus if you can show a faded (black and white) Gitpod logo with an arrow pointing to the Ona logo (visually showing the org transition)!

@geropl
Copy link
Member Author

geropl commented Jan 26, 2026

Thanks @kylos101 ! I just 1-to-1 replicated what we had before. 🙂

@geropl geropl merged commit 8871661 into main Jan 26, 2026
58 of 59 checks passed
@geropl geropl deleted the gl/clc-2206-minimal-gitpod-io-mode branch January 26, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants