Desktop Web Apps is a simple electron application that I built to hold a set of web tabs that a user may always want to have available. Find the source code and installer on Github here.

Motivation


There were a few inspirations for beginning this project. The first was that I had been using the terrible version of the pandora desktop app, which was extremely buggy, and did not respect dark mode.

I also had been using an application I found called google messages for desktop, which seemed to be a container for the web application, but somehow still through stale old build detected errors when you opened it (despite it working correctly). 

This made me realize that both of these problems can be solved by a dedicated desktop application with permanent tabs you want to always be available. Pandora, messages, and email are a few that matter the most to me. This also seemed like a good opportunity to learn electron and javascript, as well as to get familiar with the cursor IDE. 

Implementation

The application has an installer available on github, as well as the source code. It is quite simple how it works functionally. You have tabs at the top, a button to add tabs, and a refresh button. You can double click on a tab to rename the window whatever you would like. When you close and open the application, it will restore the tabs to whatever your last state was. My setup contains Pandora, Google Messages, and both of my common gmail inboxes.

 

Conclusions

The functionality is simple and straight to the point, which is the goal. No need to reinvent the wheel here. As far as the experience of implementing it went, Cursor is extremely powerful. There is a bit of a skill curve on learning what sorts of context and what sorts of questions it is best and handling, but the difference in ease of use between large code changes copied to ChatGPT vs natively implementing the changes in Cursor is enormous. 

I also recently developed the GGOverlay in C#, and something tells me that the experience would have been a whole lot easier if I had decided to use electron instead. Many of the pain points in C# were automatically resolved using node.js and electron.