Beta Testing August 11, 2020

Looking for some beta testers for my new client side cache busting tool - JellySync

Avi Prince @Dukko18

Hi Beta Testers,

I originally posted this in the developers group, but since I am looking for beta testers, I figured I should post here as well. Feel free to read the conversation here

I've been doing full stack web development for the past 8 years or so and one issue I kept running into over and over again is client side caching. Modern browsers have some amazing built-in tools for caching websites, but more often than not, we are forced to apply cache-busting techniques to ensure that our users will always get the latest code changes when we deploy and we miss out on all of the benefits of browser caching as a result.

I just finished building an MVP called JellySync that will let developers get the best of both worlds. You simply login to our dashboard, create a project, and add the script tag to the header of your html. With the package installed, your active sites will keep an open connection to our server and with the click of a button in our dashboard you will be able to update all of your users (both live and future) to the latest version at anytime. You can also configure what your site does when it receives an update such as clearing local storage, session storage, cookies, cache, or forcing a mandatory refresh. What this means is that you can leave on client side caching and still be confident that your users will always be updated when you want them to be.

Right now we are looking for beta testers to make sure it works in the real world and get real feedback on whether or not it is something people find useful. If you are interested in giving it a shot, head on over to JellySync and submit your email. We'll create an account for you and make sure you get setup without any issues. There are no newsletters or anything like that I promise.

I wanted to share 2 recent experiences I had that really pushed me to make this tool. The first is what you would expect. Our team was implementing a web app and we were applying cache busting to make sure users always got the latest code when they came to the site. But, for some reason, the index.html file was being cached by the browser and would cause the app to crash as soon as it was loaded until the user did a refresh. We ended up fixing the problem, but we wasted a bunch of dev hours and we received many complaints about "white screens" for a few days which wasn't great for encouraging users.

The second experience was a bit more scary. We had just deployed a brand new feature to our app. Unfortunately, we didn't realize that it caused a memory leak and was downloading videos in a loop. This was eating up our bandwidth incredibly quickly and was going to cost us real money if we didn't fix the problem immediately. The problem though was that we had no way to force all of our users to update to the latest version gracefully. Just because we updated the client doesn't mean that there weren't users on the previous broken version. The only thing we could do was to take down the site temporarily so that everyone would get the fix when we started it back up.

Both of the above stories would never have been a problem with JellySync. All I would have had to do was click a button and my users would have been gracefully forced into the latest version.

So, this post turned out to be much longer than I initially anticipated. If you made it to the end, thanks so much for reading! I hope that I have piqued your interest a bit and you will come and give JellySync a try. I look forward to all of your questions and feedback!

  1. 1

    Hey, all of your links are broken :-P I think you need to put https:// before each URL.

    I think it's a pretty cool idea, but I'd be hesitant to use it. I just don't like adding a lot of random SaaS stuff to my sites and apps.

    Here's some misc stuff in my head that might give you some ideas on where it could go:

    I built this functionality into one of my apps, and I definitely get the pain. The app already had websockets, so I added a little json file into the app where I could change the last_updated, as well as add a message like "New in this version: blah blah blah <link>" and it had a button to refresh or dismiss. This was important for breaking API changes, but it was also important not to automatically reload in case they had unsaved changes.

    Most of my in-development apps don't need this, but I do still hack in code to append a ?ts=<page-load-time> to the js files when the apps start so I don't need a JS build step and I'm guaranteed to get the updates on reload. For other apps with a build step, the uniquely generated files seemed to be enough, and pushing changes wasn't often a req.

    If I wanted this functionality in a new app, I would probably just do something simple, like:
    <script src="reloader.js" data-url="/has-updates.json" data-recheck="300"></script> and use a simple, standardized JSON format to check for updates, find out if it's critical (and needs to auto-reload), and maybe show a popup to the user. I love websockets, but sometimes they just seem like overkill.

    I can see this being more valuable with other integrations. Maybe a callback option so they can add notifications within a SPA, and release notes that say what awesome features are coming out.

    Good luck with the app! If it doesn't work as a SaaS, it might work well as an open source tool (https://calebporzio.com/i-just-hit-dollar-100000yr-on-github-sponsors-heres-how-i-did-it was a great read).

    1. 1

      Hey thanks for the great response!

      Hey, all of your links are broken :-P I think you need to put https:// before each URL.

      Woops! Thanks for pointing that out, it is now fixed.

      I built this functionality into one of my apps, and I definitely get the pain. The app already had websockets, so I added a little json file into the app

      The fact that you had to build all of this out makes me believe this can be very useful to other people. You are clearly more experienced in this area and have no problem putting something together, but I'm betting not everyone will want to spend the time on it especially when they have less experience in this area.

      but it was also important not to automatically reload in case they had unsaved changes.

      I completely agree. We have it so that users can setup what they want to happen on version changes and whether they display a modal to refresh at all is completely customizable.

      I can see this being more valuable with other integrations. Maybe a callback option so they can add notifications within a SPA, and release notes that say what awesome features are coming out.

      Really great suggestion. We are also planning on doing much more options such as optional updates or delayed timers and such, but again this is just an MVP. We will definitely keep this one in mind too!

      Good luck with the app!

      Thanks so much! Again, I really appreciate the feedback!

      You may not be interested in using this on one of your production sites, but would you be interested in helping us test the product in general? Your familiarity in this area would be incredibly valuable for helping us make sure it just works. Thanks again!

      1. 1

        Sorry for the delayed response.

        Yeah, I definitely see the value. Maybe I'm just too cheap to consider tools like this :-P

        I like giving random thoughts and ideas for features, but definitely think you should focus on your MVP and not place much value on those random thoughts haha

        I'd be happy to try it out a bit. I'm not sure which app I'm playing with right now that would be a good fit. I'm building a little financial independence app with my brother right now. It doesn't have a backend, but I think it'd be useful-ish to add your app to it.

        1. 1

          Yeah, I definitely see the value. Maybe I'm just too cheap to consider tools like this :-P

          We don't even have a real pricing plan yet, so don't worry about money. We are much more interested in having it work in the real world and understanding what users want.

          I'm building a little financial independence app with my brother right now. It doesn't have a backend, but I think it'd be useful-ish to add your app to it.

          That would be amazing! Whenever you are ready use the signup button on our site. I'll give you the permissions you need to get started.

          Looking forward!

Recommended Posts