top | item 3319099

Show HN: Errorception - High performance JavaScript error tracking

76 points| rakeshpai | 14 years ago | reply

Just launched Errorception http://errorception.com/ yesterday. Errorception is a error tracking service which catches and reports in end-users' browsers as they happen.

I built Errorception since I couldn't didn't find any error reporting system that (a) didn't rewrite my JS, (b) didn't modify the browser runtime by overriding common functions, and (c) had a zero performance cost, especially with regards to blocking script tags.

Would love your thoughts. Site: http://errorception.com/

54 comments

order
[+] bdg|14 years ago|reply
Your product is for people who write code, but your sales pitch is some vaporous hand-wavy thing. I'm writing my own guide on quality JavaScript, and I have absolutely no idea of what your product does beyond "Group errors and email people, also, unobtrusive!"

I imagine (based only on your comments here) this is a JavaScript file that basically sends ajax data with `window.onerror` events from the browser.

You need a user story for customers. "Bob's website, twitter.com, sucks because it throws thousands of errors only to suppress them by hacking in window.onerror = function(){} so nobody gets to see them in the console and make fun of them, why not do better and get reports of what your errors actually look like!" Your user story needs to explain value (which I myself as a potential customer of yours do not see, I will explain in a moment).

Also, pricing on the volume of errors doesn't feel right. Especially if I'm using this for development. Some websites will pass even your $60 limit in a few days, never-mind errors that happen in loops. Why not just set one price? 20-25$/month or $200/year feels right to me.

You also need to compete on something that shows value. Who are you targeting? What errors do your customers care about? Why might I not want to use your tool? Why does twitter suppress errors rather than fix them? Why might twitter buy your service?

As for why you don't have my business, I see no advantage or benefit to your product. I've implemented similar features in the past only to move onto other things. Sending an web request (ajax or any other request type) with window.onerror is trivial. I even optimized it to not lag out pages when we have errors in loops through some other techniques. You haven't convinced me why a competent JS developer needs this, when the implementation for very basic functionality is trivial. Give me a reason to buy this; a spreadsheet of hand-wavy features doesn't answer the problems that keep me up at night.

tldr: Marketers, marketers, marketers.

[+] sdepablos|14 years ago|reply
I suppose the main advantage would be information aggregation with each error next to the number of occurrences (I don't want to see a hundred times the same error), the same business model as airbrake or getexceptional. I mean, almost any developer could implement an exception logger, but I don't really want to spend that time on a non-core feature for my business.
[+] rakeshpai|14 years ago|reply
Thanks for taking the time for the comment, bdg.

About the pitch/technology/complications: You are right - everyone here too has echoed that I should clarify how the tech works, why it isn't really trivial, and generally improve the marketing pitch too. I hear you. Expect a change coming up soon. Thanks for the feedback - it's invaluable.

[+] dclaysmith|14 years ago|reply
I can see some problems with your "per-exception" pricing model.

If your product works and adds value, it will result in the reduction of exceptions. A reduction in the number of exceptions will result in web sites requiring a smaller plan. Smaller plans will result in lower revenue. The more useful your app is, the less money you will make (a bit of a generalization but you get the point).

Could you not migrate to page loads? Fire off an event on every page, regardless of whether or not there was an exception?

[+] rakeshpai|14 years ago|reply
Thanks for the feedback, Clay.

I considered that model for a really long time. But there were two problems with it. (a) Actually just handling large amounts of hits wasn't really a huge cost for me, and (b) I don't think the usefulness will reduce for people who actively deploy regularly.

If people don't deploy regularly, they'll likely be happy with the free plan anyway. :)

[+] iambot|14 years ago|reply
If you're product it targeting developers, as I'm sure a "High performance JavaScript error tracking" service would be. I would hope that the "Features" page would be a bit more descriptive of how it works.

While I understand that you don't want to over complicate the features section, the reality is that the people you're targeting should have more than a basic understanding of whats happening, and you should talk to them as such. - Unless you're targeting managers and hoping they will force this on their developers.

Edit: I notice you have _some_ technical info in the FAQ, but my personal opinion is that if you're targeting devs you need MOAR.

tl;dr: Give us more info.

[+] rakeshpai|14 years ago|reply
Thanks. Point taken. Do you have any specific questions in mind?
[+] tudorw|14 years ago|reply
Thanks, going to give it a try. One tiny typo (I think!), first line under Sign Up For Free Trial

'No oblations.'

plural of ob·la·tion (Noun) Noun: A thing presented or offered to God or a god. The presentation of bread and wine to God in the Eucharist.

[+] rakeshpai|14 years ago|reply
I asked the mighty Google, and couldn't find anything like that. You could be right, of course. Do you have a link? I've even seen several others use the term verbatim.
[+] dolinsky|14 years ago|reply
I came across http://www.muscula.com/ over the weekend, and they seem to be farther along with this kind of a product in terms of features (not to discourage you, just to give you a heads up as to what else is out there). Specifically, they've implemented a stack trace and also provide the browser/OS data in addition to the file/line/error.

They also provide a quick overview of their architecture if anyone is curious @ http://www.muscula.com/architecture

[+] rakeshpai|14 years ago|reply
I've heard about Muscula (and I'm reasonably sure they've heard about Errorception - it's a smallish world :) ), and I'm curious to know more about how they do what they do.

That said, the architecture isn't too different. Errorception is also built on Node and MongoDB. I am not a fan of JSONP (GET) for writing data (POST/PUT), mostly because I'm a stickler for HTTP semantics. Otherwise, without too much insight into what Muscula is doing, it certainly looks like we are very similar.

Browser/OS information is rather easy to get - it's all in the UA string. Errorception captures that already. :)

[+] endian|14 years ago|reply
How, precisely, does your service interact with my code? What does an error report look like? This should be on the front page.

Also, "How can I pay for errorception? I'm working hard on getting a simple enough payment mechanism in place, that plays well with the laws of my land. As you can imagine, I need to start making money soon enough, and this is my top priority right now." doesn't inspire confidence in your product's reliability or half-life.

[+] rakeshpai|14 years ago|reply
Thanks for pointing this out. I've fixed the FAQ to be more recent - what you saw was from an older time. Thanks again.
[+] karterk|14 years ago|reply
Sorry if this comes across snarky, but please avoid using "Painless X". People are over exposed to it, and it doesn't really convey any meaning.
[+] rakeshpai|14 years ago|reply
Haha. Thanks for this feedback. I really have to work on my (non-existing?) marketing skill.
[+] gregdetre|14 years ago|reply
We've tried 2 or 3 existing Javascript error tracking systems in the past. None of them helped much.

Performance is not the feature I care about.

On the other hand, I would be delighted to pay to get more actionable information about our errors. It's so so hard to determine exactly where in the code, and under what circumstances, errors in the browser happen.

[+] rakeshpai|14 years ago|reply
Hey Greg,

The challenge you have mentioned is real, and is hard to crack. I certainly haven't solved the problem to my satisfaction yet. However, I'm rather far along the way. A lot of errors are classified as being irrelevant (I call it "muted", but that's a terminology thing), and the ones that are in your face are based on relevance and frequency. This is a very rudimentary way of deciding importance, but it's something. At least it's not a raw list of logs.

Improving the quality of "actionable information" as you put it will be the biggest (and most interesting and fun) challenge at Errorception. It'll get better over time.

[+] colinramsay|14 years ago|reply
What's the support like for mobile browsers? Debugging mobile webkit is a pain. It'd be nice to see some screenshots on the site too.
[+] rakeshpai|14 years ago|reply
Thanks, Colin.

Currently, mobile browsers aren't supported because mobile webkit doesn't support window.onerror. Errorception doesn't distinguish between browsers, so whenever mobile browsers add support, I'll be ready.

[+] nashjain|14 years ago|reply
I've used Errorception for one of my products and was very happy with the service provided by the author. Thanks.
[+] narad|14 years ago|reply
Seems to be interesting. Do you have a demo video? Will this work in all the browsers? Any browser restrictions?
[+] rakeshpai|14 years ago|reply
Narad, no demo video yet, but I'll see what I can do. It works in most popular desktop browsers - any browser that supports window.onerror is supported.
[+] angry-hacker|14 years ago|reply
You need to provide more information how the service works, what kind of data and how you can get etc.
[+] acharekar|14 years ago|reply
Congrats, I have worked with errorception, found it really useful.

Thanks.

[+] avlesh-singh|14 years ago|reply
Cool idea! Does it give me a stacktrace of exceptions too?
[+] rakeshpai|14 years ago|reply
Nope, no stack trace at the moment. This is because the stack has unrolled by the time window.onerror is hit. However, there might be workarounds - fake stack traces we can build by walking the callstack in some browsers. I'm currently working on just this. :)
[+] sourav_sachin|14 years ago|reply
This sounds like a really cool idea! Will give it a whirl
[+] htilford|14 years ago|reply
Found an IE 7 bug in less than a minute <3
[+] pooja_chauhan|14 years ago|reply
Wow Really cool idea...let me give it a try....any discount coupons?