Announcing: SiteSupport
Nicholas Piël | March 3, 2011It has been some time now since the last posts, but I’ve been very busy with this new thing I am working on; about a year ago I started working on a new web-service named SiteSupport.
SiteSupport will solve the problems many website owners currently face:
- It is impossible to view the stuff users do on your website
- It is difficult to explain users how to navigate your website
Our service solves this by enabling remote-desktop like collaboration on any web application, without the need for plugins. We achieve this by synchronizing the website-state over a websocket connection. This requirement of websocket connections is the reason why I benchmarked various event-driven servers about a year ago. The benchmark results showed that the servers which used the lightweight thread model (coroutines) where among the top performers. I thought that was great news, as I prefer their clean approach compared to callbacks.
Not long after I published the post, I got in contact with Denis Bilenko, the author of Gevent and it soon became clear that we both shared the same passions: programming in Python and reading Hacker News.
And thus, I am happy to announce SiteSupport, a joint-venture between Denis and me.
(and keep watching for at least 30sec, it’ll become less boring)

Subscribe to the RSS feed
Receive updates by Email
Looks really interesting. I could definitely use this!
Great work.
I agree, I have clients that could use this.
I also would be interested to know how you folks are dealing with the ‘temporary retraction’ of websockets as a standard due to security issues with broken proxy servers.
Does sitesupport require flash?
thanks
Thanks guys.
@brad
Flash is not required, but we can use Flash to simulate websockets in older browsers. Check out Jeffrey’s socketio implementation (https://bitbucket.org/Jeffrey/gevent-socketio/) or Denis websocket implementation (https://bitbucket.org/denis/websocket), both build on top of Gevent.
I am doing something similar in our whiteboard in http://www.binfire.com. it is built using gevent and long polling(aka COMET).
I like the fact that you show a cursor,if i may ask how did you implement that without considerable amount of lag?
one way i though on solving this is to sample the client mouse every 100ms(for example) record the path he traveled and each 500ms send that “recording” to the other client(s) to replay it(using animation to move the mouse smoothly),i haven’t implemented that yet
i am guessing that since you are using websockets,you are streaming the position as you get it?
Yes, we use sampling and really did our best to have it run as smooth as possible.
And indeed, we stream the position as we get it as fast as possible. Also, websockets have a much lower latency than a COMET connection.