Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Beekeeper Studio – open-source, cross-platform SQL client (beekeeperstudio.io)
343 points by rathboma on May 6, 2020 | hide | past | favorite | 132 comments



Hey folks,

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.


> I wanted basically Sequel Pro, on Linux, for PSQL

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.


HeidiSQL works really well under Wine. I would still be using it


HeidiSQL on Wine, seconded.


Thanks!


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.


Just in case you are not aware of it, DataGrip can do all these things: https://www.jetbrains.com/datagrip/


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.


Rider comes with DB tools on par with DataGrip included. Same for PHPStorm. The exception si WebStorm and maybe other smaller ones


I like a lot of the paid tools, but I just feel like open databases deserve open tools. DBeaver is great for DBAs.


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)


Hey, it would be great if you published it to AUR (Arch Linux)!


Hoping to! It's built with electron-builder and there's no plugin for aur yet, so will have to manually figure it out. I'm very pro Linux.


I tried out your app, and it's awesome! Simple and solves my need.

Can you add a setting to zoom?


Working on it!


Quite cool! Nice work :) Why an app vs. full hosted given it's Electron?


Perhaps to live up to the stated commitment that an internet connection isn’t required.


I've built both! My personal frustration was the lack of a simple SQL client on Linux. So here we are :-)


Thank you for your work. I just installed your app and it is working well.


Passion aside, how do you plan to monetize?


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.


> There are plenty of opportunities to monetize once there are lots of users.

> never doing anything sketch with personal data.

Does not compute.


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).


Wow, great feedback, thanks!

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. :-)


For 3, SQL Management Studio has F5 and Ctrl+E for running the query. And support for running only The selected part of the query.


Very cool! I’ve been looking for a decent cross-platform SQL client for a while, so I can’t wait to try this out tomorrow.

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


DBeaver is great as a mature cross platform sql editor, and packs a lot of db design and management tools: https://dbeaver.io


I used it for a bit and I find it lacks in the text editing capabilities.


Your comment would have been useful if you elaborated on what text editing capabilities DBeaver is currently lacking.


Multiple cursors, jumping around in the text without the mouse, etc.


TablePlus is my favorite one after trying most of those https://tableplus.com/


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!


Did not know that was in the works, sounds awesome :)


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 would also recommend DBeaver[1]. Cross-platform with really nice features.

[1] https://dbeaver.io/


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?


I second this recommendation. DBeaver is great and will work with almost every RDBMS you'll ever encounter.


> - 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.


I notice you had not tried squirrleSQL

http://www.squirrelsql.org/

OP's client looks way nicer for sure


So basically Datagrip?


This is pretty cool! Better SQL clients are always welcome.

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.


Good catches! Can you file a GitHub issue so I don't forget?


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.


Heh, was what I thought initially, but didn't want to call out anything! Certainly fine and no hard feelings! Good luck :)


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


This is awesome. I love the simplicity.

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!


Damn had no idea. Awesome to know. Can you file an issue so I remember to do it?


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.

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)


Correction, since it is after the edit window:

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!


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


This was basically my list. I wanted FOSS, not clunky, all databases, not abandoned.

Good FOSS dbs deserve good FOSS tooling. We're still light on features, but electron let's us move very quickly.

Good round up.


Unfortunately the node mysql driver is also not mysql 8 ready. Pr is out there though


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.

Can you file an issue so I don't forget?


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.


The nightlies have a lot of UI bugs, Filtering options disappear randomly, the left column is kinda weird etc.

But still with all those UI bugs I prefer it over any other client.


I have not encountered any of that. And ditto on still preferring it.


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.

Can you file an issue so I don't forget?


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.

Congrats!


Thanks! There's a history to the name, but I agree there are negatives.

The positive is that it is distinct and can hopefully provide its own identity. Businesses use all sorts of software with silly names!


Sure, they do use them, but as a startup I'd personally think it's better to not making harder than it already is.

What's the story behind the name..? :-)


There is a delicious irony in using a BeeKeeper to connect to a Cockroach database....

The competitors are Squirrel and (D)Beaver, so it's all in the backyard.


Nice. Excited to try it out. Been using Postico for a while and having to hit a keybind for auto complete suggestions has been a drag.


Got a chance to play with it.

* 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.


Thanks!

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


And here I am working on a Beekeeping app that I was going to call that. I guess I'll call it SQL Studio instead.


Hive.app is taken too?


There's a domain squatter sitting on it demanding a minimum of $10k.


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?


We'll get there with it. It requires some specific AD code to implement it. I just haven't had time to do it yet.

These were compromises I needed in order to ship it (it already took us a year to build).


Nice work!

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.


It has a "favorite" feature which I assume is similar to what you're looking for? It's super intuitive imo but does the job


Thanks!

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?


Agree with the table click expectation. Was surprised to find that didn't take me to table data.


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.


Yep. This was a compromise I made in order to launch (it took us a year to build it part time even then). Coming soon I promise!


Does it respect the user schema search path?


Nice, congrats on the launch.

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.


Looks nice! Running on Ubuntu 18.04.

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


1. We'll be working on this soon.

2. This should work just fine -- what db are you using? Can you file an issue with db information?


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?


Can you file a ticket with these details and I'll add it to my bug squish marathon!


Really nice ! Love the commitments you make.

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.


Data grip is great!


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.

(Looks great though!)


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


100. Yeah I had to draw the line and decide to ship. It's on the Todo list


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?


I think this is the driver I'm using, but I have it in line to fix for my next release, thanks!


A really small but still slightly annoying thing:

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.


Wow, thanks for creating and sharing your work! Up until now I haven't seen a decent native SQL client on linux.

Since I'm working with vue I will totally check out the source and how you put things togehter :)


Nice design. If you could diagram schemas like dbeaver I'd try it out!


Coming soon :-)


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.


Side note, if you're exclusively on MySQL I would suggest checking out https://www.sequelpro.com/ - it served me well for many years.


Ever since upgrading to Mysql v8 (which is the only supported version on Ubuntu 20) I have had so many issues with SequelPro, that I bought TablePlus.


When folks like you want to use beekeeper over sequel pro I'll know we've done good work. That's my goal!


It's less for a DBA and more for someone who just uses a DB as like a web or mobile developer for example.


Looks pretty neat. Have been using Navicat for quite some time but actually never really warmed up to the UI. I'll definitely give it a shot.


this is so close to vscode UI, that I wonder - how difficult would it be to implement something like this on top of the vscode plugin system ?


Looks like some nice, I'm a frequent Tableplus user, so nice to have a sleek multiplatform alternative.

Quick Suggestions:

* Snowflake, Bigquery, Azure support

* A SQL linter (not easy!)

Thanks for sharing!


- Yes yes yes, coming soon I hope :-) - For sure, on the radar, wanna help make one? :-P


Looks fantastic, really nice web design as well.

Makes me want to download it, even though I don't have an immediate need for this kind of tool.


Looks slick, does it support the SQLCipher variants of Sqlite?


Never heard of those tbh. Want to make an issue so I don't forget and I can look into it?


Looking great !

Any plan for Query Plan diagram / visualisation ?


Yep! On the todo list.


How does it compare to dbeaver ?


I can't be the only person who was disappointed that this isn't Trello for Beekeepers.


I'm actually really interested in beekeeping, but thanks for the encouragement.


:-)


awesome job for a side project! looks very slick!


Nice! Congrats!


Only the obnoxious "dark theme" -> removed


It would be friendlier to phrase this as a suggestion:

> Looks promising! Have you thought about supporting a light theme as well? I generally don't like dark themes


We have a light theme, but no settings menu :-). So that is coming soon


Amazing!


Didn't expect to see a electron app for this. I don't know why, but I was expecting something based in Java.

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%




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: