I have just had a short amount of time to take a look at the code and didn’t have the chance to actually test it out, so I will not allow myself to get critical anyhow.
Based on my very superficial overview, I have not spotted any catastrophic flaw that could destroy earth in your repo.
The only thing I might suggest is to take a look at HTML parsing and JSON encoding/decoding libraries and see if one of them fits your use case, so that you are not required to validate and benchmark your own procedures for these features. Who knows, maybe José Valim has already written some components that you could reuse, and that would provide you some SOLID building blocks and you would not have to bother about it.
Also, I would suggest a very strict (really very strict) set of rules when fetching web content. Currently, the ECMAScript standards and the V8 documentation are surprisingly full of features that, in my own non-web developer opinion, contain functions that enable behaviors that might not be desirable for a client. For instance, the DOM and it’s associated resources can be manipulated using a plethora of functions that make it seamless, yet have considerable side effects.
As far the Elixir implementation is concerned, I think the more experienced members that have answered will be currently much more helpful for that matter.
Hope this helps