Inspiration

Have you ever been working on a project and had your desktop tabs juuust right? Have you ever been playing a video game and had the perfect wiki tabs open. Have you ever then had to shutdown your computer for the night and lose all those sweet, sweet windows? Tabinator is the program for you!

What it does

Tabinator allows you to save and load your desktop "layouts"! Just open our desktop app, save your current programs as a layout, and voila! You're programs - including size, position, and program information like Chrome tabs - are saved to the cloud. Now, when you're ready to dive back into your project, simply apply your saved config, and everything will fit back into it's right place.

How we built it

Tabinator consists of a few primary components:

  • Powershell and Swift Scripts: In order to record the locations and states of all the windows on your desktop, we need to interface with the operating system. By using Powershell and Swift, we're able to convert your programs and their information into standardized, comprehensible data for Tabinator. This allows us to load your layouts, regardless of operating system.
  • React + Rust Desktop App: Our desktop app is build with React, and is powered with Tauri - written in Rust - under the hood. This allows us the customization of React with the power of Rust.
  • React Front-end + Convex Backend: Our website - responsible for our Authentication - is written in React, and interfaces with our Convex backend.

Our flow is as follows: A user visits our website, signs up with Github, and is prompted to download Tabinator for their OS. Upon downloading, our Desktop app grabs your JWT token from our web-app in order to authenticate with the API. Now, when the user goes to back up their layout, they trigger the relevant script for their operating system. That script grabs the window information, converts it into standardized JSON, passes it back to our React desktop app, which sends it to our Convex database.

Challenges we ran into

Not only was this our first time writing Powershell, Swift, and Rust, but it was also our first time gluing all these pieces together! Although this was an unfamiliar tech stack for us all, the experience of diving head-first into it made for an incredible weekend

Accomplishments that we're proud of

Being able to see our application work - really work - was an incredible feeling. Unlike other project we have all worked on previously, this project has such a tactile aspect, and is so cool to watch work.

Apart from the technical accomplishments, this is all our first times working with total strangers at a hackathon! Although a tad scary walking into an event with close to no idea who we were working with, we're all pretty happy to say we're leaving this weekend as friends.

What's next for Tabinator

Tabinator currently only supports a few programs, and is only functional on Linux distributions running X11. Our next few steps would be to diversify the apps you're able to add to Tabinator, flesh out our Linux support, and introduce a pricing plan in order to begin making a profit.

Built With

Share this project:

Updates