Show HN: Base, an SQLite database editor for macOS

menial.co.uk

674 points by __bb 2 days ago

I recently released v3 of Base, my SQLite editor for macOS.

The goal of this app is to provide a comfortable native GUI for SQLite, without it turning into a massive IDE-style app.

The coolest features are

- That it can handle full altering of tables, which is quite finicky to do manually with SQLite.

- It has a more detailed display of column constraints than most editors. Each constraint is shown as an icon if active, with full details available on clicking the icon.

This update also adds support for attaching databases, which is a bit fiddly with macOS sandboxing.

I'd love to hear any feedback or answer any questions.

thomasqbrady 2 days ago

I've been using Base for [checks... considers retirement] about 15 years!? It's ALWAYS been great, AND has improved over time.

  • DwnVoteHoneyPot 2 days ago

    Useful comment because I always assume these "Show HN" products are minimally viable... whereas, it's good to know it's been battle tested for at least 15 years.

    • riazrizvi 2 days ago

      I assume they must be new too. Nice to see a project that’s been around for a while get posted and reach number 1.

samdixon 2 days ago

So apparently this has been around for 15 years? I would have bought this years ago, but it never showed up on any of my searches... google, reddit, producthunt, alternativeto... feel like I just shifted into another dimension where this has apparently... always existed?

  • program 2 days ago

    The name chosen probably didn't help here. “Base” is a very generic term.

    • LeoPanthera 2 days ago

      It's also the name of the database application in LibreOffice, confusingly.

      • hoistbypetard 2 days ago

        And its development got really quiet for a few years, I think.

    • rossant a day ago

      That may well be the main reason, actually.

  • caro_kann 2 days ago

    That's why marketing/distribution/sales is very important. As a developer most of us think if we build a good product everyone will start using it, which is very wrong in 99% of the cases.

  • noman-land a day ago

    I feel the same way. I've searched for sqlite guis many times and this has never come up.

d_burfoot 2 days ago

I love this model of software development, which I think of as "artisanal", as opposed to open-source or enterprise. A small team, maybe just one person, who invests deep effort into a product that does one thing very well.

  • int_19h 2 days ago

    The question is, does it actually earn enough money for the person to live off?

    • __bb 2 days ago

      In this case, no. It would be nice if it did though.

    • jpalomaki 2 days ago

      World would be a slightly better place if those who can afford (or put it on company) would support these indie developers.

    • caro_kann 2 days ago

      This is exactly was my first thought. Having good paid product which at least covers the expenses of the developer is much better than having a product for just a love of it.

    • abnercoimbre 2 days ago

      It's an open question in these times, though there's a cohort of "artisanal" devs trying hard.

earthnail 2 days ago

It would be amazing if it could display UUIDs. SQlite doesn't support them natively, but many people store them as binary blobs.

Jetbrains products realize that these binary values are UUIDs and let me edit them easily.

  • __bb 2 days ago

    Thanks, I'll make a note of that. It's not a behaviour I've seen before.

    • earthnail 2 days ago

      I work a lot with syncing code for mobile apps, and use sqlite for local dbs on the app, which I guess is fairly standard. UUIDs make sync protocols much easier to write.

    • dlachausse 2 days ago

      I see that this software is available for direct sale, the Mac App Store, and through Set App. What is your revenue breakdown from each if you don’t mind sharing?

      • __bb 2 days ago

        It's a bit too soon to tell reliably, since I've shipped v3 as a new app and it hasn't settled down yet. For v2 it used to be 60% App Store and the remainder direct/Setapp. So far for v3 it is approximately 60% direct, 25% App Store and 15% Setapp.

        This is a bit of a shift, but the numbers aren't really stable yet so it's hard to tell if it'll stay there.

        • thisislife2 2 days ago

          Thanks for offering this app outside of the App Store too. Why don't you support older versions of macOS though? Does this app really rely on any new macOS APIs that it has to be built only for macOS 15+?

          • __bb 2 days ago

            One of the things I found limiting in previous versions was supporting older versions of macOS. I’ve decided this time round to only try to support the latest and previous versions. Since the release of Tahoe is probably quite soon, I’m starting with just macOS 15 and will support that and macOS 26 to start.

            • thisislife2 a day ago

              From what I have observed, apps built for macOS Mojave (64-bits) or macOS Catalina all work fine on the latest versions of macOS. So I guess you must be hampered with App Store requirements ...

              • dlachausse a day ago

                Apple frequently introduces new APIs that enable new functionality or make things easier and more maintainable. Also, testing software on older operating systems creates additional work. Unlike other OSes, macOS puts several limitations on running it under a VM, so in some cases you have to boot the OS up on real hardware. If you don't have 5 or 6 old Macs laying around this means setting up multi boot. There are also limitations on which versions the latest Xcode can target.

                • thisislife2 3 hours ago

                  I understand. In this particular case, I am making an assumption that they aren't really using any new OS API's (this is, after all, a reasonably simple app) in which case they could just build and test on macOS Mojave or Catalina (the minimum OS version) and the latest macOS Whatever (the maximum OS version, for the APP store). As I highlighted, most older apps run without issue on newer macOS versions, and so that is a reasonable assumption to make and forego testing on all versions. Then, only if you get some bug report on some particular version, you can test for that ... (as you pointed out, the best approach - testing on all versions - can be very resource intensive, and this can be a practical middle-way approach for an independent developer).

  • klabb3 2 days ago

    I didnt know there are dozens of us! When I saw the lack of native support i decided to use binary blobs. I mean, why waste many bytes if few bytes do trick? In the SQLite studio app im using its garbled and annoying to browse.

    Too bad this is mac only. I mean, im a mac user (among other things) but i don't want to depend on platform specific tooling.

  • da_chicken 2 days ago

    See, I would be terrified of doing that because different RDBMSs and languages store and sort UUIDs differently. A UUID is not just a number. It's a structured data format.

    Both MariaDB and SQL Server have dedicated data types for UUIDs, and they sort in an unexpected order if you're unfamiliar with the structure of a UUID or the endianness of certain portions of it. Oracle assumes it's going to be binary, but the generating function SYS_GUID() has some endianness issues you can run into. Meanwhile, PostgreSQL kist sorts them like a string!

    Similarly, if you're using .Net to generate a native GUID type and passing that through your RDBMS provider, it may arrive and be stored differently due to that endianness problem.

    Expecting that every SQLite database is going to be storing UUIDs in an identical manner seems insane to me.

    • throwaway2037 2 days ago

      Is it incorrect to simply sort the alphanumeric version of UUIDs? I am unsure if UUIDs have special sorting rules like Unicode.

      • da_chicken 17 hours ago

        It's not really about that.

        It's the fact that, as the Base author, you don't really know how a given application might present a 16-byte binary version of a UUID to the database. If you don't know that, how can you reverse it to display the correct string representation? There are complications with byte groups potentially being in different places, and even the potential of mixed byte ordering.

        How can Base make a 16-byte binary format that display both a GUID stored from a .Net application from person A, and also a UUID from a Python application from person B, and have the string representation be accurate in both cases? I don't think you can.

  • supportengineer 2 days ago

    Sometimes a binary blob contains perfectly printable characters.

    A binary blob of 7-bit-clean ASCII still fits within a binary blob.

MrGilbert 2 days ago

It might just be me, as I don't use a Mac, but there is something inherently beautiful in terms of design of Mac applications. Something simple yet elegant. I highly assume that it is driven bei the OS (or the company behind it). Sometimes, I wish that Windows applications would share the same design philosophy.

  • bapak a day ago

    I think macOS core UI is better looking, that's the reality, and it has been for a very long time.

    Just a random comparison: Paint.net and Pixelmator.

    Without going too far into the details of their capabilities, why does Pixelmator look so much more pleasing?

    If you built Pixelmator for Windows using a Windows-native look, it would just not look as good.

  • rochak 2 days ago

    That’s one of my many reasons for sticking with Mac. I know the bar is higher and I just enjoy the consistency between first party and third party applications.

    • MrGilbert 2 days ago

      Well... career-wise I'm currently moving away from being a developer, so the incentive to use a Windows Desktop isn't there any longer. I might take a look at a Mac.

packetlost 2 days ago

What does this offer over sqlitebrowser? https://sqlitebrowser.org/

  • __bb 2 days ago

    To my (biased) mind the advantages are:

    - It fits with the system better and behaves more like other macOS apps

    - I believe Base has better create/alter table support

    However Base doesn’t (currently) have support for SQLCipher.

    • cosmic_cheese 2 days ago

      Just to expand on the “behavior” bit, there’s a truckload of little things that native AppKit apps get you that nothing else will, not even other “native” toolkits like Qt. Things like Option-clicking a disclosure triangle in a nested list expanding/collapsing all children recursively, which one comes to use frequently and misses when absent. Foreign toolkits have spotty coverage of that kind of thing if they implement any at all.

      As much as visually fitting in is important, behavior is perhaps bigger. Anybody who’s working on the Mac port of a cross platform toolkit would do well to replicate those little bits.

      • harikb 2 days ago

        Wow! I just discovered option-click in Finder -- unrelated to sqlite :o . Thank you! thank you!

  • vsl 2 days ago

    Polish and decent UI...

    • packetlost 2 days ago

      I find the sqlitebrowser UI to be perfectly fine. It's not pretty, but it's a tool so who cares.

      • dewey 2 days ago

        People care about the tools they are using a lot and spend a great deal of time on finding the perfect knife, the perfect editor, the perfect scissors.

      • latexr 2 days ago

        > It's not pretty, but it's a tool so who cares.

        People who care about their tools. If I have to stare at it all day, being pleasant on the eyes is a feature. If every time I grab my tool I think “urk, this is so ugly”, it affects my flow.

  • WhitneyLand 2 days ago

    Base is nicely done, I’ve found it worthwhile over other options.

  • KlayLay 2 days ago

    In my experience, DB Browser for SQLite keeps the connection open in a way where an application that accesses the database may throw a lock error. Maybe it can be configured, but I haven't had that issue with Base.

  • jen20 2 days ago

    A nicer user interface. Personally I use datagrip but I want to encourage real native Mac software so will likely buy this anyway.

  • mrtksn 2 days ago

    Unfortunately sqlite browser was too unstable for me. I purchased another app just because I can’t stand crashing apps.

  • colesantiago 2 days ago

    sqlitebrowser is 100% open source, cross platform and free.

    I don't think Base is at all and only supports macOS

  • p_ing 2 days ago

    Prettier UI?

  • Gelob 2 days ago

    wondering the same thing

markusw 2 days ago

I've just tried it out, looks nice!

I've been using TablePlus a lot, but there are some SQLite-specific features I'd really like to have in an app:

- Foreign keys enabled by default, so I don't have to remember to enable that in every session.

- Support for loading extensions automatically. I'm using sqlite-vec for example. Right now, browsing virtual tables for that just doesn't show that much, and executing a query just results in "no such module: vec0"

I'll keep an eye on the project. :-)

  • __bb 2 days ago

    Thanks!

    Auto-enabling foreign keys absolutely should be an option. I'll make a note of it.

    I don't know about auto-loading extensions though. Will have a look. That might not mix well with the App Store rules and I'm reluctant to let the direct/app store versions drift apart in terms of features.

    • markusw 2 days ago

      Thank you for answering. That's fair re. App Store rules. Feature flags FTW? :D

      I was happy to see that FTS5 was always enabled as a compile-time option.

pinkahd 2 days ago

Today, I was searching for a nice and native SQLite browser for Mac. I went with "DB Browser" because that's what came up in my searches for "sqlite browser mac". I tried GitHub and went a bit deep in Google, but I didn't find this.

I'm glad I see this now. I guess it's time to switch.

Still can't believe this was created 15 years ago...

criddell 2 days ago

> without it turning into a massive IDE-style app

Is that another way of saying you don't want to make MS Access?

I still use Access quite a bit and I think it's pretty great. It's too bad that nothing like that exists for modern databases.

  • __bb 2 days ago

    Sort of, yes. But mostly that I don't want the app to become the "everything to everyone" style of editor. I want it to remain tightly focused on the features that SQLite provides.

    It's unlikely that I'll add a form builder or report generator to the app. I don't want it to grow until it can send email.

  • int_19h 2 days ago

    I kinda wish someone would take SQLite and make something like Access on top of it.

    Many years ago, there was a project that tried to do just that using Tcl/Tk, which seems like a fine choice - Tcl is very simple and easy to understand even for on-programmers while its deficiencies aren't really important in this niche, and Tk is one of the easiest UI frameworks around to use. Unfortunately it petered out and I can't even remember the name anymore...

wulfstan 2 days ago

I bought your app in 2010 and use it regularly. Thanks for making it!

  • __bb 2 days ago

    Thank you for the support :)

skylurk 2 days ago

Looks great! I'm tickled that you revived a 10 year old account to post this. I am also thrilled to learn about cow magnets today :)

  • __bb 2 days ago

    Thanks! While it has been quite the career change, I am absolutely up for discussing both dairy farming, software development and their overlap. That’s where Base came from!

watersb 2 days ago

I've always found database structure diagrams to be useful, and I like tools that synchronize editing the structure via the diagram or the SQL code.

I believe the macOS app OmniGraffle can do this, like Microsoft Visio on Windows.

I currently have a copy of Database Designer installed on an Android tablet, it's quite effective for my simple projects.

https://play.google.com/store/apps/details?id=com.klim.dbdes...

Database Designer developer says the app is "free forever", which is nice. App stores note in-app purchases; these are voluntary donations like "Buy Me a Coffee".

The app also has some brief demo videos that are linked as online help.

  • mistersquid 2 days ago

    > I believe the macOS app OmniGraffle can do this, like Microsoft Visio on Windows.

    I don't think Omnigraffle offers direct synchronization for editing database structures between its diagrams and SQL code.

benhurmarcel 2 days ago

Can somebody recommend a similar tool that works with DuckDB files?

al_borland 2 days ago

I was looking for something like this a few months ago and was having trouble surfacing anything. This looks nice. My work is pretty conservative on allowing me to use something like this, but I will definitely be noting it down for my next personal project where this would be helpful.

robinhood 2 days ago

Looks super nice. Congrats on the launch. Personally I use Harlequin, the TUI SQL tool, which works best for me. I don't really GUI for these kind of tools, but I can understand the value for some. Wishing you all the success with this new version.

  • __bb 2 days ago

    Thank you, that's very kind. I've always like the idea of TUIs, but found it hard to get used to them.

archeantus 2 days ago

I first bought this app 15+ years ago (before the logo was glowing). It was an incredible piece of software then, and I’m sure this is a worthy upgrade. Absolutely a delightful product.

janten 2 days ago

Happy Base user for almost ten years now. Hands down the best SQLite editor on macOS.

  • __bb 2 days ago

    Thank you for the support! It means a lot.

sneak 2 days ago

Thank you for offering a purchase option outside of the MAS. It sucks that Apple is trying to force everyone to identify themselves to install apps and some of us prefer not having an Apple ID.

RyJones 2 days ago

I saw the post on DF and bought it through the App Store. Nice tool! I have about 4TB of small-ish SQLite DBs and this is great for cracking them open and looking around.

reaperducer 2 days ago

The goal of this app is to provide a comfortable native GUI for SQLite, without it turning into a massive IDE-style app.

As an aside, feature bloat is a massive problem with macOS database tools.

I'd happily pay for something basic, native, and pretty like Sequel Ace†, but all of the other options are Swiss Army knives for power users who need to tweak every little thing. I just want to do some queries.

† I'd pay for Sequel Ace, too, if it didn't crash every time I close a tab.

julik 2 days ago

I have used Base quite a bit in the past but switched to SQLitePro as Base was quite crash-happy (and I never managed to understand why). Might give it a second try since it seems the Base development is progressing, while SQLitePro is stagnating.

keyle 2 days ago

I use Base everyday but it's leaps and bounds behind Postico for Postgres in terms of UX.

Copy pastes, duplicate rows, sorting and filtering. Sadly postico does not do SQLite.

But for SQLite as native app, there is no better than Base.

Look forward to the upgrade thank you.

Edit: thanks for row edit, that's great. What about duplicating rows or copying between tables of the same structure?

tantalic 2 days ago

I have been a happy Base user since 2011. I don't use it all that often, but anytime I need to explore a database file or take a CSV and turn it into a database for some investigation it is the first tool I turn to. Happy to be able to be able to pay for an upgrade after this long!

TheJoeMan 2 days ago

May I ask what you are using on the backend for verifying the web purchases? Is it a key, or online activation once downloaded?

  • __bb 2 days ago

    I use Paddle (https://paddle.com/) as merchant of record because I don't want to deal with the paperwork of doing more myself. In practical terms, it's a key emailed after purchase.

gkfasdfasdf a day ago

Looks like the homebrew formula is one behind the latest, 3.0.0 vs 3.0.1 on your site - is the homebrew formula maintained by you or someone else?

  • __bb a day ago

    That’s not me. I was quite surprised - in a good way - to find it there.

mjaniczek 2 days ago

As much as I don't want LLMs shoved in every product I use, writing or tweaking SQL queries with knowledge of the database schema is one of the LLM uses that work well for me. I don't know if I could jump ship from Cursor/VSCore which gives me that + Vim mode.

nopcode a day ago

With a tool like this, what's the recommended approach to deal with schema changes (migrations) for my apps/deployments using this db?

nodesocket 2 days ago

This looks great, installing now. I've been using DBeaver, but it's not optimized for SQLite. Common issue with DBeaver is having to refresh the global connection to see changes.

EDIT: Very minor nitpick but noticed I changed my icon to dark, but not taking effect. Still using light icon.

  • bdcravens 2 days ago

    What you just described sounds like the kind of marketing I feel is missing from the site: if you're already using a multi-db tool, what's compelling about this product?

    • __bb 2 days ago

      That's a good point and something I'd not considered.

      I'd say the main benefit is that it's tailored only to SQLite's features.

      You don't have to tweak a UI tailored for remote connections to work with local files. You don't need to have extra sections dedicated to user management or stored procedures which are inactive. I guess I'm saying that in this case less is more!

chambers 2 days ago

Off-topic, irrelevant question: does anyone need a local first version of Airtable? That uses SQLite under-the-hood and plugs into files and data with syncing across computers.

I’m curious (as a solo dev) if there’s a market for such a product.

  • rthrfrd 2 days ago

    Weirdly I’ve been building something along those lines for the last year. Not SQLite backed, but fully local and native (and also does non-local integrations, which you can also script yourself). Should be ready in a month or so if you’re interested!

joao 2 days ago

Customer here, from previous versions. Could you expand on the reasoning of not offering an upgrade price? Is it just to messy nowadays on the technical side, especially with the Mac App Store?

Will be upgrading in the future, congratulations on the launch!

  • __bb 2 days ago

    There’s two main reasons. One is that this is the first paid update in 14 years. The second is that it’s just such a pain to do that on the App Store and I don’t want to have a two-tier system. I’ve tried to strike a balance on the price bearing this in mind.

    • joao 2 days ago

      Understood, thank you!

vahid4m 2 days ago

Does apple allow you to to sell both through App Store and direct through another payment echo system? I thought they are more strict than that.

https://menial.co.uk/base/buy/

  • __bb 2 days ago

    Yes, it's OK to do that, but not to cross the streams. You can't advertise direct purchases from the Mac App Store version.

pickle-wizard 2 days ago

This is great, I've been needing a tool like this. I just bought a Pro license.

Alifatisk 2 days ago

Been looking for something like this, I also wish there was a way for multiple users to collaborate and interact with the same database.

Think like MySql Workbench but for multiple users, that would be incredible

  • jen20 2 days ago

    That is a limitation of SQLite no?

    • breadwinner 2 days ago

      Yes and no. SQLite can handle a small number of users. It locks the entire database while writing to it, so it can't support a large number of concurrent users.

      • __bb 2 days ago

        I realise you’ve hinted at it, but also think it’s worth explicitly pointing out that it’s more about the number of users writing than just user count. It can handle concurrent readers with little bother.

        For those who’ve not seen it already, there’s a good guide on when to use SQLite here: https://sqlite.org/whentouse.html

    • Alifatisk 2 days ago

      I am thinking of an application where multiple users can interactive with the workbench BUT the workbench performs its actions against the database as one user. That way, it could consolidate the connections into a single one

      • jen20 2 days ago

        In other words, a database server around Sqlite? That seems like the kind of thing that should exist!

breadwinner 2 days ago

Those who prefer web-based interfaces can try Visual DB: https://visualdb.com/sqlite/

  • naikrovek 2 days ago

    Who in the world would prefer a web-based database tool which you must run locally over a normal web database tool which runs locally?

    The “thick” tool will always be more efficient than a browser-based tool. It will always be more native and integrate with the OS better. It will perform better (though that may not always be visible).

    Yes I am seriously asking. The web is the worst application platform ever created, despite being maybe the only true cross-platform platform.

    • breadwinner 2 days ago

      Some people prefer native apps. Some people prefer web-based apps. Native apps are not automatically better -- there are web-based apps that work better than native apps.

      > The web is the worst application platform ever created

      That's an extreme position. Today no one is making native Windows apps because the web has defeated native apps on Windows.

      • naikrovek 2 days ago

        It is absolutely not an extreme position. It is the only position available if any intense work happens in the UI. JavaScript is SLOW. WASM is SLOW compared to native code.

        the web has defeated native apps on windows because native apps on windows are dead all on their own. not because browser applications are better, because they aren't, but because Microsoft drove those applications into the ground with clear intent.

        I don't think people realize this, but browsers are SLOW. Not just a little, A LOT. Native code will always be faster, will help extend battery life, and are far simpler to write, to understand, and to support. On top of that, there are entire classes of security vulnerabilities that simply don't apply if you aren't a browser application.

        Browser applications ARE convenient, though. But we previously solved that on the desktop and people forgot about it, so now it apparently is IMPOSSIBLE to click a single link and have a running application locally, despite it being easily done in the recent past. That can never happen again, apparently.

        I don't expect the HN crowd to understand this. I expect the HN crowd to NOT understand this, as getting your silly startup funded requires that you not understand this simple concept. There aren't any startups making desktop applications.

        I do expect technical people to understand why browser applications are bad compared to equivalently-featured native applications. But it's a faux-pas to say so anyway, because it might impact how many people give you money in the future or how much they give. People gladly trade money in exchange for ignoring inconvenient problems all day long, and without a second thought, too. Somehow, I find that anathema, despite being in the position to accept such offers several times throughout my career.

        I am really starting to come around to the idea that everyone that works at Meta, Google, or at any startup writing a web application knowing that it is easier to write despite all of the horrible tradeoffs has weak moral fiber. I think those people are sellouts. I think those people know that they are creating tools that die when the company dies, require a continuous internet connection despite knowing that a constant internet connection is not feasible for a large portion of people, and create software that uses far more energy than it should despite knowing that native code is far more efficient.

        Being an engineer means you face the problems you have, and you do not make up problems in order to create a business opportunity. But people forget all about their scruples when money stares them in the face.

        The desktop environments that we have are constructs, and as such they can be made better. They can be remade. There can be a good cross platform environment that is easy to develop for, is relatively efficient, performant, consistent, and which allows for offline use if we just want to create that. But the money is too good if you want to ignore that problem, I guess.

        • vendiddy 2 days ago

          I can't remember who I read this from (it might have been Alan Kay) but they basically said the web browser should have been an address bar with the ability to run any sandboxed applications in the screen below. They said the internet well designed but the browser was a disaster.

          So hyperlinks were good but the rest was a bad design. An HTML viewer and Javascript interpreter would have just been one possible app to run in the browser.

          It is a shame that, to this day, the browser can't easily handle running arbitrary applications. You're still effectively locked into JS/HTML.

          • naikrovek 2 days ago

            I agree with all of that. The web today took many wrong turns and each time it did everyone pretended like there was no other option.

            We’ve literally chosen the worst version of the web possible. Intentionally.

        • breadwinner 2 days ago

          Your main complaint is that browser-based applications are slow? If so you should be able to name some web apps that you think are slow and would benefit from being rewritten as native apps.

          In my opinion, native macOS apps used to be awesome, but when Apple switched to flat UI they removed one of the chief attractions of native apps: better look & feel.

          • naikrovek 2 days ago

            point randomly at any web application which does anything cpu intensive at all, such as ... drawing a graph. or checking a bunch of checkboxes after deciding which ones need to be checked. or runs javascript for anything.

            you are pointing at a web application that is slower than a native one, and which uses more energy than a native application.

            My main complaint is that everyone is avoiding the real problems because they fear that they may be too large to tackle. so, they make up other problems and solve those because they guess that solving those problems is easier. So they write web applications and mobile applications which are larger than entire operating systems like Windows XP or Windows 2000.

gwbas1c 2 days ago

> Create and modify tables with ease using Base's visual table editor. No need to write complex CREATE or ALTER statements.

I'm trying to understand who your target audience is? Normally, I think of SQLite as something that only a programmer would use. (And thus these kind of statements happen within an application.)

What kind of use cases are you handling where someone is manually creating / changing a schema?

> Import data from CSV and SQL dump files. Export your results to SQL, delimited text, JSON, and Excel formats.

IE, who's using SQLite in this way, and what are they using it for?

  • tracker1 2 days ago

    Potentially about anyone who used Access without the forms interfaces... While I'm not the biggest fan, I know a lot of people who prefer a visual editor for table schema creation. They'll use SQL Management Studio, or whatever equivalent with other DBMS and edit that way instead of DB specific queries... For example, re-ordering fields is destructive in a lot of DBMS and the queries get painful, a visual editor eases this burden.

    As to importing/exporting data (csv, etc), You can't exactly run queries against a CSV generally (I mean you can with JET/ODBC, but still)... it's a chore.

    To another point, I often feel that sqlite is a great backup format for data, it's portable, you can query directly, etc. I kind of wished that Azure Data Studio (now discontinued) had directly supported loading CSV/TXT etc into an in-memory or temp db for queries and portability similar to mentioned between various data sources (sqlite, mssql, pgsql, etc).

    • RyanHamilton 2 days ago

      >kind of wished that Azure Data Studio (now discontinued) had directly supported loading CSV/TXT etc into an in-memory or temp db for queries and portability QStudio supports right click query csv,txt,parquet via duckdb. It also supports more exotic data sources like rest apis by placing the data into a temp table. I called it babeldb https://www.timestored.com/qstudio/csv-file-viewer

  • jraph 2 days ago

    You call do everything with the sqlite cli tool, but GUIs are very convenient to explore and play with the databases.

    I have regularly used sqlitebrowser. You can even get create table statements corresponding to tables you have drafted with it, and you can copy-paste these statements in your code. Or build and test a sql statement incrementally, and paste it in your code when you are happy.

    Or even to plain browse data, explore database from other tools, etc. There are a lot of occasions where such a tool can be convenient.

  • __bb 2 days ago

    A lot of people use it as a step up from Excel.

    I’ve got quite a few scientists using it for data analysis, a whole bunch of people importing sales data for querying.

    A good number of folks never write any SQL and just use the GUI to sort/filter data.

    I’ve also heard from people who use Base to design a schema and then export the SQL into their codebase.

    EDIT: I should add that Base does nothing that that the command line tool can't. But it does offer more convenience, particularly for those who might be less comfortable writing SQL.

  • millerm 2 days ago

    > And thus these kind of statements happen within an application.

    Who made that rule? Most database tools I have used do this. I can go into SQLite's command interface and do it. It's not limited to the application.

    Not all of us want to write code for everything. Sometimes when I'm developing an app or an idea, the last thing I want to do is keep messing with cruft I don't have to. It's a waste of time to write yet another alter/create/etc script. I just click and change it. That's it, and I move on. I don't care until my design is done to export/create the creation/alter scripts, if I even need them, because I can ship a fully set up DB file with the app, I don't actually have to have scripts for that stuff. Sure, later I may need to on an update, but when rapidly prototyping I'd rather just have the quickest way to deal with it. Else, the argument becomes "Why not just use the SQLite terminal interface instead of a graphical tool?" or "Why would you create or rename a directory using Finder rather than a shell script to do it?"

    > IE, who's using SQLite in this way, and what are they using it for?

    Anyone that wants to do such things? I just recently wrote an app that runs in a browser using only javascript, but in the end I wanted the data and it exports it to JSON so I can load it into another app. I haven't gotten around to integrating these (and I probably won't) as the app is a pure browser application, but the other is a tool for creating TTML2 documents, and I need that data. So, I can easily import that. It's not a commercial thing, it's my own. So, I don't want to merge the two. I don't mind the step. This sort of thing is good. What is wrong with the ability to do so? PostgreSQL can do it. You don't believe it could be useful to export your data so that someone that isn't using SQLite can view it? Dumping a table for viewing in Excel is so common that I don't really understand why you're asking.

    There are literally billions of devices using SQLite. And within those devices, countless applications are using the thing. Do you believe it has a limited set of use cases? Heck no.

    Your questions seem like bait and I bit.

  • cosmic_cheese 2 days ago

    Visual browsers are very nice for exploring and pulling data out of databases that aren’t under your control, such as those used by apps. For example, first-party Apple apps nearly all use SQLite locally, and so with a browser you can peer into and hack on their data storage.

    • gwbas1c 2 days ago

      But then why would you:

      > Create and modify tables with ease using Base's visual table editor. No need to write complex CREATE or ALTER statements.

      • mpyne 2 days ago

        Same reason why would you build a form in VB or Xcode rather than coding it all out.

        Even if you need the actual instantiated schema to pass to SQLite in your source code, that's easy to obtain after-the-fact if this app doesn't output it directly, using `.schema` from the SQLite CLI.

  • citrusybread 2 days ago

    Not using it this way, but wanting to: a friend of mine is working on a TTRPG. He has items, powers, other things to track - and right now it's in a mess of a Word document.

    It would be so much better if he could store these things in SQL - for non developers, they often use Excel, when a SQL DB is the correct solution, just because they can't figure out SQL at all. A visual editor/manager is perfect for them - create a table with columns, enter data, later integrate with other tools that can pull it out.

  • latexr 2 days ago

    I know researchers (think field biology) who need to enter data into SQLite databases with bespoke apps but on occasion it’s imperative to edit or search the database directly. I’ve helped them do that on some butt-ugly app they had installed whose name escapes me. Looking at Base, my immediate thought was to buy it for them.

    Additionally, while I know my way around and even enjoy the command-line, on occasion I bump into some app’s SQLite database that I want to explore. I can see myself using a GUI for those instances to help me find the data I’m looking for faster.

  • LauraMedia 2 days ago

    For quite some projects, before coding anything I tested out if my logic is sane by hand-crafting a prototyle sqlite db. Really helps visualizing my thoughts how to layout the data before I start a project, work with an ORM etc.

  • da_chicken 2 days ago

    You're not sure of the target audience for an ad hoc SQL query analyzer? You've never needed to figure out a complex join for your application without trying to do it from the command line client?

  • saagarjha a day ago

    I'm a programmer and I barely understand how to use SQL so this would be useful for me

tempodox 2 days ago

Why does it need Sequoia? That’s a no-go for me.

  • __bb 2 days ago

    Because I don't have the capacity for maintaining compatibility between too many versions of macOS. For v3, I've stated the goal - not guarantee - of supporting the current and previous versions of macOS.

    Since Tahoe is likely to be released in the next month or so, I judged it better to start with Sequoia and keep it supported rather than start with Sonoma and risk needing to drop it shortly after launch.

  • armadsen 2 days ago

    Because targeting the latest release lets the developer use new APIs/features that are not available on older OSes making development more productive and pleasant.

    Of course, there’s a balance to be struck to support users, but macOS update uptake is usually pretty fast.

  • theshrike79 a day ago

    Because you pay once and that's it.

    Now if you did that and used it on your 3 versions out of date macOS, then an update came that only worked on current-2, you'd be pissed.

    Mostly only software with subscriptions can afford to keep supporting multiple versions.

reactordev 2 days ago

Nice. I used to use Sequel Pro back in the day. Now, I just use my IDE.

I like these kinds of things though. Minimal purpose built tools.

barefootford 2 days ago

This is so nice. This feels like Postico for sqlite. Definitely switching from TablePlus to this.

pietz 2 days ago

How have I never heard of this before? Been looking for a sleek, minimal SQLite client for more than a year now.

andyferris 2 days ago

Is there a proton/wine-like thing that lets me try MacOS apps on Linux or Windows?

  • viraptor 2 days ago

    In practice - no. There's Darling https://darlinghq.org/ but it only supports basic cli things for now. There was some idea for gui support https://github.com/darlinghq/darling-appkit-gui but that is not working and the project is very incomplete.

    Nobody else is working on the GUI side. I can tell because I'm working on the ibtool replacement and none of the relevant constants or required code exists anywhere on Google. It's a complete reverse engineering from scratch for anything added in the last decade.

msephton 2 days ago

Have you created any other apps? I hope the last 15 years has been kind to you. :)

  • __bb 2 days ago

    Thank you. I don't have any other public apps at the moment.

tsp 2 days ago

Would be cool if this could connect to Cloudflare SQLite DBs.

didip 2 days ago

It would be super duper cool if it can connect to DuckDB as well.

  • nicoritschel 2 days ago

    I am launching a similar tool very soon; it's built in Swift & macOS only. Here's the web version I built almost a year ago you can play with in the meantime.

    https://sidequery.dev

lukasb 2 days ago

Needed this for developing my Tauri app, been working great.

Blackarea 2 days ago

I've never had the need for a gui in sqlite. It's just sqlite3 for me and once I get to a complexity where I'd need a gui I mostly just switch to postgres

sangsattawat 2 days ago

Nice. I wish I had this during my university years.

mastermage 2 days ago

Wait doesnt DBeaver work on MacOS aswell?

ZPrimed 2 days ago

if I purchase, am I required to scream "ALL YOUR BASE ARE BELONG TO US !!" ?

  • __bb 2 days ago

    It's not required, but you can if you want :)

borg16 2 days ago

can someone tell me what are some common use cases of such a tool? may be i'm not the intended customer base, but am curious to know what others are using it for.

  • xmprt 2 days ago

    It's not for everyone but I can think of 2 use cases immediately:

    1. If you're a developer, then you're probably using sqlite to store data and having a GUI for checking/modifying the database is probably handy.

    2. Most application by other developers (even massive companies) use sqlite to store data under the hood even if the file doesn't appear to be named `.sqlite`. So if you want to tweak certain settings that aren't exposed to the end user, then you can use this to do that in a more user friendly way rather than crack out a command line tool for sqlite changes.

  • __bb 2 days ago

    To add to what xmprt and msephton have said, people have told me they use it for:

      - Storing results for scientific research
      - Local analysis of data exported from server-based databases
      - Experimenting with database designs before exporting SQL to codebases
      - Maintaining relational data where a website or app are not needed (eg. tutors keeping client records)
      - Recovering data from databases used by other products (eg. phone backups, discontinued apps)
  • msephton 2 days ago

    It's for manipulating SQLite databases with a GUI, rather than in a web page or at the command line. I previously used V2 of Base and the user interface was excellent, and this looks to be even better.

aaomidi 2 days ago

It's crazy how expensive these small utilities are.

And worse, because they're paid you don't even get the source code to fix issues yourself :/

  • nikolayasdf123 2 days ago

    40 USD, this is ridiculous

    this is on par with AAA games that have tons of creative assets, art, music, thousands of people work on them for years.. and here is a utility that did not even invent SQLite itself, not a dollar goes to SQLite creators either. rather a light wrapper over standard UI build by Apple - SwiftUI. what is the marginal contribution from creator here for this price? what a ripoff

    • saagarjha a day ago

      And yet people pay $5 to watch a movie that cost $100 million to shoot. Surely the AAA game is overpriced?

      • nikolayasdf123 a day ago

        you are missing the point. (proving yourself wrong?)

        that movie has tons of AAA-grade creatives, AAA-grade actors, tens of thousands of people work, brand new music, licenced music, photos, drawings, videos, animations and motion graphics, 3D assets, pictures, photos, whole buildings and set built for this, that borderline tiny real towns. LotR had to develop brand new state-of-the-art VFX rendering tech, which is often the case with such projects.

        VFX for say "fake" UI Iron Man suit, had to write tons of code to make it work. amount of work those movies and games take in creatives (very often it is just code) is unbelievable.

        now, with this utility app. what did it produce? not even close.

        • saagarjha 11 hours ago

          I watch the movie and it's over in an hour. I use this app and I can improve my workflow for a year. Which one is worth it?

          • nikolayasdf123 8 hours ago

            say I start charging you 40 USD for clothes you have bought from someone else, you are washing yourself, reparing, and other people made, using their own tools and materials. I did close to nothing, and yet "you will be wearing it for a year". great, but that does not mean there is no ripoff from my part. I have close to nothing to do with your clothes, even if they are obviously useful to you for next year.

            same story here. marginal contribution is too low compared to price

          • nikolayasdf123 9 hours ago

            you can pay for it 1000 USD too, nobody stops you

            but that does not mean it is "worth it". as in, marginal contribution and work people did to make it happen. banana duck-taped to a wall, same story.

  • lemming 2 days ago

    So the OSS thing is a preference, obviously, if you like OSS tools, just use them - it's not like you're short of options.

    But... expensive? Really? A one-off cost (not a subscription, mind) for a tool that might make an expensive developer/data person even marginally more productive? You have to be kidding. It blows my mind how much developers, who of all users should be the ones who appreciate how much work goes into something like this, complain so often about the cost of basic tools.

    • aaomidi 2 days ago

      TBH the author asked for feedback and I provided it.

      There’s a ton of work that’s OSS. There’s also a ton of work that’s not.

      This is a tool that I’d happily pay double the amount that they’re asking if it was OSS. I also regularly fund OSS maintainers.

      Heck I’d even be fine with a closed source by default, but pay to get source code access too.

      • __bb 2 days ago

        And I welcome the feedback, even if I probably won’t follow it. If everyone thought like you do, then it’d be far nicer to publish the code and maybe charge for support. I’m fairly confident that not enough people feel the same way to make it work.

        As to pricing, I need to be able to financially justify the time spent working on the app, and the price is one that I hope will let me do that.

        • aaomidi a day ago

          I would love for you to make the code source available if you pay.

          Or are you worried about people stealing and making pirated copies?

          • __bb a day ago

            If the code were available I would 100% expect that someone else would distribute a binary with the paywalled features unlocked and that my original version would be relegated to secondary.

            I know you could make the argument “the right license wouldn’t allow that”, but that would only be enforced if you follow up through the courts, perhaps internationally. I just can’t be doing with the hassle unfortunately.

daneel_w 2 days ago

Disappointed to see it's built with macOS 15.0 as minimum target.

TheRealPomax 2 days ago

Why is it MacOS only though? Surely this can cross-compile for Linux and Windows perfectly fine?

  • __bb 2 days ago

    As others have said, this is written using AppKit and SwiftUI, which are only available for macOS.

    This makes for a much nicer app for mac users, even if it does cut your potential audience.

  • hoistbypetard 2 days ago

    Because it a GUI that uses Mac-specific UI libraries that aren't available on Linux and Windows?

    While the database stuff works on Linux and Windows, building UIs for the 3 platforms is very different, unless you use some cross platform wrapper layer. Which isn't the purpose of this one. You might want sqlitebrowser[1] if you're looking for something like that.

    [1]:https://sqlitebrowser.org

    • TheRealPomax a day ago

      Yeah, already using that on the daily, it's just annoying to see folks go "I made something (better) and it's Mac only purely because of my UI library choice".

      • hoistbypetard a day ago

        I understand that annoyance. But that's why it can't "cross-compile perfectly fine."

  • jen20 2 days ago

    Probably because it’s written using native Mac UI instead of half-assed with electron.