This is a passion project from myself and a friend.
Been looking for a slick and easy to use SQL client on Linux for a while (I wanted basically Sequel Pro, on Linux, for PSQL). Couldn't find what I wanted, so we made one ourselves.
It's built on Electron using Vue.js - I know HN opinions on electron apps, but I've been surprised on how snappy the app is.
It's fully open source (MIT), cross-platform (Linux, Mac, and Windows), and we're committed to respecting privacy. Hope someone else finds it useful too.
But neither of these are really "fully baked" options.
EDIT: This may have come across as the typical HN "middlebrow dismissal" so I just want to say, phenomenal work and a heartfelt thanks for being fully FOSS. Tools like this are a really important part of the SWE landscape that could use some more good entrants.
I have a couple of feature requests that nothing else seems to be able to do:
1. Parameterised queries (ideally with an ability to customise the syntax for the placeholders - we use :param for named parameters). All of our production queries are parameterised, and it would be awesome to be able to copy and paste them into this kind of tool, and run them unmodified. Especially as they sometimes use the same parameter in multiple places, so updating them.
2. A full editor control (e.g. Code Mirror, Monaco, or Ace) for editing SQL queries. Specifically I really want multiple cursors for editing queries quickly and efficiently.
As far as I can tell IntelliJ Ultimate (and therefore most likely DataGrip too) supports both. For parameterized queries you get a prompt that let you fill in values for each parameter when executing them. They're commercial products though.
DataGrip does support multiple cursors, I've never done the parameterized queries but I will have to look into that. Buying the entire Jetbrains suite was one of the best decisions I made when I switched jobs and lost my old license. IDEA/Datagrip save me so much time, when I worked it out I couldn't pay for them fast enough.
I use Rider daily and pay for it, but I found the price tag for DataGrip to be pretty steep considering what I typically use a SQL client for (running ad hoc queries mostly). The competition is not great on MacOS either so I've been using Azure Data Studio and dbBeaver mostly and not really happy with this state of affairs either. Excited to see a fresh new attempt in this space.
hopping on the train here - does anyone know an editor that can do editing of postgres enums? (i know you can't 'edit' an enum in postgres, but i would love a GUI that would 'allow' this. (i.e. in the background DROP CASCADE the enum, create a new one with the same name and new value, as well as restoring to previous dependencies that the old enum had)
There are plenty of opportunities to monetize once there are lots of users.
I think with FOSS it's more important to outline how I'm NOT going to monetize. For us that means never charging for core features, eg having 'CE' vs 'EE', and never doing anything sketch with personal data.
Looks nice and I've been looking for a client that works with SQL Server and Postgres for a while now. Giving it a try for sure.
Feedback:
1) When I first setup a connection and save it, the modal stays there, should probably be dismissed at that point
2) It wasn't clear how to connect, so I double clicked which worked. Maybe an explicit 'connect' button next to each connection would be nice.
3) I really like how after connecting I'm straightaway in an ad hoc query window (a frustration with dbBeaver). It would be awesome if the MacOS version had TouchBar support at least for running (the currently selected) query - Azure Data Studio has this and I use it all the time. (Probably windows should use equivalent F-key here).
4) I think the default date formatting should more closely reflect the column type - so a datetime column should display in an ISO format, not human readable.
5) I like how Azure Data Studio displays nulls explicitly in the results (italicised "NULL"). This lets you easily distinguish between an empty string in your data and a null value.
6) I really like how it's just one click to expand a table to see its types, but I miss the other table metadata here (foreign keys, indices, etc).
7) I like how it's dark mode by default. :)
Awesome job so far, will continue to use it. If it's interesting I would pay for this product (though less than DataGrip which I consider overpriced).
Yeah the data-formatting in the table is something I need to work on, everything is just treated as a string right now, just so I could ship in a reasonable amount of time. That will improve for sure.
Other information for tables will be my next big feature release I think. Probably as a tab-view. Still not figured this out exactly yet.
Thanks for the monitization callout, although I'm committed to keeping all core app features totally free forever. :-)
Once they publish the docs for how to build plugins, TablePlus is going to be the obvious choice. I can't wait for my database browser to have charting!
They have a few plugins available on GitHub so you can copy and adapt and intuit some of the API but I did not see docs available a few weeks ago when I looked.
I also think TablePlus is the best option by far right now, although sadly not open source - would be great if they'd consider Open Sourcing at least the code base licences have already expired passed for.
This looks like a great contender though. Would be useful to have a few more filter options.
I've used DBeaver in the past, but still felt compelled to make Beekeeper Studio. DBeaver is great for a DBA, but can you imagine giving it to someone learning SQL for the first time?
> - DataGrip: bulky, slow, bugs never get fixed, non-FOSS
Bugs linger indeed and non-FOSS is obvious.
If by bulky, you mean start-up time (or resource usage which I don’t really care about), I agree, same as with all other JetBrains tools.
But slow? Everything is so fast, much faster than SQL Manager Studio or Heidi SQL (which I just tried). Autocompletion for fields, tables, SPs, everything is lightning fast and always more context appropriate than any other solution I tried.
I just checked Azure Data Studio as well and while completion was as quick, it wasn’t as context-appropriate and query results took far longer to display.
Not that it's a big thing, but seems weird to put the responsibility about you not forgetting something, on the person leaving the feedback, rather than just filing the issue yourself.
It seems weird that someone who has spent a lot of their own time (e.g. money) to help a community is being shunned for not taking even more time out of their day for a simple request.
This also disregards software ticket guidelines 101:
- There isn't fully defined steps to reproduce
- Limited details on what the user expected to see
- No details about the users environment
People pour their souls into FOSS projects and regularly get cr*pped on for not acting like Enterprise Support. So let's try to be a little more empathetic to people who contribute freely to the dev community, even if its just a small ask like this.
Well, "shunned" might be a bit too strong, but I don't speak native English. I certainly didn't mean to put down the author in any way, which is why I prefixed it with "Not that it's a big thing", it's just a helpful note regarding how to respond to feedback.
Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
> Well, "shunned" might be a bit too strong, but I don't speak native English.
In native english the tone of the following sentence is considered "not very nice":
> but seems weird to put the responsibility about you not forgetting something
Further...
> it's just a helpful note regarding how to respond to feedback.
And what you responded with is NOT how to respond to feedback to an open source maintainer.
> Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
Nor am I. I'm sorry you feel like you're getting picked on here. This general topic is a huge issue for the future of FOSS contributors. What you responded with is clearly not egregious (e.g. i've seen people say things like "hey I submitted a ticket on GitHub 3 months ago and no response, WTF!?!?"...that is VERY BAD), but every little bit hurts. Don't take offense to it, especially if english is not your native tongue.
Oh you just caught me trying to encourage community involvement :-). I don't just want users, I want contributors! At a minimum some issue engagement is very useful.
If most users had your attitude we would have far fewer open source/free softwares. The author has already spent a significant amount of time making the tool, criticizing him for not spending more time/energy for something that can easily be done by the reporter seems, well, counter-productive.
In most cases, feedback is not worth much, depending on your goal. E.g.: I've made some software that satisfies my requirements. Should I be grateful for feedback that, in essence, requires more free work from me? What's the thinking here?
For these reasons I consider the author's attitude most appropriate, considering he could have said "the software is free, send a patch", or just "works for me, take a walk – I don't owe you anything".
Well, it's open source, so he volunteers his time. Maybe the feedback should have been filled to Github in the first place? Certainly he is not lazy if asking to do a favor but probably busy with something else.
Sure, but if time is of such importance here, copy+pasting the feedback into a new issue is faster than replying to the author and ask them to file the issue. Then it might be that they don't because of X, so you have to file it yourself anyways.
In both scenarios, just filling the issue yourself is faster
I tested it out with CockroachDB to satisfy my curiosity and it works perfectly, using the PostgreSQL driver. I think adding first-class support would be as easy as making a new driver that's the same as PostgreSQL but with a default port of 26257!
For anyone chancing on this thread, here's my recap. Note that I have little experience with these, so am trying to summarize, not give my own verdict.
Let me throw in Popsql (free for 2 saved DB connections, $12/mo for unlimited). I've used a handful of the above but Popsql has become my darling if only because the UI has a productive and inviting feel at a reasonable cost. It's obviously on the expensive side compared to OSS and one-time-licensing-fee products but when I'm firing off dozens of queries per day, it's worth it. As a bonus, their site offers live chat support directly with the engineers so the handful of times I've had some small issues, they've been super helpful.
- DataGrip - $89 first year, $71 second year, $53/year after that - Worth every penny for me and if you stop paying you get the last version
- TablePlus - $59 and it is $59/year. You can pay once but to keep getting updates you have to keep paying like with DataGrip
- DBeaver - Ugly but I agree, it's powerful
- SQuirrel/Heidi/Postico/SequelJoe/Azure - Never used
- Sequel Pro - God I loved this software and hung on to it way longer than I should have through the crashes and lack of updates (I would have paid in a heartbeat for it). Too bad it was MySQL-only
Looks cool. I haven't taken an in-depth look yet, but what I noticed is that when I press CMD+W it closes the whole window, rather than the tab I am in. This will land me in some trouble if I ever decide to use it as my main tool.
Yes that is a problem. The app should be capturing that event to close tabs, but MacOS takes it over for some reason. I'll be doing keyboard shortcuts differently soon, so that will be fixed.
I got pretty excited about trying this out, since I've been using a no longer maintained (and pretty buggy) app called Sequel Pro.
But, Beekeeper kind of seems slow/clunky? I ran a simple query in our prod DB that returned 906 rows x 60 columns – the app completely froze up and I couldn't even scroll down to the next few rows...
Switch to Sequel Pro nightly build. You can install it with homebrew. It’s very stable despite the nightly moniker. I haven’t had a single issue with it and it resolved several issues I was having with the regular release.
Yesterday after using Sequel Pro for years, I decided to give TablePlus a try and have been pleasantly surprised. Sequel Pro seems a bit snappier is some instances like when you run a few dozen (or thousand) queries from the editor, but TablePlus query auto complete is so much better than Sequel Pro, and I really like having to confirm changes rather than them running in real time as I update/create/delete things.
I think wide tables are a performance problem with the table lib were using (tabulator). There may be ways to improve it. Frankly I don't have a 60 wide table to test with.
Looks great. Sequel Pro you mentioned is by far the best on Mac, none of the clients on Windows or Linux I tried even come close.
This is great, and badly needed IMHO—specially if one can use a single app for both MySQL and SQL Server (Beaver DB is a usability nightmare).
The name will put off a lot of people. To be honest, if someone in a team said "we should replace all our SQL clients with Beekeeper!" the first reaction would be to laugh at the name—which is not good. "SQL Keeper", "SQL Vault", "Sequalize", or anything like that would make people take the project more seriously.
Kudos for the effort, however for SQL server it faces the same issues as most other clients.
connecting using an domain\user and password doesn't work which means i can't jump ship.
Is there a reason it works flawlessly on datagrip and other tools like sqlprostudio but apps like tableplus and beekepper can't?
I primarily use TablePlus, but it's lack of support for saved queries is a big downside, this could be great for that use case.
A couple of UX things I've noticed, do with them what you will ;)
- When clicking on a table, the more common expectation for me is for it to open that table in a new tab, or switch to an open tab already using that table. The dropdown with columns is nice, but feels secondary.
- When opening a table, it would be nice to pre-seed with X amount of rows immediately. Commonly I just want to filter or search through the data in some way, and being able to immediately interact with it would be a nice touch.
I couldn't find any way to change schema in Postgres, and it seems like it only lists tables in the public schema by default. That does unfortunately break it entirely if you use schemas at all.
One thing I've been wanting for a while is a pluggable database client. I find being able to "see" a database helps me understand structure and concepts more.
With FoundationDB one of the things that I've really struggled with is visualising the layers of the schema. I doubt there's a market for a FoundationDB GUI client, but being able to write a plugin for an existing client (I don't have good GUI skills) would be a great option.
Very well done. Congratulations!
I am fan of Sequel Pro on Mac, and never found something like that for Linux. I use adminer on Linux and willing to try your tool.
Tried connecting to MySQL 5.6.10a RDS Aurora cluster with username/password and SSL enabled, much as I'm able to do with other clients, but handshake fails with `140230041270248:error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL:../../third_party/boringssl/src/ssl/handshake_client.cc:568`
Maybe boringssl is too new for my version of mysql supported tls protocol versions?
I'm by no means a DBA, I just have to wear the hat sometimes.
That said, I'm always hesitant to connect to production databases with relatively unproven products like this. How do I know there's not a bug that's going to wipe out my database?
Is that a valid concern? I'm curious about other folks' take on this.
This is amazing! And SSL option right off the bat too? Well done. Feature request for Postgres: it looks like this version mostly displays tables in the 'public' schema. Would be great if it could display all tables and views in all schemas present in the database
This is cool! Bug: I run Postgres locally that works without a username and password. Trying to connect to the database results in the error that I didn't provide a username. Can you remove the validation?
great work! TBH Perhaps the best front end for editing tables I've ever used was.... wait for it... Access 2010(!) as you could use it (via ADP) for editing MS SQL Server databases - very quick/easy to edit table content, spell check, easily import/export to tables using excel files, ctrl-f to search, spell check etc. etc. everything I've used sincehas been a lot more powerful but lacked the speed and ease of editing table content.
What are some of the comparisons with MySqlWorkbench? It's the only one I have stuck around using so far, so looking to shop around for a different client to try.
This is a passion project from myself and a friend.
Been looking for a slick and easy to use SQL client on Linux for a while (I wanted basically Sequel Pro, on Linux, for PSQL). Couldn't find what I wanted, so we made one ourselves.
It's built on Electron using Vue.js - I know HN opinions on electron apps, but I've been surprised on how snappy the app is.
It's fully open source (MIT), cross-platform (Linux, Mac, and Windows), and we're committed to respecting privacy. Hope someone else finds it useful too.