Skip to content(if available)orjump to list(if available)

Mathesar – an intutive spreadsheet-like interface to Postgres data

kgodey

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

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

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

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.

boruto

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

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.

potamic

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

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

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

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

Yes this definitely feels like MS access but open source and based on postgres which is awesome!

kgodey

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.

zokier

What about tools like LibreOffice Base and KDEs Kexi?

thomasfromcdnjs

I'd be more curious about how it differs to Metabase?

kgodey

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!

Galatians4_16

Ah. Thermians, from the Klaatu Nebula. Or was it Dalmations?

kgodey

I think it was termites. But they built a huge spaceship.

dugite-code

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

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?

gcanyon

Does anyone know if there's something similar for mysql?

breadwinner

Yes, you can try Visual DB: https://visualdb.com

akrauss

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

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

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?

insert_nick

Any chance it’s going to support PostGIS, with a map to show geometry data?

kgodey

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

mrorangewebsite

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

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

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

darkteflon

Does / how does this handle migrations? Is it happy co-existing with an SQLAlchemy or Django ORM- managed PG instance?

kgodey

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.

bitwize

I love the name. A reference to the head Thermian from Galaxy Quest.

kgodey

Never give up, never surrender!

Galatians4_16

By Grabthar's Hammer, you shall be avenged!

SteveVeilStream

Love this. Will be trying it out.

sirjaz

It would be great if this was a desktop app. That way I wouldn't need to spin up another server

somat

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

There is a docker image at least. Would be cool as a standalone tool though, I kind of agree.

gjvc

see also https://mathesar.org/ for screenshots