Is there a way in vcl to take a backend response, parse it and change it in some way and then deliver it to the client?

i know you can set response codes, but you can change the actual response wether its text/csv/json etc. or is that only available in compute edge.

VCL services cannot inspect or transform responses, but you can compose responses entirely at the edge, using the synthetic statement:

Compute@Edge services can access the response stream from backend requests, and do whatever transformation or processing you like. Each supported language has information on response processing in its overview guide. Here’s the one for JavaScript for example: