Remove Excalidraw-based Sketch Lab#73959
Open
molly-moen wants to merge 2 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Removes the legacy Excalidraw-based implementation of Sketch Lab and associated experiment gating, leaving React Flow as the sole Sketch Lab implementation while preserving Excalidraw-to-React Flow migration support.
Changes:
- Removed the
EXCALIDRAWexperiment flag and all Excalidraw Sketch Lab view/tour/utils/styles. - Updated Sketch Lab to always render the React Flow implementation and simplified product-tour availability accordingly.
- Added a React Flow-local
uploadBase64ToUrlhelper and re-wired Excalidraw conversion uploads to use it.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| apps/test/unit/lab2/productTours/productToursPerLabTest.ts | Updates product tour tests to reflect removal of Excalidraw tour and experiment gating. |
| apps/src/util/experiments.js | Removes experiments.EXCALIDRAW flag. |
| apps/src/sketchlab/types.ts | Deletes Excalidraw-specific serialized state types. |
| apps/src/sketchlab/SketchlabView.tsx | Removes experiment branching; always renders React Flow Sketch Lab. |
| apps/src/sketchlab/reactFlow/utils/uploadBase64ToUrl.ts | Adds a new helper to upload base64 image data via POST/PUT. |
| apps/src/sketchlab/reactFlow/utils/convertExcalidrawSources.ts | Switches upload helper import; documents remaining @excalidraw dependency for migration. |
| apps/src/sketchlab/excalidraw/utils/uploadExternalFiles.ts | Deletes legacy Excalidraw external-file upload logic. |
| apps/src/sketchlab/excalidraw/utils/populateInitialExcalidrawState.ts | Deletes Excalidraw initial-state population logic. |
| apps/src/sketchlab/excalidraw/utils/index.ts | Deletes legacy Excalidraw utils barrel export. |
| apps/src/sketchlab/excalidraw/utils/imageUrlToBase64.ts | Deletes legacy Excalidraw image encoding helper. |
| apps/src/sketchlab/excalidraw/utils/handleSaveToBackpack.ts | Deletes legacy Excalidraw “save sketch to backpack” implementation. |
| apps/src/sketchlab/excalidraw/utils/generateNewExternalFiles.ts | Deletes legacy Excalidraw external-file metadata generation. |
| apps/src/sketchlab/excalidraw/styles/sketchlab-view.module.scss | Deletes Excalidraw view styling. |
| apps/src/sketchlab/excalidraw/introTour/useSketchlabTour.ts | Deletes Excalidraw-specific intro tour hook. |
| apps/src/sketchlab/excalidraw/ExcalidrawSketchLabView.tsx | Deletes the Excalidraw-based Sketch Lab view. |
| apps/src/sketchlab/constants.ts | Removes the legacy tour localStorage key constant. |
| apps/src/lab2/productTours/productToursPerLab.ts | Removes Excalidraw tour config and experiment-based availability gating. |
| apps/src/lab2/productTours/excalidrawSketchLabTourSteps.tsx | Deletes Excalidraw Sketch Lab tour steps. |
molly-moen
marked this pull request as ready for review
July 17, 2026 22:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR removes the excalidraw-based Sketch Lab from the repo and gets rid of the experiment flag that allowed you to load any sketch lab level in excalidraw. We have fully moved to React Flow now.
I kept the excalidraw migrator in case there are any lingering projects or levels. This means we still need the
@excalidrawimport in the repo, as we rely on excalidraw's types. I added a comment to the migration file that if we ever decide to cut this off, we can remove the import.Links
Testing story
Tested locally that sketch lab still loads as expected.