Skip to content

Proposal: Remove legacy JSX support from deck.gl React module in v10 #10161

@chrisgervang

Description

@chrisgervang

Summary

deck.gl’s current JSX support in the React module is built on an outdated pattern that predates React’s formal extension model. This has led to increasing complexity, limitations, and a growing number of issues that are difficult or impossible to resolve within the current design.

This issue proposes removing the legacy JSX support entirely in v10 and aligning on a more modern and maintainable approach.

Background

An attempt to address a recent edge case in #9873 highlighted the underlying problem. The blast radius required to properly fix the issue is too large due to how JSX support is currently implemented.

The existing approach dates back nearly a decade and relies on patterns that are now deprecated and were arguably never officially supported. As a result, the system is fragile and increasingly difficult to extend.

Problem

  • Fixes for edge cases often require disproportionate effort and risk unintended side effects
  • There is a growing backlog of feature requests and bugs that cannot be addressed cleanly

Proposal

This approach aligns better with modern React patterns and provides a more flexible and maintainable foundation.

For more context, Brandon presented fiber.gl at a recent collaborators summit. The recording is available here: https://www.youtube.com/watch?v=x19oZ__OqrI

Open Questions

  • What is the migration path for existing users of JSX-based layers?
  • Do we provide a compatibility layer or codemods?
  • What timeline makes sense for deprecation and removal?

Next Steps

  • Gather feedback from maintainers and the community
  • Evaluate migration strategy and documentation needs
  • Define deprecation timeline leading up to v10

cc @brandonjpierce, @Pessimistress, @felixpalmer, @ibgreen

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions