Skip to content

[6.x] Optimize Blueprint JSON Payload - #11993

Closed
jasonvarga wants to merge 1 commit into
masterfrom
blueprint-payload
Closed

[6.x] Optimize Blueprint JSON Payload#11993
jasonvarga wants to merge 1 commit into
masterfrom
blueprint-payload

Conversation

@jasonvarga

@jasonvarga jasonvarga commented Jul 24, 2025

Copy link
Copy Markdown
Member

For publish pages with a ton of fields (typically using a gigantic Replicator as a page builder) there has been performance issues. For example, the initial page load takes a long time. Not the server response - but the actual render. This seemed to be due to the gigantic blueprint that gets sent down the wire and then parsing the JSON makes the page struggle.

This is because each field's config contains all the necessary keys, even the default values for things that weren't explicitly defined. For example:

{
  "type": "text",
  "display": "...",
  "instructions": "...",
  "instructions_position": "above",
  "listable": true,
  "visibility": "visible",
  "sortable": true,
  // etc
}

There's a lot of redundant stuff in there. This PR excludes any default values from being in there and instead merges them in later.

In one test example, the blueprint JSON went from 872.08 KB to 367.75 KB.

Looks like the real culprit is the meta data though. It's even bigger than blueprint. That'll take some thought because it's a two way binding.

@macaws

macaws commented Jul 24, 2025

Copy link
Copy Markdown
Contributor

Great to see this - we have large/complex blueprints and content editor's laptops melt when they try to load the page in the CMS (60+ second load times if it loads at all).

@jasonvarga

Copy link
Copy Markdown
Member Author

Yeah, not ideal! We're well aware of this and will be doing what we can.

@jasonvarga

Copy link
Copy Markdown
Member Author

Closing for now, but will take another stab that includes optimizing the meta, which seems to be the real issue.

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