Observer allows you to watch your application users in real time, and see in your browser what they are doing, all the events are duplicated and emulated.
If a user clicks on a button that triggers an alert or a other javascript interaction, the same interaction will happen on your page. You can see what the users are typing or what keyboard short cuts they are using.
If you want to interact with the following user you can press the chat button at the top of the menu bar to start a anonymous chat with them.
Don’t have time to follow all your users? No problem, all session are stored in our database so they can be re-played at a later point of time.
Just like all other sites, this demo works best in Google Chrome because it can use the full power of WebSockets. But any good HTML5 powered browser should work. Or IE users with chrome frame :)
Also please note that this is a solo entry, it was not build by a complete team of coding monkeys so please vote accordingly.
And thanks for taking the time to review this application, it’s build upon blood and tears, so I’m grateful that you guys are taking the time to review it.
The site is build upon a custom content management system that is driven by MongoHQ’s mongodb. It allows me to edit the pages on the fly without having to push code changes. This makes it a really flexible application, where I can spawn pages by just working in the back-end of my application. New pages can be generated on the fly and bugs can be fixed without having to reboot the server and lose the persistent connection that socket.io has established with my server.
The cms allows different template engines, such a Jade or EJS. I personally think that is pretty rad.
The connections and the following are established by Socket.IO. It uses the rooms the functionality of socket.io to follow the different connections. Both the user and the observer join the same room, where the events are broadcasted to.
Administration / logged in version of the Observer runs through a different namespace so we can do a authorization check based on the information we gathered. We check if the user is logged in to the observer.no.de site, and checking the session of it. If you are not authorized to login you get notified of it.
useragent@0.1.2 ./node_modules/useragent
ejs@0.4.3 ./node_modules/ejs
underscore@1.1.7 ./node_modules/underscore
long-stack-traces@0.1.2 ./node_modules/long-stack-traces
connect@1.6.4 ./node_modules/connect
datejs@0.0.2 ./node_modules/datejs
validator@0.2.7 ./node_modules/validator
jade@0.15.2 ./node_modules/jade
express@2.4.6 ./node_modules/express
nko@0.1.1 ./node_modules/nko
mongodb@0.9.6-13 ./node_modules/mongodb
socket.io@0.8.1 ./node_modules/socket.io
├── policyfile@0.0.4
├── redis@0.6.6
└── socket.io-client@0.8.1
Hello people, I would like to ask you guys for one last big favor, if you love this service and would like to continued after the Node Knockout please cast a vote at http://observer.no.de/vote.
By winning in the solo category I would gain sufficient funds and toys to build a working commercial service out of it.
Voting is now closed.































































































































































































(192)
peterReally awesome, and unique entry! Glad to see more utility in this competition, most stuff is games in here :P | |||
felixgeAmazing single person entry, I’m speechless! | |||
Wow ! You did it alone … It’s terrific ! Seriously … With many of other applications, you disserve to win ! | |||
Hey first of all thanks for voting! I’m getting really close to first spot overall now, it will be a neck to neck race :p
But what I would love to find out, what I need to change on my service to get a full 5 on the design. Was it to minimal or was there something missing?
Thanks for your for your feedback!
For the design, it should be brought more further … But I forgot that you accomplished that alone … It’s already a big work and seriously even if the design is minimalist, it’s clean. So I can, indeed, give you 5 stars !
Woah :o Thanks a lot!
okaysamuraiVery useful. I could certainly see using this and watching several user behaviors to see how the act – also great for presentation purposes, much more engaging than heatmaps/charts/etc. Would love to see this continued and have more visual/information design – icons, colors, hierarchy, and so on, to help read the information more efficiently. Loved being able to click on a user and see what they did. Nice work! | |||
One person, two days… awesome software indeed! | |||
It’s astounding you managed to do that alone in 48h! I docked you a point in innovation because my company already used a somewhat similar service called ClickTale. But it was incredibly useful and I’m excited to see tools like this written in Node. ClickTale also had some extra security for not keylogging password fields and credit card inputs. Don’t know if you implemented that also. Cheers! | |||
Hmz, I was not aware of ClickTale at all. But it’s nice to know that there are more services like this so I know which competitors I have in that industry. I did some small research before I started the project but I was unable to find a service that emulated the movements and executed the JavaScript on that page (I was unable to find that out from watching the ClickTale movie, so I guess they are not?).
Also, I have already implemented extra security checks for password fields. If you type a password I will change all characters to *’s.
Detecting creditcard fields is probably a bit harder as they can be named anything, and doesn’t allow me to check for a specific input type.
But thanks for taking the time to review my application and for the valuable information.
ClickTale emulates the JavaScript with some hints from your code from what I remember. You can also add a class=“ClickTaleSensitive” to the sensitive input fields.
Good luck with this project! Will it remain free? The killer feature of clicktale was the ability to “tag” sessions and search them afterwards.
That would be simple way of doing it, but I like to the deployment and integration to be as simple as possible. So I think I will go with a configurable approach. I could allow users to specify which classNames I should ignore instead of having the users add third party markup in their pages.
I hope to keep this project for free as long as possible, but that completely depends on the hosting and database traffic that is generated. My current database is already filled with 200mb of data and contains up to 330k of documents, but we will see how it goes :p.
And I do want to make it easier to filter and search recorded sessions so I think tagging and filter controls, for session duration, entrance page, amount of clicks, browser, geo location would be nice addition.
It’s pretty amazing, specially considering it’s being done by one person in 48 hours. It’s very useful and apart from a few design stuff that would be better differently and the documentation which is incomplete still, everything is outstanding. | |||
Pretty solid concept. Excelent technical execution. Fairly complete entry, specially for a single person. I had some issues with it in Chrome Beta, but I switched to the stable channel and now it’s working fine. (Could it be because of the websocket protocol change?) I really hope this turns out into a successful commercial service: There is a spot in the market for something like this. I would only like to suggest some sort of data aggregation functionality (like a heatmap) on a future release. Other than that, congratulations, and good luck with the startup! :–) | |||
Fist of all thanks for writing such a extensive review of the application.
There are indeed some issues with Chrome beta, we have Socket.IO supporting the latest protocol but there seems to be a bug in node or node-proxy that doesn’t properly proxy the upgrade event. (see https://github.com/nodejitsu/node-http-proxy/issues/97)
Heat mapping and some nice stats / graphs are indeed on the todo list all the data is stored in the database so I’m sure I can generate some cool data visualisations from it.
Thanks again for the vote <3
janlThanks for taking the time to Judge my entry and thanks for the amazing rating.
Next time i’ll use CouchDB to gain that extra innovation star ;)
pcaprThis was built in 48 hours, by a solo entry? This is 5/5 in my book. Feels complete, pretty neat way to see what your users are doing, in real-time. | |||
Hello Kowsik,
Thanks for taking the time to Judge my entry, I spend a lot of time preparing this entry, I had tons of sketches, mind maps, brain storms before the competition.
So preparations really helped out here.
yet another great live user monitoring with great execution! | |||
Thanks a lot for the votes, I really appreciate them! If you any tips or feedback i’m all ears :)
Hi,
Thanks for the votes. It would be great if you could tell me how this service could provide you with a high utility value? Is there any thing that you are missing and you would like to see implemented?
After checking it out more, it really is innovative and has a lot of utility.
:o thanks for upgrade :o!
therazorbladeThis could be an very useful utility. The only thing I was able to test was the demo, and only partially. The design is clean and simple but a bit confusing – maybe it is because you are using your own site for the demo. | |||
Hello,
Thanks allot for taking the time to review my app (and the other 100’s you did). Could you provide me with more information about demo? Which browser where you using? I had some issues with socket.io because the no.de server doesn’t properly proxy the latest websocket specification, but after I upgraded it worked again. So If you could one more look it would be awesome (also you should be able to deploy the code on your own site again it’s in the account view when you login)
therazorbladeOk. I got it to work on my own site. The main cause for confusion is that when you load the site for following, you also create another session. There was a pretty long delay in seeing ‘live’ results (about 5-10 seconds). Updated my vote.
Yeh I noticed the delay as well, it’s mainly because i’m running really close against the 128mb memory limit of the machine. I think is because I decided to queue up the received events in memory because my database is remotely hosted on mongohq, so I hoped to save some network latency by doing bulk updates. So unfortunately the Socket.io’s namespace authentication takes a bit longer than expected.
But once again, thanks for you feedback
This service is incredibly useful, another 48 and it would be perfect :–) | |||
Hi Ian,
Thanks a lot vote the great votes! Looking forward chatting up with you during NodejsConf.it ! :)
Same here! :)
I can not imagine how you could do that in 48 hours!:D | |||
I started preparing a week in advance. Did some sketches for the layout, created database schemes. Decided how I wanted to run the authorization layer. So I when the clock started running I knew exactly what I needed to build and how it should be build. + having knowledge of the inner workings of socket.io helped allot.
But I would love to find out what I should change to make it more innovative, as I would love to make a full service out of it.
Thanks again for taking the time to vote and review my app.
<3! Thanks allot for the vote!
The replay was very impressive, however I couldn’t figure out how to do a recording. Overall, it was non-intuitive to me. Needs polish. | |||
Hey,
Thanks allot for the review, I would love to hear which parts of the application you found non-intuitive, as im probably going to try to make a service out of this I would love to get as much feedback as possible!
Thanks again for your time
Could just be me being dense. I clicked on “Recording” and I see a recording being played back. So my next question is how to record my own actions, which I didn’t find. Also, I am not at all clear as to what the “Live” button does.
Hi,
You can record your own actions by registering a free account. After you are registered you can place a small script on your site and all your users will be tracked. (but on observer.no.de all users are automatically tracked because I also deployed the script in all public pages).
Than inside the “my account” view there is a list of recorded sessions that you can view back of your users.
The Live button allows you to follow users live and follow there page navigation, mouse clicks, mouse movements in real time. But this obviously only works if there are active users online :)
Hopes this makes it a bit more clear!
Thanks for voting, could you tell me what you disliked about the design or what could be improved? I would love to build a full service out of this so all feedback is more than welcome.
Hmmm, editing the vote killed my text. I just normalized the vote with the other designs. You’re actually up there.
Feedback: I’d like to see some more margins on the top bar’s buttons, and the design is pretty sparse as it is. This would rock as a service. Yammer might even use it.
Thanks for in the increase! A bigger menu would indeed be good thing, I tried it in on the iPad & iphone it was workable but having some more margin / space would help.
Thanks for the additional feedback!
chrissharkeyYou did all of this in the time frame? This is unbelievably good. It looks like a very valuable service, the site looks very professional and works as advertised. This is the most polished entry I have seen by far! | |||
Hello!
Thanks a lot for the review! It was hard work but i’m extremely happy that I managed to pull this off in such a short time.
csanzgreat concept, I see a lot of potential. | |||
Hello,
Thanks for taking the time to vote and review my entry. 5 stars, for everything thanks a lot! I appreciate it!
wjgilmoreWithout question I would subscribe to this service. Pure gold. | |||
Woah, thanks for voting. And I’m actually considering of building this in a full service. So I hoped to win the solo category so I would have some funds to get this project of it’s feets.
Great idea, UX designers would absolutely love this. True and honest A/B testing without even asking people to! | |||
Hi!
Thanks for the vote. I certainly hope that UX designers would love this. I certainly beats having to hire people from the streets to do a ux session with them.
This would allow you to test with your actual users, who are interested in the produced or service that you are selling.
Hey,
Thanks for the vote, could you tell me what you liked / disliked from the design and how I could make it more complete? Was there something specific that you where missing?
This would be an excellent utility. After some cleanup this could be a full-fledged service. | |||
Hi,
Thanks a lot for taking the time to vote & review my app. What would you like to see cleaned up so I can build a full-fledged server out of it (which i’m planning to do)
The recording is quite useful and the live view is very neat. If this gets fleshed out further I could absolutely see this becoming a product that people used. | |||
Thanks a lot for taking the time to play with my app, what would like to see fleshed out, or what could be done better because I’m seriously considering of continuing the development of this.
I couldn’t get this working unfortunately. I tried ff6 and chrome stable. Great idea though, I can see this being really useful. | |||
Hi,
Could you try it again? There seemed to be some small socket.io related issues on the no.de server, but I managed to resolve allot of them by upgrading to 0.8.x
Thanks <3!
as a designer, I cannot wait to use this. love that you didn’t go with drop-shadow city, but instead went with a simple, crisp design. watched the demos. love it. really excited to use this on our project launch coming up | |||
Hi!
I personally really like minimal designs without a lot of distractions, with a few gradients here and there to attract the attention of the users.
And as a designer I would love to find out how I could earn that 1 extra star :)
Thanks again for the vote
acdouglasThis is awesome, albeit slightly creepy | |||
Hello,
Thanks a lot for the review, it might be a bit creepy but it’s the best way to learn from your customers, unless you want to pay a lot of money for a UX study of your site.
Now you can see instantly if one of you design changes have the desired effect on your customers :)
Hello Mikeal,
I would love to find out how I could the improve utility value of this service, was there something that you where missing or was there something broken?
Thanks again for taking the time and effort to review my application, I really appreciate it.
mdeRecorded demo works well. The site design is very nice. That’s a lot of work for one dude. :) | |||
I’m glad you liked it! And it was a bunch of work indeed. But I think it’s was well worth it.
This is slick. Good job | |||
Thanks for taking the time to vote! But I would love to know what I can improve in the design. Was it to minimal or maybe to confusing to work with?
jimpickGreat utility. I can imagine using this on my own sites. I loved the demo. I tried embedding the script on a test site, and it appears to be communicating with the server via websockets. Outside of the demo, there doesn’t appear to be way to connect to the recorded sessions from the web UI yet (not yet implemented, I believe). I’m excited to play with that part when it’s ready. | |||
Thanks for taking the time to write so much feedback. Observer records all information automatically, so everything is directly stored on the server.
As for the recordings menu, it was disabled in my cms, I have renamed it and should be available in the account section after you logged in.
Thanks again for the feedback.
Thanks allot for voting, I would love to have your input on how I could make my 4 star design a 5 star design because I really want to continue building this service and all feedback is more than welcome!
daviduThis is well done. Some edge cases and kinks, but I can see this being used. Will it scale on the UI side? I get 20,000,000 pageviews a day, I don’t want to watch 20,000,000 recordings. But for user-testing, this could be terrific. | |||
Howdy,
First of all thanks for the great scores! As for the scaling the UI side, that could probably be solved by adding some filter and sorting capabilities to the sessions. Like the Country, Browser, Session duration or which page they started.
But I didn’t really had time enough to build that in, but it’s definitely on my todo list. Thanks for the input.
Very cool and slightly spooky. I can see this sort of live tracking and recording being really useful, although I’m not sure how comfortable users would feel if they knew their exact actions were being recorded. | |||
Yes it can be kinda spooky, but that is also the reason why I’m blocking out input[type=“password”] and won’t allow that it’s being deployed on a secure server.
But I personally find behavior tracking a bit less disturbing than location / ip tracking, because this is still anonymous.
Btw. Thanks for taking the time to judge my entry.
YES! Brilliant! | |||
Woh Thanks for the 4x5 star review, I’m glad you liked it
Excellent entry with some really cool tech and great real world application. Very impressive.