httptoolkit / httptoolkit-desktop

Electron wrapper to build and distribute HTTP Toolkit for the desktop
https://httptoolkit.com
GNU Affero General Public License v3.0
593 stars 81 forks source link

[Feature suggestion] Implement Built-in Update Check Feature for Enhanced User Experience #56

Closed mriamnobody closed 1 year ago

mriamnobody commented 1 year ago

I hope you're doing well. I've been using this fantastic tool for a while now, and I wanted to share some feedback. Currently, there is no built-in way to check for updates within the tool itself. As a user, I find myself having to visit the HTTP Toolkit website, download the Windows version, and then compare the version in the downloaded file's name with the installed version to determine if there's an update available. This process is a bit cumbersome and may lead to some users not staying up-to-date with the latest improvements. This happened to me when I started using the tool. I assumed that the tool would update on its own, but later I realized that I was running a 5-6-month-old version.

By incorporating this feature, users can easily ensure they have the latest version of the tool without the need to manually check the website. This will not only improve the user experience but also help users stay up-to-date with any bug fixes, enhancements, or new features you release.

Once again, thank you for your hard work on this tool, and I hope you'll consider this suggestion.

Edit: I use Http Toolkit on a Windows machine.

pimterry commented 1 year ago

Hi @mriamnobody, thanks for the feedback. In general though, HTTP Toolkit does update itself, almost immediately, so there's no need for this!

To provide some context, HTTP Toolkit is deployed as a few different components:

In all cases, updates happen asynchronously in the background, so you'll see the new version the following time that the app is run, not immediately. Also in addition to checking for server/UI updates at startup, HTTP Toolkit does check for new updates every 5 minutes while it's running.

Lastly, there's a few other internal components that are pulled & updated totaly independently, and only for users who use them, for example the Docker tunnelling container and the Android app.

In general, unless there's something specific you're looking for in the latest version of the desktop wrapper (quite unlikely!) you shouldn't ever need to download a new version of the app. If you run the app while connected to the internet, wait a couple of minutes, and then restart it, you'll always be running the latest version of everything.

If you do want to check the current UI/server/desktop versions, you can do so by hovering over the 'HTTP' logo in the top left in the app - but you shouldn't ever need to, because no matter what you do you're basically always be running the latest version automatically.

Does that make sense?

mriamnobody commented 1 year ago

Hi @mriamnobody, thanks for the feedback. In general though, HTTP Toolkit does update itself, almost immediately, so there's no need for this!

To provide some context, HTTP Toolkit is deployed as a few different components:

  • A React-based UI, where updates are tiny (a few 100 KBs) often released many times a day (!) and pulled within 10 seconds of HTTP Toolkit starting up. Almost all functionality you use in HTTP Toolkit is managed here (everything except low-level networking details & how intercepted applications are launched)
  • A node.js-based Server, where updates are launched less frequently (approximately once a month) and are larger (about 100MB), so typically update within a minute or two of HTTP Toolkit startup. This is where low-level networking & app launching lives.
  • A desktop wrapper, which is released at the same speed as the server, but doesn't auto-update. This does very little though - almost every release here is just updating the default server version that's bundled in the installer, with no other changes. Occasionally this might have minor tweaks of the app menu etc or how error handling is managed, but there's almost no significant features here - it's just an installer & wrapper to make the UI+server behave like a desktop app.

In all cases, updates happen asynchronously in the background, so you'll see the new version the following time that the app is run, not immediately. Also in addition to checking for server/UI updates at startup, HTTP Toolkit does check for new updates every 5 minutes while it's running.

Lastly, there's a few other internal components that are pulled & updated totaly independently, and only for users who use them, for example the Docker tunnelling container and the Android app.

In general, unless there's something specific you're looking for in the latest version of the desktop wrapper (quite unlikely!) you shouldn't ever need to download a new version of the app. If you run the app while connected to the internet, wait a couple of minutes, and then restart it, you'll always be running the latest version of everything.

If you do want to check the current UI/server/desktop versions, you can do so by hovering over the 'HTTP' logo in the top left in the app - but you shouldn't ever need to, because no matter what you do you're basically always be running the latest version automatically.

Does that make sense?

Thank you, @pimterry, for your comprehensive and accurate explanation, which is truly invaluable. I appreciate the effort you put into simplifying the entire process for better understanding. It seems that the issue I encountered stemmed from the Desktop Wrapper. Upon comparing the installed version with the downloaded one, I noticed a discrepancy in their versions. Your explanation has shed light on the potential cause of this problem. Once again, thank you, @pimterry.

pimterry commented 1 year ago

Ok, great! I'll close this then, glad to hear that makes sense to you.