Skip to content

feat: show maintainer locations on an interactive globe - #1494

Merged
KevinVandy merged 4 commits into
TanStack:tkdodo/maintainer-location-mapfrom
manudeli:feat/maintainer-globe
Nov 7, 2026
Merged

KevinVandy merged 4 commits into
TanStack:tkdodo/maintainer-location-mapfrom
manudeli:feat/maintainer-globe

Conversation

@manudeli

@manudeli manudeli commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Adds an interactive COBE globe to the maintainer map from #1493. It rotates automatically, follows dragging, and pauses over profiles so names are easy to read.

  • Show an individual portrait for each maintainer with a location, with horizontal rows for nearby locations, pulsing markers, and smooth transitions.
  • Keep profile placements stable as the globe rotates and resolve collisions locally.
  • Start slightly zoomed in, use smaller portraits and tighter spacing on mobile, and reserve the layout before the canvas loads.

Validation: pnpm test passed. Browser checks cover rotation, drag/release, hover, zoom, profile selection, portrait collisions, and identical layout dimensions before and after hydration on desktop and mobile.

Preview

Maintainer globe with portraits above their locations

Desktop

Drag to rotate, zoom in, and hover over a profile to pause and read the name.

maintainer-globe-desktop.mp4

Mobile

Drag to rotate, tap to zoom, and select a profile to see nearby maintainers.

maintainer-globe-mobile.mp4

@changeset-bot

changeset-bot Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fc8f8ac

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2e413429-6dea-40e3-876b-77349ef09ae2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@socket-security

socket-security Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcobe@​2.0.11001009883100

View full report

@KevinVandy
KevinVandy merged commit e4f64c8 into TanStack:tkdodo/maintainer-location-map Nov 7, 2026
7 checks passed
AlemTuzlak pushed a commit that referenced this pull request Nov 9, 2026
…1493)

* feat: maintainer map

* deslop

* feat: add maintainer locations from GitHub profiles

* feat: set Harry's location to Berlin

* feat: add locations for Lachlan and Manuel

* feat: add location for Jonghyeon Ko

* feat: move Sarah to Vancouver, drop map subtitle

* feat: add Benjamín Vicente as a maintainer

* feat(maintainers): add city to the 'manudeli' location

* Update src/libraries/maintainers.ts

Co-authored-by: Nicolas Beaussart <nic.beaussart@gmail.com>

* chore: move Nicolas below Florian in maintainers list

* chore: reorder Alem and Kyle in maintainers list

* feat: show maintainer locations on an interactive globe (#1494)

* feat: show maintainer locations on an interactive globe

* fix: tighten mobile maintainer profile spacing

---------

Co-authored-by: Kevin Van Cott <kevinvandy656@gmail.com>

* perf: avoid per-frame page-wide style recalc and forced layout in maintainer globe

COBE marker ids make it rewrite :root custom properties and move an anchor
div per marker on every update, which restyles the whole page each frame.
Project marker positions in JS instead (same math as COBE), cache card sizes,
only write card styles when visibility flips, keep the frame loop running
through zoom changes, drop backdrop-blur over the canvas, and delete the
unused land map JSON.

* perf: smooth maintainer globe entry and interaction

* feat: add pause button for globe rotation

* perf: composite globe profile cards and drop idle blur filter

* feat: refine responsive maintainer globe

* ci: apply automated fixes

* perf: avoid redundant globe entrance draws

* fix: keep maintainer globe clear of profile list

* perf: reveal maintainer globe sooner on load

* style: raise maintainer globe from farther below

* fix: zoom the maintainer globe within a fixed canvas

* fix: limit maintainer profile connector lengths

* fix: free maintainer profiles from the globe heading

* feat: render the maintainer globe with TanStack Charts

* fix: frame the maintainer globe closer on mobile

* fix: fill the lower globe corners on mobile

* fix: reveal the full mobile globe on scroll

* style(maintainers/globe): replace hardcoded globe colors with design system tokens

* feat(ds/palette): extend the cool neutral tint ramp to five steps

* fix(maintainers/map): unify selected cluster heading and point profiles at GitHub

* fix(routes/maintainers): drop duplicate top margin already covered by the flex gap

* feat(maintainers/map): document missing globe shortcuts with 'kbd' keys

* feat(maintainers/map): add a zoom reset control to the globe

* refactor(maintainers/map): group globe controls with a design system separator

* refactor(maintainers/map): replace remaining hardcoded colors with design system tokens

* fix(maintainers/map): restore the globe surface border lost to 'border-default'

* refactor(routes/maintainers): move globe controls onto the 'background-elevated' surface

* fix(maintainers/map): give the selected cluster panel the shared surface border

* refactor(routes/maintainers): tokenize the filter dropdown internals

* feat(maintainers/map): reset the globe tilt alongside zoom

* solid maps, initialLocation

---------

Co-authored-by: Kevin Van Cott <kevinvandy656@gmail.com>
Co-authored-by: Wonsuk Choi <sukvvon@gmail.com>
Co-authored-by: Nicolas Beaussart <nic.beaussart@gmail.com>
Co-authored-by: Jonghyeon Ko <manudeli.ko@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
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