SteemJS is a good swiss army knife for communicating with the blockchain with js. Most of the API documentation you will find is outdated as fuck and no one maintains it. Best way to go is just to F12 the steemit website and check the calls being made as they are console.logged. Last resort (if you want to do something steemit.com isnt doing) is looking at the blockchain code on github, inside the database_api.cpp file.
At least that's the way I'm doing it.