|
By Todd H. Gardner
We’ve been quietly solving a problem that most teams haven’t hit yet, but they’re about to. SSL certificate lifetimes are dropping to 47 days. If you’re managing certificates manually today, you have a very short window before that becomes a real operational problem. We know, because it happened to us first.
|
By Todd H. Gardner
I was looking at a customer’s error report last week. A TypeError buried three callbacks deep in a checkout flow that made no sense. The code around it was clean, well-structured, and completely wrong about how the Stripe API actually works. Turns out it was vibe-coded. Someone prompted their way through the integration, it passed code review because it looked reasonable, and it worked fine right up until a customer’s card got declined for the first time. That’s the new normal.
|
By Todd H. Gardner
AI didn’t replace developers. It replaced the part where you were forced to understand what you just shipped. Now you can prompt your way to a feature, skim the diff, and merge something that “seems reasonable.” And then production does what production always does: finds the one weird browser + one slow network + one user flow that turns your “reasonable” code into a bonfire. So who watches the vibe coder?
|
By Todd H. Gardner
I recorded a video showing how to properly set up TrackJS for a new production website, specifically CertKit, our new certificate lifecycle management tool. The key to effective error monitoring isn’t just installing the tracking snippet, it’s configuring the system to surface real issues while filtering out the noise. I configure a forwarding domain (errors.certkit.io) to bypass ad blockers that might prevent error reporting.
|
By Todd H. Gardner
There’s a lot of JavaScript developers these days not actually writing code. They whisper sweet prompts to our AI tools and hope for the best. Is it really any worse than copy-pasting from StackOverflow? Welcome to the era of vibe coding, where understanding your code is optional and “it works on my machine” has evolved into “the AI said it would work.”
|
By Todd H. Gardner
Your Angular app just crashed in production with ‘ERROR Error: Uncaught (in promise): ’. Sound familiar? After debugging countless production fires, I’ve learned that proper error handling isn’t optional—it’s the difference between sleeping through the night and getting paged at 3 AM.
|
By Todd H. Gardner
Remember when JavaScript was just for making snowflakes fall on your GeoCities page? Those were simpler times. Now we’re building entire applications in the browser, and surprise! JavaScript wasn’t exactly designed with memory management in mind. While other languages have garbage collectors that actually, you know, collect garbage, JavaScript’s garbage collector is more like that roommate who promises to clean but just shoves everything under the bed. The real kicker?
|
By Todd H. Gardner
Redux remains a cornerstone of React state management, but developers continue to encounter persistent bugs and new challenges. State mutation errors remain the most common Redux bug, affecting over 70% of Redux applications, while new issues emerge with Redux Toolkit 2.0, TypeScript integration, and React 18/19 compatibility. This comprehensive guide explores the most prevalent Redux debugging challenges and provides practical solutions for modern development.
|
By Todd H. Gardner
After 12 years of faithful service, the TrackJS interface was starting to show its age. Not that it wasn’t working—it was still doing exactly what our customers needed it to do. But when you’re staring at Bootstrap styles from 2012 and a version of LESS that might be officially defunct, it’s probably time for a refresh.
|
By Jordan Griffin
Caching is one of the big draws for people using the Next.js framework. Its on-by-default, “just works” nature sets you up for high performance applications right out of the gate. However, improving web performance comes at the cost of a complex caching system. This complexity is a source silent errors in the form of stale and incorrect data. Next.js does its best to choose the right caching behavior for each page.
|
By TrackJS
He configures forwarding domains to improve data from ad blockers, and configure ignore rules to remove noisy extension and analytics errors..
|
By TrackJS
So you're at the bar and someone asks, "What does your software do anyway?". How do you respond? How do you condense your technical feats into a response concise enough for the alcohol-fueled mind and amazing enough to remember tomorrow? Todd Gardner shares the demo that launched TrackJS around the world.
|
By TrackJS
Discover how to debug JavaScript applications remotely without complex configurations or cables! This comprehensive explainer shows you how RemoteJS revolutionizes web development debugging by connecting you directly to remote browser sessions.
|
By TrackJS
Eric from @Trackjs talks through the design process of the TrackJS 2025 reskin project.
|
By TrackJS
Jordan from @Trackjs celebrates finally getting rid of bootstrap styles in the TrackJS redesign.
|
By TrackJS
Eric from @Trackjs talks about the most-requested feature from the redesign project: Dark Mode.
|
By TrackJS
Jordan discusses lowering the barrier to getting user feedback during the redesign of @Trackjs.
|
By TrackJS
Eric talks about the redesign of @Trackjs and what we gained from cleaning up old stuff.
|
By TrackJS
Todd from TrackJS shows a quick tour of how TrackJS can help you find and fix JavaScript bugs on your website.
|
By TrackJS
How to use RemoteJS to debug JavaScript on remote browser clients
- April 2026 (1)
- February 2026 (2)
- November 2025 (2)
- September 2025 (1)
- August 2025 (1)
- July 2025 (5)
- June 2025 (2)
- May 2025 (3)
- November 2024 (1)
- June 2024 (1)
- May 2024 (1)
- January 2024 (1)
- December 2023 (2)
- November 2023 (1)
- October 2023 (2)
- August 2023 (1)
- June 2022 (1)
- March 2021 (2)
- October 2020 (1)
- September 2020 (1)
- June 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (2)
- December 2019 (2)
- November 2019 (3)
- October 2019 (1)
- July 2019 (1)
JavaScript Error Logging from TrackJS monitors your web applications for JavaScript errors, alerting you with amazing context about how the user, application, and network got into trouble. Find and fix your bugs fast with TrackJS.
Tracking down the root cause of JavaScript errors is expensive and time-consuming. You have to deal with remote users, bad descriptions, and browser screenshots. With TrackJS, you see when problems happen right away with all the context to fix them fast.
Error Monitoring Made Easy:
- Telemetry Timeline: Get unmatched client-side context with the Telemetry Timeline. Recreate problems fast with the user, network, and application events that led to an error. It's like having an airplane's black box for your webapp.
- Enhanced Stack Traces: Get better error context from the TrackJS's integrated function wrapping, automatic sourcemaps, and inline prettified source code. You'll spot the bugs before opening your editor!
- Easy To Install: Just drop the code snippet into your markup and you'll get great visibility into production errors. If only fixing them was this easy.
Don't leave your users stranded when JavaScript throws an error. TrackJS gives you superpowers to track the problems, and the context to fix bugs quick.