Skip to content

feat: load Lexical Reader in SSR with a fake DOM#2979

Draft
Soxasora wants to merge 1 commit into
stackernews:masterfrom
Soxasora:feat/lexical-ssr
Draft

feat: load Lexical Reader in SSR with a fake DOM#2979
Soxasora wants to merge 1 commit into
stackernews:masterfrom
Soxasora:feat/lexical-ssr

Conversation

@Soxasora
Copy link
Copy Markdown
Member

Description

Server-renders the Lexical Reader by briefly giving Lexical a fake DOM.

initialContentEditableSSR temporarily creates a fake document via withDOM (linkedom), then attaches it as Lexical's root element, allowing Lexical to render its EditorState into a valid root. The resulting HTML is used as the content editable (what gets rendered) for Lexical during SSR.

Screenshots

Lexical loads instantly

lexical_reader_SSR2.mp4

Additional Context

Should we remove HTML support at this point? We don't have another use for it and it's just wasted bandwidth.
I can see it being really useful for exports or no-js environments (html param) but nothing we currently support.

Checklist

Are your changes backward compatible? Please answer below:

Yes, HTML is intact and still accessible via html param

On a scale of 1-10 how well and how have you QA'd this change and any features it might affect? Please answer below:

6, in QA

For frontend changes: Tested on mobile, light and dark mode? Please answer below:

Yes, still light QA in background

Did you use AI for this? If so, how much did it assist you?

No, although I got the idea from an example made by Claude online.

…tationObserver, DOMParser and computed styles
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.

1 participant