Show HN: Beekeeper Studio – open-source, cross-platform SQL client
beekeeperstudio.io
beekeeperstudio.io
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.
Have you seen http://sequeljoe.ohwg.net/ ?
I'm also following https://github.com/ragnar-lodbrok/meow-sql closely, a C++/Qt port of the FOSS-but-Windows-only https://www.heidisql.com/ .
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.
Can you add a setting to zoom?
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.
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.
> never doing anything sketch with personal data.
Does not compute.
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. :-)
In case anyone is curious, here’s what I’ve tried so far:
- DataGrip: bulky, slow, bugs never get fixed, non-FOSS
- Azure Data Studio: great interface, but no MySQL or SQLite support
- phpMyAdmin: clumsy, lacking in features, requires a web server—I’m really not the target demographic for this one
- CLI clients plus a decent text editor: what I always end up falling back to; daily driver at the moment
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.
This looks like a great contender though. Would be useful to have a few more filter options.
OP's client looks way nicer for sure
I tried with Postgres 12 and ran into 2 issues -
- jsonb columns don't seem to render properly... just get a "[object Object]".
- One specific table refused to get list anything, and there was a red "Error" in the center of the listing UI.
In both scenarios, just filling the issue yourself is faster
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.
Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
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.
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".
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!
Competition:
- DataGrip (~$150/yr, Clunky, Powerful)
- TablePlus ($50, Pretty, Useful)
- DBeaver (Free version, Clunky, Powerful)
- SQuirrel (Free, Clunky, Usable)
- Heidi (Free, Clunky, Usable)
- Postico ($40, Pretty, Mac + Postgres only)
- http://sequeljoe.ohwg.net (Free, beta)
- Azure (Free, Pretty, SQL server only)
- Sequel Pro (Free, Pretty, Mac + Mysql only. IMO has issues with MySQL v8)
- 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
Good FOSS dbs deserve good FOSS tooling. We're still light on features, but electron let's us move very quickly.
Good round up.
Datagrip is indeed cheaper for non Enterprise users, at 53/year from the 3rd year, especially as they have a discount for users of competing software.
A few more, not mentioned in this thread:
- Valentina Studio - https://www.valentina-db.com/en/valentina-studio-overview (Freemium, Pretty)
- Workbench - https://www.mysql.com/products/workbench (Free, Pretty, Mysql)
- DBForge - https://www.devart.com/dbforge/mysql/studio/editions.html (Freemium, Mysql Only)
- Aqua Studio - https://www.aquafold.com ($500, Clunky)
- Navicat Premium ($599, Pretty, has good reputation)
- POPSql - https://popsql.com (12/Mo., Pretty)
I'm sure there are more!
Can you file an issue so I don't forget?
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...
But still with all those UI bugs I prefer it over any other client.
Can you file an issue so I don't forget?
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.
Congrats!
The positive is that it is distinct and can hopefully provide its own identity. Businesses use all sorts of software with silly names!
The competitors are Squirrel and (D)Beaver, so it's all in the backyard.
What's the story behind the name..? :-)
* Look into your JSON/JSONB column support. Right now it just returns [object Object].
* I dig the tab interface.
* I REALLY like the summary view when you expand the table on the left.
* Select auto complete wasn't working very well for me even with the table defined and ctrl+space was offering completely problemsome options.
Excited to keep playing with it. Going to test it as a daily driver.
Yeah JSON / JSONB support coming soon (tm).
Auto-complete is a pet peeve. I'm using code-mirror for the editor and it has limitations. Can you screenshot what was not auto-completing?
I find it helps if I first define a table, then the selects auto-complete well:
select foo.<autocompleteworksgreat>
from foo
Is there a reason it works flawlessly on datagrip and other tools like sqlprostudio but apps like tableplus and beekepper can't?
These were compromises I needed in order to ship it (it already took us a year to build).
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.
The click interaction is something I'm not sure about. Neither feel totally right. Still thinking about it.
It should fill when you open it. What DB are you using?
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.
I see a lot of promise, but I've found 2 big issues right away:
1. I can't see how to manually edit data in the tables
2. The pagination (bottom right) doesn't work at all
2. This should work just fine -- what db are you using? Can you file an issue with db information?
Maybe boringssl is too new for my version of mysql supported tls protocol versions?
I use DataGrip and haven't found anything that was better than that at what it does.
Yours is really neat. Saved queries are great.
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.
(Looks great though!)
Your website states "Your download will begin automatically.", but it won't if I have third party javascript blocked.
Please also provide a (if it doesn't click [here]) option.
Since I'm working with vue I will totally check out the source and how you put things togehter :)
Quick Suggestions:
* Snowflake, Bigquery, Azure support
* A SQL linter (not easy!)
Thanks for sharing!
Makes me want to download it, even though I don't have an immediate need for this kind of tool.
Any plan for Query Plan diagram / visualisation ?
> Looks promising! Have you thought about supporting a light theme as well? I generally don't like dark themes
Just looked at the Github language stats for this project:
TSQL 98.5% JavaScript 0.6% PLpgSQL 0.4% Vue 0.3% CSS 0.2% HTML 0.0%