NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Mathesar – an intutive spreadsheet-like interface to Postgres data (github.com)
myflash13 3 days ago [-]
Almost. There are a million tools like this, but most "don't get it". The problem with TablePlus, DataGrip and most other GUIs for databases or even Airtable clones like NocoDB or VisualDB is they lack the 3 core features I want. Atleast this tool has 2 of the 3, which is already an improvement to anything else I know of.

1. Ability to view relationships inline. It's shocking that most GUIs for databases don't do this. I don't want to see a foreign ID, I want to see a sample of the related row. Glad this tool gets it.

2. Filtering and grouping and views. Not simple SQL WHEREs but easy filters. And grouping by header. This is what made Airtable king. Glad to see it is covered here.

3. AI-generated queries and reports. Sorry, but it's 2025 and you release a product without AI? It's now trivial to generate correct SQL queries and graphs based on natural language. Why doesn't any mainstream tool do this? See for example: https://www.youtube.com/watch?v=ooWaPVvljlU

Having all of these 3 core features together in the same tool would be the holy grail for me in database management.

3 days ago [-]
kgodey 4 days ago [-]
Mathesar project lead here, it's a nice surprise to see this on the front page! I'm happy to answer questions if anyone has any.
igor47 4 days ago [-]
How does this compare to retool? I've been using that to build UIs directly on top of Postgres, and it's been nice to be able to design the screens a little; eg inserting new rows linked to a currently selected row by primary key. Curious if you're targeting primarily a spreadsheet-like view, or if the interface can be customized. How does the spreadsheet view work across multiple linked table? Can you present the tabular info in non tabular ways (e.g. a row details or editor view)
kgodey 4 days ago [-]
We don't have any ability to customize UIs yet, although we're certainly open to feature requests.

We do have a "Record Page" for each individual record that shows a tabular view of related records from other tables, here's a screenshot from our website: https://mathesar.org/_app/immutable/assets/step-2.CKT9S1j0.a... - you can create new linked records directly there.

As for working with multiple linked tables, while editing data, you can search through nested links easily, here's an screenshot illustrating the record selector: https://mathesar.org/_app/immutable/assets/step-3.SKu3rwM2.a...

We also have a visual query builder that can join data across tables: https://github.com/user-attachments/assets/7ff100fe-cd26-422... and https://github.com/user-attachments/assets/0df680d3-621d-466...

I hope that helps!

savolai 4 days ago [-]
This would probably work for us but being able to

* do unit conversions by a multiplier - showing converted values in ui and converting on read and store

* hiding some (empty and irrelevant for specific situation) fields conditionally on values of other fields

would make this a much better fit.

kgodey 3 days ago [-]
Thank you! Where would you need to hide these fields?

If you had some time, it would be great if you could make a GitHub issue with more details about your use case! https://github.com/mathesar-foundation/mathesar/issues

j45 3 days ago [-]
I'll be trying this out for my needs, it seems closer to what I've wanted.

Along the way other nice projects for slightly different but also overlapping use cases include teable.io, budibase and supabase among others.

potamic 4 days ago [-]
Your website says you're a non-profit. Do you have any monetization plans down the line, otherwise how are you planning to maintain funding?
kgodey 4 days ago [-]
Here's some background info on our current funding: https://mathesar.org/blog/2024/03/28/mathesar-foundation-ann...

We're working on multiple options for sustainability, both the traditional nonprofit route (major donors, individual sponsors, etc.) and also looking into revenue from hosting or services. We're committed to always being 100% open source and self-hostable no matter what.

amarant 4 days ago [-]
How do you differentiate from, say, dbeaver, or any similar database management software? What's the main reason to get Mathesar instead of DBeaver?
sixdimensional 4 days ago [-]
I'm not related to the author or developers, but this appears almost like an Airtable-like (or Nocodb) UI on top of postgres, so it's really quite a different experience than a full database manager tool/IDE like DBeaver or DataGrip.

I love it personally and it looks pretty good so far. Also, amazing that the team started it as an open source project under a 501c3 nonprofit as well.

Having a more "spreadsheet" (or I would say, MS Access-like) UI is quite cool for certain use cases (e.g. low/no-code but backed by the full power of regular old Postgres). Can allow pretty agile development, although - it can get out of control if not managed with care... but nice to see the access controls/permissions there to help a bit.

All interesting choices, looks cool!

Imustaskforhelp 4 days ago [-]
Yes this definitely feels like MS access but open source and based on postgres which is awesome!
kgodey 4 days ago [-]
sixdimensional covered this pretty well, but just to reiterate, I believe DBeaver is primarily a desktop app aimed at a technical audience. Mathesar is web-based and designed to have an intuitive, collaborative, spreadsheet-like UI for non-technical users who know anything about SQL or DB concepts. Also, Mathesar has deep integration with Postgres features e.g. you can configure roles and privileges through the UI.
irq-1 3 days ago [-]
> ... spreadsheet-like UI for non-technical users who know anything about SQL or DB concepts.

All the language is DB: it's tables not spreadsheets, records not rows, etc... It also doesn't hide things like 'schema' button or metadata like table description.

Maybe this project could do things like integrations with web services, easy actions on groups (like paste a list of ids and do something to all those records), and publicly available web pages (surveys, donations, pretty event pages.)

kgodey 3 days ago [-]
Just a heads-up, I’m opinionated on this!

Every app has some terminology you need to learn to use it effectively, we just think that terminology should actually map to how databases work, rather than being an arbitrary abstraction. Instead of inventing our own terms, we stick to tables, records, schemas, and relationships so that users who learn Mathesar are also learning concepts that translate directly to Postgres (or relational databases in general).

Making software approachable isn’t about hiding complexity, it’s about presenting it well. The UI patterns you use determine whether a system feels intuitive, not whether the underlying mental model is simple. A well-designed interface can make even complex concepts feel natural, while a bad one can make simple tasks frustrating. Mathesar doesn’t make databases approachable by pretending tables aren’t tables, it makes them approachable by using familiar interactions, and progressively exposing functionality as you need it.

We do want to work on surveys ("forms") soon, and we're definitely thinking about bulk actions and integrations as well. Please feel free to open a feature request on https://github.com/mathesar-foundation/mathesar/issues for anything that would particularly help your use case.

MrDrMcCoy 2 days ago [-]
> Making software approachable isn’t about hiding complexity, it’s about presenting it well. The UI patterns you use determine whether a system feels intuitive, not whether the underlying mental model is simple. A well-designed interface can make even complex concepts feel natural, while a bad one can make simple tasks frustrating.

This could not have been better said.

zokier 4 days ago [-]
What about tools like LibreOffice Base and KDEs Kexi?
philkrylov 1 days ago [-]
The main problem with them is they are not working yet and there are not enough people working on improving that.
kgodey 3 days ago [-]
I think they're pretty different use cases. LibreOffice Base and Kexi are desktop database frontends focused on local databases, while Mathesar is web-based, self-hosted, can be connected to a remote database, and built for multi-user collaboration.
anonym29 4 days ago [-]
Far too technical for the target audience, who has never heard of a "linux" and doesn't care about cost, software freedom, the petite tyranny happily imposed by corporations, etc, they just want it to "just work" on their smartphone browser.
thomasfromcdnjs 4 days ago [-]
I'd be more curious about how it differs to Metabase?
kgodey 4 days ago [-]
Metabase is a BI tool focused on querying, reporting, and visualization, but it’s read-only. Mathesar is closer to Airtable, you get a spreadsheet-like UI, you can view and query data like Metabase, but you can also add and edit data or even modify the data model (if the permissions allow it). Unlike Metabase, Mathesar also lets you create a database from scratch rather than just connecting to an existing one.

Metabase adds an abstraction layer with concepts like questions, segments, and metrics, while Mathesar works directly with Postgres tables, schemas, and permissions. Mathesar is deeply integrated with Postgres, so it supports Postgres-native features like role and privilege based access control, which aren’t possible in products designed for multiple database backends.

I hope that helps!

sirjaz 3 days ago [-]
Any plans to test and support this on Windows Server, since there is nothing directly tied to Linux from what I can tell.
2 days ago [-]
maxloh 2 days ago [-]
I think the better way to achieve that would be just using the Docker container.

There should be any notable performance decline, since the Python backend is just an API proxy towards PostgresSQL database servers.

kgodey 3 days ago [-]
We don't have the capacity to do that internally, but we were thinking about having a "Community Guides" section of our docs where people could contribute guides to setting up Mathesar on different infrastructure. Let me know if that's something you'd be interested in contributing to!
boruto 4 days ago [-]
I tried to propose this to our team, But the option that it installs some schemas was a blocker. I do like using this tool on local pgdump.
kgodey 4 days ago [-]
Yeah, I understand why that would be a concern. For what it's worth, our schemas are completely isolated and never touch any other data. We use them to store our DB functions and custom data types.

The functions are what lets us reflect the latest DB state in the UI in real-time without worrying about schema migrations or adding a bunch of reflection queries to each API call (which would make the UI much less responsive). We just need them installed _somewhere_ in the database.

Our custom data types (e.g. email, URL) are just available for convenience. If you don't have any columns that use those types, then you'll never need to deal with them.

Galatians4_16 4 days ago [-]
Ah. Thermians, from the Klaatu Nebula. Or was it Dalmations?
kgodey 4 days ago [-]
I think it was termites. But they built a huge spaceship.
maxloh 3 days ago [-]
Any comments on Outerbase?

That poped up on HN too a few weeks ago.

zackdotcat 3 days ago [-]
I'm not OP but from my experience with both tools there are some main differences within the products:

1. Mathesar includes a lot of cool UI elements for CRUD operations on tables, schemas, and columns. Outerbase doesn't have any UI for this, but only a SQL editor.

2. Mathesar has a lot of support for "relationships" (more accurately described as references in Postgres, but I digress) that Outerbase does not. For example, if you're inserting a foreign key column into Outerbase you have to manually type the value of the column you're referencing. In Mathesar, you'll see a dropdown of all the "related" rows and be able to search through their columns to find the record you need.

3. Mathesar is postgres-exclusive, while Outerbase works with many other DB providers.

And more in terms of governance and usage:

1. Outerbase is paid, with a very restrictive free tier. The option to self host is only available to enterprise customers.

2. Mathesar is entirely free and self-hosted.

dugite-code 4 days ago [-]
It's a great looking interface but I have the same gripe with the tagline that I have with Grist's. It's really not spreadsheet like is it? You just don't have the row and column manipulation possibilites that defines a spreadsheet vs a table.
kgodey 4 days ago [-]
Thank you! And yeah, I understand your gripe. The tagline is meant to convey the general idea of "editing data in a table UI without a lot of clicks or keystrokes" in the fewest number in words; it does sacrifice precision (although that's why it's "spreadsheet-like" and not just "spreadsheet"). Do you have any ideas for language we could use instead?
bitwize 4 days ago [-]
I love the name. A reference to the head Thermian from Galaxy Quest.
kgodey 4 days ago [-]
Never give up, never surrender!
Galatians4_16 4 days ago [-]
By Grabthar's Hammer, you shall be avenged!
insert_nick 4 days ago [-]
Any chance it’s going to support PostGIS, with a map to show geometry data?
kgodey 4 days ago [-]
This is one of the things we're actively considering working on soon! It's mentioned in the "What's next?" section of our beta release announcement: https://mathesar.org/blog/2025/01/29/release-0-2-0
teleforce 3 days ago [-]
Great, this will be very handy for Just Use Postgres crowds [1], [2].

Just wondering what's the main different between Mathesar with NocoDB and Baserow?

Is Mathesar planning to become Airtable open source alternative as well?

[1] Just use Postgres for everything (430 comments):

https://news.ycombinator.com/item?id=33934139

[2] Just Use Postgres!

https://www.manning.com/books/just-use-postgres

kgodey 3 days ago [-]
NocoDB is a universal database GUI that supports multiple backends, while Mathesar is Postgres-only but deeply integrated with its native features, like using Postgres roles and privileges for access control. NocoDB also adds its own UI-level abstractions on top of database objects, whereas Mathesar directly reflects the database structure. That said, NocoDB has features Mathesar doesn’t yet support, like kanban and calendar views, forms, and more Airtable-like data types.

Baserow is more of an open-source Airtable alternative and doesn’t connect to existing databases at all—unlike Mathesar and NocoDB. It has many of the same UI-driven features as NocoDB, such as different types of views and forms, but it doesn’t function as a database interface the way Mathesar does.

Mathesar, however, has a visual query builder that allows joins and query creation directly from the UI, as well as some data modeling tools, like moving columns between tables and merging duplicate data—neither NocoDB nor Baserow offer these. Mathesar is also 100% open source, while both NocoDB and Baserow follow an open-core model with paid features.

We do want Mathesar to be competitive as an Airtable alternative over time. You can already create a database from scratch (we’re not just a GUI for existing databases), but we’d likely need more data types, views, and integrations before it can match Airtable across a broad set of use cases.

And Postgres is definitely amazingly versatile! That's one of the reasons we were comfortable focusing on it as the only supported DB backend for now.

mrorangewebsite 4 days ago [-]
I'll try to install this sometime. The permissions bit looks nice. It's nice to see a project that isn't reinventing the wheel. Is there a SQL editor? I don't see anything about one in the docs but that would be a bit of a dealbreaker for me.
kgodey 4 days ago [-]
Thanks! We do not have a SQL editor in the UI yet, but it's one of the things we're actively considering working on soon, it's mentioned in the "What's next?" section of our beta release announcement: https://mathesar.org/blog/2025/01/29/release-0-2-0

I'm not sure if this would fit your use case, but you can also use a separate SQL editor alongside Mathesar, we always reflect the latest state of your DB.

neoecos 4 days ago [-]
This looks exactly like something my finance team asked me for yesterday. Definitely will take a look. In my startup (a fintech) we tried to keep all the information about money in the DB, and have the finance team use that to compare with actual bank information
xk3 3 days ago [-]
You should take a look at Ultorg--not the best name (then again Mathesar is not much better...) but there is a lot of powerful and intuitive UX stuff in that project.
kgodey 3 days ago [-]
Ultorg is awesome! Eirik (Ultorg's founder) and I compare notes every once in a while. :)
gcanyon 4 days ago [-]
Does anyone know if there's something similar for mysql?
kgodey 3 days ago [-]
As a side note, we _are_ considering adding support for other database backends through Postgres foreign data wrappers: https://wiki.postgresql.org/wiki/Foreign_data_wrappers. If this is something you'd be interested in, please feel free to open an issue on our repo.
gcanyon 3 days ago [-]
Thanks for the response! What would be the benefit compared to VisualDB, suggested here also?
kgodey 2 days ago [-]
If you like Mathesar’s approach but need to work with MySQL, FDWs would let you connect a MySQL database to Mathesar for data entry and querying. This could be useful if you also have Postgres data and want to work with both in a single interface, or if you wanted things like cross-database queries between both DBs.

That said, if you’re only using MySQL, FDWs add an extra layer, and something like VisualDB, since it’s built for multi-database support, would likely be a more natural fit. The main advantage of Mathesar in this scenario would be if you want something open source and self-hosted (VisualDB looks like proprietary SaaS) or if you just like our UI and user experience.

breadwinner 4 days ago [-]
Yes, you can try Visual DB: https://visualdb.com
gcanyon 3 days ago [-]
This looks interesting, thanks!
akrauss 4 days ago [-]
I can see this being very useful for many admin interfaces where some basic data must be managed by domain experts and UX and is not a priority. Many enterprise applications have such parts.

I wonder what the GPLv3 licensing means for such scenarios: Could people run Mathesar one microservice in an ensemble with proprietary services? Companies who don‘t want to open source their whole product might still be willing to upstream their fixes and improvements to the Mathesar component.

kgodey 4 days ago [-]
Yep, Mathesar is GPLv3, not AGPL, so there’s no issue running it alongside proprietary services. Companies can absolutely use Mathesar as a standalone service in their stack without open-sourcing their other components. Another example of this is WordPress, which is also GPL, and has a thriving hosting ecosystem.

GPLv3 only applies if you modify and distribute Mathesar itself, it doesn’t extend to services that simply interact with it. If a company makes changes to Mathesar and distributes that modified version, then those modifications would need to be open-sourced under GPLv3. But using Mathesar as a microservice in an enterprise stack? No problem.

We’d love to see companies upstream fixes and improvements, of course!

red_trumpet 4 days ago [-]
Does AGPL have trouble running alongside proprietary services? I always thought AGPL means that if you host the software, you have to make any changes you did available to the users. So if you host it without changes, there is no problem?
kgodey 3 days ago [-]
Yep, AGPL can run alongside proprietary services without issues, and if you host it without modifications, you don’t have to share anything. But if you modify it and make it available over a network, you have to provide the source to users.

Mathesar, however, is GPL, so you only need to share modifications if you actually distribute the software itself.

yandie 3 days ago [-]
When I was at a big tech, the interpretation by their lawyers was that by running AGPL, we will have to open source everything in the network to users. The problem is in the definition of "Modification" - Per [AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html#:~:text=To%20%...):

> "The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities."

This can be interpreted as even modifying any configuration to allow the software to run on your own infrastructure. Obviously this is a very aggressive interpretation but the lawyers didn't want us to test this phrase in court so all AGPL software had a blanket ban.

darkteflon 4 days ago [-]
Does / how does this handle migrations? Is it happy co-existing with an SQLAlchemy or Django ORM- managed PG instance?
kgodey 4 days ago [-]
Mathesar doesn’t cache any database state, it always reflects the live structure of the database. If you run migrations through SQLAlchemy or Django, Mathesar will just show the database as it is before and after the migration, no extra steps needed.

You can also modify the data model directly in Mathesar, but if you’re using an ORM-managed database, you’ll need to update the ORM layer yourself to reflect any schema changes. If your ORM expects strict control over the schema, it’s a good idea to configure our permissions to prevent users from making data model changes in Mathesar's UI. Otherwise, it should coexist just fine.

SteveVeilStream 4 days ago [-]
Love this. Will be trying it out.
ycombinatrix 3 days ago [-]
Is this named after the character from Galaxy Quest?
wantoncl 3 days ago [-]
By Grabthar's hammer, I hope so.
wkat4242 3 days ago [-]
Named after Enrico Colantoni's character in Galaxy Quest? That was so funny <3

Only spaceballs was a better scifi parody movie and that is hard to beat.

gjvc 4 days ago [-]
see also https://mathesar.org/ for screenshots
sirjaz 4 days ago [-]
It would be great if this was a desktop app. That way I wouldn't need to spin up another server
somat 4 days ago [-]
At least it's not an electron app.

Every single time I see an electron app, I wish there was a way to deelectronify it and just run it as a server.

Mainly I am bitter because I run an openbsd desktop and would have a pretty good chance at getting it to run if it were a normal web app. cross platform my elbow.

sixdimensional 4 days ago [-]
There is a docker image at least. Would be cool as a standalone tool though, I kind of agree.
greenie_beans 3 days ago [-]
this looks dope!
3 days ago [-]
peppertree 3 days ago [-]
Mathesar repo is heavily optimized for commit count. Large number of commits are spelling/padding changes. This should set off alarm bells for anything looking to use this.
zackdotcat 3 days ago [-]
These are bizarre claims. Go look at the commits. It's quite reasonable for a serious software project to have a feature freeze and lots of documentation-related optimizations before a release.

If you go back about a week, all of the commits relate to adding and modifying app functionality.

sophacles 3 days ago [-]
Why is lots of little commits a problem?

How is that evidence of optimizing for commit count as opposed to lots of people submitting PRs to cover low hanging fruit?

What does optimizing for commit count achieve for anyone? In what context does "lots of commits" gain someone enough value to optimize for it?

mpalmer 3 days ago [-]
Read the code, not tea leaves
peppertree 3 days ago [-]
Project activity is indicative of whether it will be supported in the long run. The fact that Mathesar's admin hid the line change count under insights, and padded the commits looks like a feeble attempt to impress investors.
kgodey 3 days ago [-]
Well, we're a nonprofit, we don't have investors :) Also, I'm pretty sure any investor who cared about commit counts would be a terrible investor.
peppertree 3 days ago [-]
Let’s be transparent and unhide the line change count under your insights tab.
kgodey 3 days ago [-]
If you're referring to the line count being omitted here: https://github.com/mathesar-foundation/mathesar/graphs/contr..., please submit your feedback to the GitHub product team, we have no say in their decision. There are some other complaints about that decision here: https://github.com/orgs/community/discussions/135572
gjvc 3 days ago [-]
Let's not pretend to care about how someone uses their tools.
add-sub-mul-div 3 days ago [-]
This site, man.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 05:48:43 GMT+0000 (Coordinated Universal Time) with Vercel.