So, doing the “lots of JSON files in assets” and loading them via transform.Unmarshal is the right approach, the main reason is that Hugo can garbage collect them when they’re not in use anymore. This is not the case for front matter data. JSON files unmarshaled to Go maps can be memory hungry. As to JSON page resources, I don’t see any obvious benefits for your use case.