Show HN: Spotbot, a Slack bot that monitors your website for visual bugs
spotbot.qa
spotbot.qa
People cannot try free, your servers are responding with 503s. I tried to email you from your contact link on website (hi@spotbot.qa) and was undeliverable.
We are experiencing a lot of load (or we were until we went down). We scaled up and things seem to be working better now.
Is it possible to integrate with a CI system for on-demand runs, perhaps by supplying a list of changed pages as a hint on where to expect changes and where not? The idea being that to lower your costs, a subset of pages could be run on-demand?
We're still hammering out the pricing plans. If you email me at justin@spotbot.qa we can set you up with something that makes sense.
I'll email for sure, I'm interested to see how this will work. Thanks! :)
What's your preferred notification system?
Anyway, email would probably be fine for me.
Next stop is probably email. Any other integration you'd like to see?
Also, being able to link a bug conclusively to a changeset, build or a deployment ID would be very valuable. Rather than building lots of deep CI integrations, you could do this by allow users to configure your monitor to look for version numbers in server hints (headers, hidden fields, status pages, etc).
I feel like a shitty tirekicker for complaining, but I really would rather just get email alerts and then optionally integrate with Slack directly or via webhook/Zapier. The service feels a bit inaccessible.
We would also prefer not to ask for that permission. In fact, the only reason we do it is be able to call Slack's `users.info` API on your user. Which... we're only doing in order to be able to show a profile picture and your real name. Those things are nice, but not must haves.
I'll make a note to get rid of that permission!
I'm wondering if it's related to Slack providing seed money for startups [1].
[1] http://fortune.com/2015/12/15/slack-app-investment-fund/
We started with Slack cause it's really easy to get started with and a lot of people, including ourselves, use Slack as the central repository of what's going on in the organization.
We realize that it's not for everybody though, more options will be coming soon.
@mgc and I founded Spotbot with the thought that models trained with ML techniques can be immensely useful to developers (novel, I know). So much of coding, debugging, and firefighting is pattern matching, and machines are getting really good at pattern matching. That's how we're going to tackle the user login and dynamic data issues in the long term.
We have some short term solutions in the works as well.
For dynamic content, we'll have a way to ignore changes that are expected and don't mean anything significant changed.
For login, we may implement a token API that will allow us to log in with a bit of work on the developer's side. We can also script logins without too much effort if we are provided with test account credentials.
Thanks for giving me an opening to talk about all this :)
Now, humans are very good at catching bugs there; if a the name of the user goes above the avatar picture next to it, humans will see it immediately.
But how can a tool like Spotbot not to be confused by all the normal changes in user-generated content, and to just spot structural differences?
We do a hash of the structure, so we know exactly what kind of changes there are. For something like your page, the image sources, the text, the names, the votes, and other content change all the time. Soon we'll have a way to ignore those changes while still recognizing that other changes need to be vetted.
So, for instance, if the padding between the avatar and the user's status changes, we'll still catch that even though we're ignoring the avatar source and the text content.
Soon!
What kind of "changes need attention" will Spotbot tell me about?
We're in the process of building moderation tools so that you can refine what's important to you, and we're really excited about building training a model to be able to highlight changes that are probably broken. We're starting at square one though :)
Not a single one of the boxes seem to update anymore. They all just say 4 screenshots ahead of yours. It seems, I spoke a bit too soon. Something is happening now. I guess my cynicism got the better of me when they all hit 4 and just... Stopped :)
I like that the tool itself is open source.
We found that pixel diffs were pretty unwieldy for a lot of different scenarios. How do you deal with, say, a div inserted at the top that pushes all the content on the page down 50px?
We don't require any code. Setup is just entering a URL. Percy doesn't really require code either, but it relies on you having already written integration tests.
We do structural diffing, not pixel diffing. Pixel diffing can be challenging to view as a developer since innocuous changes can cause massive visual pixel diffs. With structural diffing we can have a better idea of exactly what changed and highlight those regions.
We're definitely going to be integrating with CI workflows and non-production sites as well :)
if they let me I'll release it OSS, but it was super easy to write, and it pulls diffs from the github project when sees a change.
I was actually working on a reverse of that, so if it sees a repo get pushed to it will let you know if the site changed or if it didn't.
hubot is so cool, but coffee script is just gross. meh.
other than that, it's been incredibly useful.
Other than that, awesome :)
We do try to deal with CSS transitions but I don't think we have every situation covered yet. What page were you trying it on?
What would you prefer:
- A javascript object being injected into your page that you could call to indicate the page was done
- A setting within the UI that would allow you to configure a wait time
Yeah, this isn't great for websockets/long polling or other persistent methods, but it's fine for simple ajax-y calls.
Spotbot monitors your site over time, so it'll alert you when things change. With Browserstack, you have to manually run your site in all the devices you care about each and every time you want to check something. Or you can write a Selenium test, but that's a lot more painful than just entering a URL and letting us take care of it for you!
If you're willing to do a little work on your side, you can craft a URL that will guarantee that the user ends up in a particular bucket.
One of the features that we're thinking about is doing visual diffing on A/B test variations. Then you can page through your variations and quickly see how they're different from the control, or if they're broken on any browsers.
To do that we would need a deeper integration, either with the user or with the A/B service. I think it'd be pretty cool though!