Depend on Sinatra.
Split the entry script into two.

One for polling services, one for web hooks.