DEV Community

Pankaj Kargirwar
Pankaj Kargirwar

Posted on • Edited on

Introducing prosql.io!

Hello!

Are you a developer? Do you use MySQL? Which client do you use? Probably one of MySQL Workbench, DBeaver, Navicat or Sequel Pro?

Right. If you are like me you must have wondered why all the clients are so clunky? Why are they so painful to use?

I have been working with MySQL for a few years now and was sick of using available clients. So I did what any self-respecting developer does: I built my own client! You want to check this out:https://prosql.io .

Watch it in action here:
https://www.youtube.com/watch?v=minL5DgRHmc

If you are thinking the name sounds similar to Sequel Pro, then you are absolutely right! Prosql (read: pro-sequel) is inspired by Sequel Pro which, sadly, runs only on Mac and does not support MySQL 8.0. I started with a goal to make a cross platform (and better) Sequel Pro. I think I have succeeded to a large extent. Here are the top features you may like:

  1. Clean, clutter free, intuitive interface.
  2. Runs on all major platforms: Windows, Linux, Mac and all others supported by Golang.
  3. Every query you run gets automatically synced to cloud. Access from anywhere!
  4. Queries can be easily searched and tagged.
  5. Easily rename databases.
  6. In the table viewer you can select only the columns you are interested in. Very handy when debugging.
  7. Fast export of data to CSV

… and many more

Coming to some nitty-gritty:

I considered various tech stacks, but concluded that as of 2021 (Flutter was still in beta then), browser is the best medium to deliver applications across platforms. But how to connect to a MySQL server from within the browser? Simple: have an agent (a tiny webserver really) installed on user’s computer and let the Javascript code talk to the agent using CORS. The agent acts as a conduit between the browser and the server.

I was concerned that users may not be willing to install the agent on their computers. I have tried to address that concern by making the agent open source. It is also very very easy to install on all the major platforms. Hell, if you want you can build the agent yourself! I hope installation does not become a bottleneck in Prosql’s adoption.

The agent and the installer are built in Go. If you want to create something cross platform then Golang should be on top of your list. It is trivial to compile Go code for any OS or architecture. If you have ever worked with C you know how painful it can be to port code to various OSes. Go makes it super simple. I love it!

The front end is built in vanilla JS and a bunch of open source libraries. Backend uses Golang and a bit of PHP.

I will be very happy to answer any questions you may have about the tech part.

Give it a try! Let me know your feedback in comments. Thanks!

Top comments (3)

Collapse
 
attkinsonjakob profile image
Jakob Attkinson • Edited

Thank you for your contribution.
Do you have a comparison between HeidiSQL and prosql ? Would love to see one.

Also, pretty please add screenshots to the website :)

Every query you run gets automatically synced to cloud.

How does this work, exactly?

Collapse
 
kargirwar profile image
Pankaj Kargirwar

I never used HeidiSQL before. But it seems to be windows only. So that's one major difference.

Will try to get in some screen shots. It would be awesome if you could spend some time using the app and give me feedback!

Regarding cloud sync, I have implemented workers in javascript code which sync queries between a sqlite db on server and indexedDB on the client. If the user registers on the website then the queries can be accessed from any other computer. If the user is not registered then the queries are associated with one particular computer and are available to all browsers running only on that computer. Hope that clarifies.

Collapse
 
kargirwar profile image