My biggest failure to date
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Related videos
This is bad...
Theo - t3․gg
104.3k views
I’m done.
Theo - t3․gg
185.8k views
You don't want to be a manager.
Theo - t3․gg
88.2k views
The Future of TypeScript
Theo - t3․gg
152.4k views
The Best Model For Frontend Design Is...
Theo - t3․gg
124.4k views
Kimi K2.5 might be my new favorite model...
Theo - t3․gg
95.3k views
Theo fell off
Theo - t3․gg
48.5k views
The Tailwind drama
Theo - t3․gg
210.9k views
r/Bestof My Father Wants to Date Me
rSlash
147.3k views
Finally.
Theo - t3․gg
143.5k views
Top Comments (10)
Theo will now create FailureThing to prevent such failures
Failure is a blessing in disguise. Look at all the issues it has brought to light, which are now going to get fixed, vastly improving all the related services.
I love these longest deep dive videos more than the shorter videos, almost no one does this except some tech talks and in events. Thanks for taking time and putting these out.
I love that you are so transparent. You are the best, keep on keeping on.
Convex provides cool functionality, but issues like these remind me why it’s often better to stick with known quantities and progressively enhance for things like realtime. Very few apps are mostly realtime.
Your next client JS code should listen to two parameters in the response header: app-version and force-reload. That's the way how I ensure that all clients use the most recent version. Without force-reload a non-removable banner appears and let's the user know that the app was updated and must be reloaded. When force-reload is set, then the client will be reloaded immediately, when there's no pending form or when there was no activity for more than 15 minutes. When using a service worker, it's a good idea to add a cache ID calculated from the app-version to the JS and CSS resource URLs. Another benefit of the service worker: When force-reload is triggered in one tab or the user clicks on the update banner, then you can reload all other open tabs. I implemented this mechanism a couple of years ago, when I had my first issues caused by outdated client JS code.
It's fascinating to see how this was built. I've been building something similar for work (an internal tool, so facing less scale and smaller workloads) and I took an entirely different route. We're both doing the right thing for what we need, so I'm not passive aggressively criticizing. It's just cool to see how different solutions can be when the end goals are so similar.
Thank you for showing us an actual case study of how things can go wrong in production. Thanks for making this video so can all learn. ❤❤
Thank you Theo, learning a lot, discovering unknowns unknowns. Will apply this on my work :)
This channel is so unique and amazing. Thanks!!!🎉
Unlock the Data Inside
Turn Videos into Knowledge
- Get FREE 10/day: transcripts, summaries, chats
- Chat with videos, export text & PDF
- $1 free API credit for RAG, chatbots & research
Free forever plan • All features unlocked
Top Comments (10)
Theo will now create FailureThing to prevent such failures
Failure is a blessing in disguise. Look at all the issues it has brought to light, which are now going to get fixed, vastly improving all the related services.
I love these longest deep dive videos more than the shorter videos, almost no one does this except some tech talks and in events. Thanks for taking time and putting these out.
I love that you are so transparent. You are the best, keep on keeping on.
Convex provides cool functionality, but issues like these remind me why it’s often better to stick with known quantities and progressively enhance for things like realtime. Very few apps are mostly realtime.
Your next client JS code should listen to two parameters in the response header: app-version and force-reload. That's the way how I ensure that all clients use the most recent version. Without force-reload a non-removable banner appears and let's the user know that the app was updated and must be reloaded. When force-reload is set, then the client will be reloaded immediately, when there's no pending form or when there was no activity for more than 15 minutes. When using a service worker, it's a good idea to add a cache ID calculated from the app-version to the JS and CSS resource URLs. Another benefit of the service worker: When force-reload is triggered in one tab or the user clicks on the update banner, then you can reload all other open tabs. I implemented this mechanism a couple of years ago, when I had my first issues caused by outdated client JS code.
It's fascinating to see how this was built. I've been building something similar for work (an internal tool, so facing less scale and smaller workloads) and I took an entirely different route. We're both doing the right thing for what we need, so I'm not passive aggressively criticizing. It's just cool to see how different solutions can be when the end goals are so similar.
Thank you for showing us an actual case study of how things can go wrong in production. Thanks for making this video so can all learn. ❤❤
Thank you Theo, learning a lot, discovering unknowns unknowns. Will apply this on my work :)
This channel is so unique and amazing. Thanks!!!🎉