18 ms·
Show HN: A web debugger an ex-Cloudflare team has been working on for 4 years
Hey HN, I wanted to show you a product a small team and I have been working on for 4 years. https://jam.dev https://jam.dev
It’s called Jam and it prevents product managers (like I used to be) from being able to create vague and un-reproducible bug tickets (like I used to create).
It’s actually really hard as a non-engineer to file useful bug tickets for engineers. Like, sometimes I thought I included a screenshot, but the important information the engineer needed was what was actually right outside the boundary of the screenshot I took. Or I'd write that something "didn't work" but the engineer wasn't sure if I meant that it returned an error or if it was unresponsive. So the engineer would be frustrated, I would be frustrated, and fixing stuff would slow to a halt while we went back and forth to clarify how to repro the issue over async Jira comments.
It’s actually pretty crazy that while so much has changed in how we develop software (heck, we have types in javascript now*), the way we capture and report bugs is just as manual and lossy as it was in the 1990’s. We can run assembly in the browser but there’s still no tooling to help a non-engineer show a bug to an engineer productively.
So that’s what Jam is. Dev tools + video in a link. It’s like a shareable HAR file synced to a video recording of the session. And besides video, you can use it to share an instant replay of a bug that just happened — basically a 30 second playback of the DOM as a video.
We’ve spent a lot of time adding in a ton of niceties, like Jam writes automatic repro steps for you, and Jam’s dev tools use the same keyboard shortcuts you’re used to in Chrome dev tools, and our team’s personal favorite: Jam parses GraphQL responses and pulls out mutation names and errors (which is important because GraphQL uses one endpoint for all requests and always returns a 200, meaning you usually have to sift through every GraphQL request when debugging to find the one you’re looking for)
We’re now 2 years in to the product being live and people have used Jam to fix more than 2 million bugs - which makes me so happy - but there’s still a ton to do. I wanted to open up for discussion here and get your feedback and opinions how can we make it even more valuable for you debugging?
The worst part of the engineering job is debugging and not even being able to repro the issue, it’s not even really engineering, it’s just a communication gap, one that we should be able to solve with tools. So yeah excited to get your feedback and hear your thoughts how we can make debugging just a little less frustrating.
(Jam is free to use forever — there is a paid tier for features real companies would need, but we’re keeping a large free plan forever. We learned to build products at Cloudflare and free tier is in our ethos, both my co-founder and I and about half the team is ex-Cloudflare) and what we loved there is how much great feedback we’d get because the product was mostly free to use. We definitely want to keep that going at Jam.)
By the way, we’re hiring engineers and if this is a problem that excites you, we’d love to chat: jam.dev/careers
- SleepyMe 2y agoLooks like 'large free plan' includes 25 jams. I was able to make only 10 or so jams (I could have deleted some jams but no more than 2 or 3) and now I have to 'Upgrade'.
- SleepyMe 2y agoDisregard the last part about 'I was able to make only 10 or so jams'. I still can create jams, but I haven't hit 25 jams limit yet.
- thedg 2y ago*engineers I work with are telling me that some of you are going to argue that types don’t exist in real javascript and that web assembly isn’t assembly
- nolok 2y agoWell it's bytecode, so if you consider java or dot net bytecode assembly then it's assembly, if not then not. If we want to be pedantic, assembly is usually defined as being close to the architecture machine code, which web assembly is not. Yeah, I fell into that trap, but it's a holiday here.
- thedg 2y agoHaha I knew this would happen!
- Rapzid 2y agoI'm on holiday so I'll have a go and join the pedantic train. It's not as you say close to the hardware so it's intermediate code. And nobody argues .Net IL is assembly.
- neonsunset 2y agoA lot of people get confused by assembly in WASM unfortunately, which leads them to claim that it is performant and if it's not, then fixing it is a trivial exercise of just making a fast WASM JIT compiler. Where did I hear this before? They really should have gone for JSVM IR or something, but that would sell it to no one.