this is my passion project. I was unable to find nice SQL client for Linux, so I created it on myself. I have created proprietary SQL client for Windows in past, so this app is influenced by experiences from this work. Recently I have added support also for noSQL, MongoDB.
It's built on Electron using Svelte. Although Electron apps tends to be clumsy, partly thanks to Svelte framework is the app fast enough.
It's open source (MIT), cross-platform (Linux, Mac, Windows), or can be run as web-based application in browser.
Hope it could be useful also for others.
Projects like yours are why browsing HN is still a joy -- this is diamond-in-the-rough software, and I never know when I'll come across it (also thanks to HNs stellar moderation and the mods that make that happen).
The stack this is built on is pragmatic yet being reasonably cutting edge (at least I think of Electron and Svelte as cutting edge, not "boring" software), the feature set is deep, good support, easy to download and install, and I like the vision (as in the UI has been built by someone who has seen other entries in the space before and is familiar yet not cluttered). Love the project.
Please make sure to think of a sustainable way to capture some of the value you're investing into this project, I don't see why it can't take a place as a widely used (No)SQL DB client. Even if it's just a buy-me-a-coffee button (or a paypal 1-time donation button, whatever has least fees), It helps to think ahead to what sustainability looks like before you have 200+ issues filed so you can keep the passion as people like me drive by, use your project and maybe complain but don't contribute.
Thanks. My plan is at first to have reasonable big set of active users, who will report problems, ideally also some contributors from community. Buy-me-cofee or donate buttons is next step
Well done, impressive features, I like the data edit capability, appears to be way better than other clients.
I’ll give it a try - gotta be better than PgAdmin!
This looks very impressive! However, I can't get it to work.
Just installed it on Windows 10. When I launch it I get a taskbar icon but no actual window. There are also four dbgate.exe processes running, and when I right click on the taskbar icon and close it, three of them remain until I figure out the correct one to End Task on.
If there's any further info you'd like from me, I'd be happy to help out. It seems like your app could make my life easier, so I'd really like to get it running.
Note: I'm seeing the same thing on two entirely separate Windows 10 machines, so you might have a larger issue on your hands here.
I reported this in the GitHub issue as well, but the issue became immediately apparent because I've had this same issue running local servers - HyperV reserves (what I consider) large amounts of ports to do its business. You can run
netsh int ip show excludedportrange protocol=tcp
to see which ones, and in my case the port DbGate was having issues reserving was in one of the ranges
Tangentially related, if any macOS users are shopping for a DB client here’s my experience:
After many years Sequel Pro (MySQL only) started having problems so I tried every tool in this class for macOS and ended up standardizing on TablePlus.
It supports most common DBMSs, works on Mac and Windows, and apparently has a Linux alpha.
I still prefer Sequel Pro’s UI but TablePlus is ok. No critical bugs although import of massive or complex MySQL dumps still works more reliably on the official CLI client.
I used DBeaver for a few years until I got tired of giving 50% of my machine's resources to it, then switched to TablePlus and have been quite happy. I've never needed more than two tabs so I've never paid, but I absolutely would pay them (it's great).
If I was looking for something new right now, I'd try DataGrip first. I'm a huge fan of Jetbrains' products so I'd be happy to pay them for another useful tool.
Just my 2c. I'm sure others have different experiences/likes/dislikes
Same. SequelPro's interface was very intuitive but too bad the development stalled and SequelAce just didn't work as expected. (Somehow connecting through SSH just kept failing for no good reason when other SSH related tools just worked.)
TablePlus got good enough with its interface, though there are still some parts still feeling unintuitive like ordering of columns through numbering instead of drag/drop style but it's the best of workable solutions. (DataGrip is too heavy)
Thanks for this. I've been using Beekeeper Studio (https://www.beekeeperstudio.io/) and I've been mostly happy with it, but glad to see alternatives. The only problem I have with Beekeeper is that scrolling the table view is really slow (laggy and jumpy), I assume it's because of Electron. Is DbGate any different there, you're using Electron too?
I am also using Electron. But I didn't come across problems with scrolling. Surely the reason is not Electron, Beekeeper Studio is created with Vue.js, maybe that is origin of this problem. DbGate uses Svelte, which should be much much effective, because of omiting virtual DOM. Formerly DbGate was written in React (which has also virtual DOM as vue), rewriting to Svelte boosted the performance markedly.
That's interesting, I've been writing a personal app as well, initially SSR, eventually switched to angular and an currently in the process of implementing it with sveltekit.
I've not perceived any Performance improvements beyond the first page opening, which is probably because that's SSR and then shipped to the client pre-processed.
pages usually render within 100ms in both svelte and angular (including the rest call for the data) and there is no stuttering or anything in either unless I implement a leaky feature... Svelte is sometimes even slower, because it needs to fetch the component itself, which is usually prefetched in angular. (Bigger initial payload because of that but that is manageable as well using modules in angular)
And svelte is so much less mature in tooling/hooks etc that I'd expect it to be significantly more tiresome to use in bigger projects.
Its definitely a very interesting framework however. Having the option to choose which component to SSR and which to process fully on the client is incredible.
Loving the look of this. Amazing work! Are there any plans to provide diagramming and documentation support? Since I’m on MacOS One feature I really liked about DBSchema (Java for cross platform) was the ability to digram tables and relationships easily and then generate HTML5 documentation or quickly and easily for the Business Analysts. As others have said the core functionality you’re delivering here is already slick, and worthy of at least donations for the 4-5 days a month you are dedicating to this project.
Thanks. Yes, support of diagramming is also planned. About documentation, I am not sure, whether support it directly. Maybe this could be better achieved with some plugin, as there could be lot of options... Probably I will create some simple plugin making basic HTML doc, someone could than improve or fork and customize it
Very impressive! I use DataGrip currently which is great but it has performance issues. This is very fast! And I like that it's AppImage.
I really like the UI. And it's impressive what you've achieved.
The main thing that stops me switching right now is DataGrip has a great table/indexes editor that outputs normalised SQL which I use for creating migrations. Otherwise I seriously would have considered it.
Thanks! Table editor will be surely implemented. I am now deciding, what big feature will be the next, table structure editor is hot candidate. Next candidate is SQLite support
Have my vote for SQLite support! I frequently find myself in need of a proper tool to inspect, explore, query and modify SQLite databases. When I saw your Show HN, SQLite support was literally the first thing I checked for!
I'd really prefer to switch away from sqlitebrowser (AKA "DB Browser for SQLite.exe"). It's a fine tool, but a bit limited.
I am also glad SQLite support is going to be added. I will definitely try it.
Have you checked out SQLiteStudio (https://sqlitestudio.pl)? It's ooen source and cross-platform.
I also use DataGrip and I've been searching from something lighter that can also handle NoSQL for my Linux box. I love that this is distributed in multiple Linux formats rather than just DEB and RPM.
This is a bit like Azure Data Studio...even built on the same platform, Electron...
Good work btw but what is the advantage over using Azure Data Studio? (other than the lack of MS telemetry)
I have tried Azure Data Studio, before I have decided to create DbGate as linux tool. From my point of view, ADS uses technology from VS Code heavily, which is great in VS Code, but not in database access tool. About features, what I miss in ADS most are data browsing (filtering, sorting, master-details) features, it is neccessary to write queries manually. I think I am quite good in writing SQL queries, but it is annoying and slow to write very similar queries again and again.
Just to clarify in case OP wasn’t aware, HackerNews readers are often privacy conscious folk, and it’s quite well known that Microsoft (like Google and Facebook) embed a lot of user activity monitoring into their applications. The audience is happy you are not doing this.
As you said, DbGate has no activity tracking or monitoring. Tracking is only on site dbgate.org. I will never add any tracking to dbgate app. I believe that it doesn't have great sense in open-source project.
Looks great Jan. One small issue is that for PostgreSQL I cannot specify the database when I am creating a connection. Not a problem for local databases but you may not have access to the root postgres database on a specific server eg cloud hosted database.
Apart from that, well done, I have been looking for a good db client for linux for ages. I use DBeaver at the moment, and it's pretty good, but I do find the interface a bit clunky and yours looks much better.
It looks great and surprisingly performant for electron app. Noticed that while adding postgres connection, you cannot specify database name. Many services uses custom database (vs default postgres) like heroku. Will you be able to add support for it?
Yes, I am planning to support it for long time. In fact, I deal with programming SQL clients over 10 years (in past, I have created DatAdmin and DbMouse clients), I would like to use this know-how to create widely used open-source SQL client. Of course, it depends also on feedback from users and community.
Now I have reserved 1 man-day per week for my non-profit or very-low-profit projects, dbgate takes 90% of this time. (+of course some evenings and weekends). I am planning to use github sponsors or something like this in future, maybe it would allow me to extend this reserved time.
Honestly, not at 100% today. But I am very focused to make it keyboard-friendly, many operations could be done only with keyboard. Keyboard support is improved continually, eg. recently I have added configuration of keyboard shortcuts and command palette like in VS code (after F1), if you don't like context menu.
Looks great. Would be nice if Oracle is supported.
Oracle driver licensing is a pain. The way Metabase does it is to have the users download the Oracle jar and add the Oracle driver to a location it can read from.
I think the problem is HN community concentrates on anything but Oracle. Just an observation from all the discussions. I don’t have a bone in the game. My go to database is postgres by the way. But I love all the new databases popping up like cockroach and following them although have not used them on a project yet.
I am still amazed by how pervasive Oracle usage is for NEW projects in the enterprise. The only large enterprise I know that left Oracle is Amazon when they switched to Postgres and now they offer Redshift as a service to get off Oracle.
I have been looking for a native SQL client that is fast and works well on a HiDPI display. I've spent a few minutes playing around with it and this is exactly it. Thank you for making it!
Looks very nice! Is there a way to see logs? I'm not managing to connect to a MariaDB instance on Azure, and all it says is "Connect failed: An internal error has occurred."
You can execute dbgate from console, all available info is printed to console. Message "An internal error has occurred" seems to be from the underlying db driver. You could also create issue github, if more investigation is needed
Azure cloud should be not problem, what version of MariaDB are you using?
This looks really great. One thing I love about DataGrip is that I have quality Vim keybindings through IdeaVim. Would it be possible to add Vim keybindings in the query editor?
Saw this and downloaded. Looks very good. Thanks for creating this. Fast, and plenty of features. I am using DBeaver and this looks like it can be a great replacement.
Author's point of view... dbgate have much simpler user interface. dbeaver is powerful, but it has traditional design like other applications made by Java. dbeaver looks like Eclipse, whereas dbgate looks like VS Code. Another point - powering by javascript allows lot of "hacking" - plugins as NPM packages, data export/copy jobs exported as js files, which can be run with nodejs. This cannot be accomplished with Java.
Thank you! I will just second this as a requirement. Many of us don't install anything if we can help it, and prefer to keep our software library as separate from the OS's current install/instance as possible.
this is my passion project. I was unable to find nice SQL client for Linux, so I created it on myself. I have created proprietary SQL client for Windows in past, so this app is influenced by experiences from this work. Recently I have added support also for noSQL, MongoDB.
It's built on Electron using Svelte. Although Electron apps tends to be clumsy, partly thanks to Svelte framework is the app fast enough.
It's open source (MIT), cross-platform (Linux, Mac, Windows), or can be run as web-based application in browser. Hope it could be useful also for others.