[HN Gopher] Show HN: Plato - Airtable for your SQL database
___________________________________________________________________
Show HN: Plato - Airtable for your SQL database
Hi! I've been a member of HN for fifteen years so today I'm very
excited to share Plato. Plato is an Airtable-like interface for
your Postgres or MySQL database. It's an admin panel for devs and
non-devs alike to manage your DB. We see teams use Plato for
customer support, customer success, ops, etc.. We built Plato
because we think more people should be able to build and extend
internal tools. We thought it was strange that even though low-code
is supposed to democratize development, all of the low-code
internal tool builders are marketed to engineers! Airtable is a
familiar UI that fits the relational model well, so we've been
inspired by their work. Even the engineers on our team use Plato
quite a bit, since it's often easier than spinning up a SQL prompt.
Some features: - Postgres and MySQL support - Visual query
controls (sorts, filters, hiding columns). No SQL. - Joins by
"expanding" foreign keys - Virtual columns for tracking new data
- Auto-generated backlinks for one-to-many relationships - Read-
only locking for individual tables - Virtual tables for sharing
new views with your team Plato today works on databases with a
public IP (just whitelist our IP to connect), but we're soon
rolling out an on-prem version. We can also set up an SSH tunnel
for you if you contact us at team@plato.io. We'd love to hear your
feedback! Thanks. - Michael
Author : mgummelt
Score : 78 points
Date : 2023-03-08 15:50 UTC (7 hours ago)
(HTM) web link (www.plato.io)
(TXT) w3m dump (www.plato.io)
| dopeboy wrote:
| Congrats on the launch!
|
| We use Metabase at our company (created and managed by a non
| developer). Can you share some reasons for us to switch to Plato?
| mgummelt wrote:
| Of course. Metabase is the first product I recommend for easy
| BI, but Plato isn't a BI tool. It's an ops tool used for more
| "transactional" workflows.
|
| Startups use us to diagnose support issues, track new user data
| for ops, extend user trials, manually update ML training sets,
| etc..
| bitlad wrote:
| Terrible Idea to run this kind of tool on actually
| transactional data. In our startup we have pre-defined
| scripts so a non-dev's work is actually scoped. This is free
| range access to the database. Now not just dev can drop a
| database but also a business person can delete all data.
|
| You want to scope access via a BI tool to the business
| person. That is data archtecture 101. And when the access is
| scoped a BI tool like metabase or superset services a better
| purpose than this.
| mgummelt wrote:
| I agree that open access is not always the right approach.
| Most of our users don't in fact run Plato with open access.
| Databases are read-only by default, and many provide write-
| access to only certain tables. We're also working on more
| features to scope access.
|
| - Queries restricted to certain virtual tables, to avoid
| unintentional linear scans
|
| - RBAC for scoping access
|
| - An API client for hitting administrative endpoints rather
| than cells directly
|
| Lots more on the way.
| petilon wrote:
| In your home screen ( https://www.plato.io/ ) the screenshot has
| a Purchase column that has multiple values. Does that not violate
| 1NF?
|
| The first normal form (1NF) requires that each column in a table
| must hold atomic (indivisible) values, meaning that each value in
| the column must be unique and cannot contain multiple pieces of
| data.
|
| I know Airtable has it, but this is an RDBMS focused product, and
| it seems to encourage poor habits.
| seletskiy wrote:
| I don't think it's a breach of 1NF. The "chain" icon next to
| the column name suggests that it is not a "real" field, but
| rather some kind of linked field that shows entries from the
| "Purchases" table for each user.
| petilon wrote:
| That would be cool, if true. I would like to see what the
| underlying query looks like, and whether it is efficient.
| cccybernetic wrote:
| Yes, these are essentially links to the corresponding rows
| in the child table. Airtable solves this problem via the
| "linkedRecordsField", though I'm not sure it's actually
| "solved", as the interface around them is a bit clunky and
| having more than a few is pointless as they get truncated
| and you can't see them regardless.
|
| I've spent quite a bit of time plumbing Airtable's APIs,
| and am currently developing an app around Airtable to
| address some of these issues (zemanir.com) in case anyone
| is interested.
| mgummelt wrote:
| Yep, it's a one-to-many autogenerated backlink, helpful for
| seeing every e.g. purchase for a user.
|
| The lack of backlinks is one of the big frustrations I've
| had in other DB apps, since "this thing has many of these"
| is such a common pattern.
| do_it_simpler wrote:
| Congratulations on launching! What advantages does this have over
| NocoDB which is open source?
| mgummelt wrote:
| Thanks!
|
| One advantage is that Plato is SaaS so you don't have to run it
| yourself. NocoDB's cloud offering is still in private beta.
|
| Others:
|
| - Multi database support
|
| - Virtual columns for tracking new data without modifying the
| DB
|
| - Backlinks for one-to-many relationships!
|
| But the biggest difference is probably the roadmap outlined in
| our blog post. We aim to be a general purpose sandbox for all
| kinds of internal tools. The database admin is just the first
| step.
| rnavi wrote:
| Founder of Noco here - have left the differences here
| https://news.ycombinator.com/item?id=35075827
| asavinov wrote:
| For any such tool, two questions are of primary importance:
|
| - How connections between multiple tables are represented and
| managed
|
| - How derived data is described (queries, workflows etc.)
|
| Typically such tools are aimed at simplifying data _connections_
| but normally they end up with some kind of join-like approach
| which requires high expertise and is error prone. So users have
| to deal with something they wanted to get rid of when they buy
| the tool. Plato is not an exception: "No SQL needed". Yet, I
| could not find any information on how exactly it manages
| connections between tables and how the unified "virtual table" is
| defined.
|
| The second question is about how we can derive new data from
| existing data. Ideally, users would like to have something very
| similar to Excel because spreadsheets are indeed extremely
| intuitive: we define new cells as functions of other cells (which
| in turn might be functions of other cells). In Plato I found
| "virtual columns" which should be rather useful. This is somewhat
| similar to the _column-oriented_ approach implemented in Prosto
| [0]. Yet, what is really non-trivial is how to define (derived)
| columns by combining data from multiple tables.
|
| In general, the tool looks very promising and I hope that
| additional features and additional information will make it
| really popular.
|
| [0] https://github.com/asavinov/prosto Prosto is a data
| processing toolkit radically changing how data is processed by
| heavily relying on functions and operations with functions - an
| alternative to map-reduce and join-groupby
| mgummelt wrote:
| Hey. Good questions.
|
| Pkey/Fkey joins are supported in Plato by "expanding" foreign
| keys. You can log in, connect our sample DB, and play around
| with how it works. It's pretty easy. We're soon adding support
| for generic joins as well.
|
| And, yes! We take a more structured, column-oriented approach
| than Excel. Much like Airtable. Though we are introducing an
| Excel-like formula language for defining derived values. It
| will compile to SQL on the backend, but not expose that to the
| user.
| metadat wrote:
| Is there a way to try it out without creating an account? What
| are the security implications of attaching this to my database?
| mgummelt wrote:
| No, but accounts are free!
|
| As for security, the short of it is that you whitelist our IP,
| and your DB will need a public address we can connect to. It's
| similar to how e.g. cloud Retool works. We're shipping on-prem
| soon.
|
| Here's our full security docs: https://plato-
| app.notion.site/Security-Overview-6e38fdc4daf0...
| ceesharp wrote:
| Why do all the upcoming interfaces for the Databases have no
| command line like VS Code or linear? I wish I could switch tables
| just by pressing ALT + T and typing the table name. Looks nice
| tho, good job! For me, no reason to switch from DBeaver, unless I
| can work more efficient, which is only possible if I can use
| plato without my mouse as much as possible.
| mgummelt wrote:
| You're speaking my language. I think you'll love what we're
| cooking up. Stay tuned.
| doctorhandshake wrote:
| My 2 c on first impression - you're hitting the 'Airtable for'
| language so hard and so often that I had trouble parsing out
| whether your tool was a middleware that unlocked new features for
| Airtable or not.
| beoberha wrote:
| Cool! This definitely fills a niche I've felt the pain for. I
| want to love Airtable so badly, but it severely limits how
| expressive you can be with your own data. I'd check this out, but
| I'm admittedly not interested in managing my own db somewhere.
| berkle4455 wrote:
| phpmyadmin coming back in style
| mgummelt wrote:
| Respect to the OG
| edmundsauto wrote:
| Looks great! I've never used Airtable so miss the comparisons. Is
| Plato like a faster to use version of Django admin? That's
| usually how I set up my admin UIs and one of the top reasons I
| use django.
| mgummelt wrote:
| Yep, that's another good comparison. It's been a while since I
| used Django Admin, but based on my memory these are some of
| Plato's advantanges:
|
| - Virtual columns that track new data w/o modifying the DB
| (Great for ops)
|
| - Virtual tables for saving new table views and hiding their
| implementation details
|
| - Inline edits (Django requires click through to forms)
|
| - More user-friendly queries (Subjective, but I remember
| filters in Django being tedious)
|
| There's also some rough edges in Django Admin, like IIRC for
| foreign key select inputs they have to load _every_ value into
| the frontend, which grinds to a halt for anything other than
| small databases.
|
| I'd love to have you try it out and compare. Shoot us an email!
| rmnclmnt wrote:
| Allow me to say that all the listed "advantages" above can be
| done using Django Admin to build internal tools pretty
| efficiently... and it's FOSS, can be integrated to CI/CD and
| host agnostic
| arecurrence wrote:
| Wow, there are so many of these spreadsheet wrapper around data
| products now. It feels like a new one shows up on HN every day.
| Just yesterday https://mathesar.org was on here and there's been
| at least another dozen or so in recent weeks.
|
| I suspect that the space really needs to target specific use
| cases and nail those experiences.
| petilon wrote:
| What is the maximum number of rows supported? What data types are
| supported? Do you support images and attachments?
| mgummelt wrote:
| All queries are made directly to your Postgres or MySQL
| database, so those systems define the limits. We never store
| your row data. We've had users running Plato with 100M+ rows.
|
| No image support yet.
| petilon wrote:
| But there must be a limit to how many rows you can display on
| screen efficiently, right?
| mgummelt wrote:
| Oh, yes. We load pages of 50 rows at a time, with lazy
| scrolling that loads more on demand. If you keep scrolling
| to load dozens of pages, sometimes perf can suffer, but we
| don't see that to be a common usage pattern. Most users use
| our query controls to find what they need rather than
| scrolling.
| johnbellone wrote:
| How do you compare to Baserow?
| mgummelt wrote:
| I can't say I've used Baserow, but looking at their website it
| seems like they let you create new databases (like Airtable
| does), rather than connecting to existing SQL databases.
| mindcube wrote:
| This looks awesome, and exactly what I've been thinking about.
| However, when trying to connect to my postgres db, I'm getting
| the following error:
|
| no pg_hba.conf entry for host
| mgummelt wrote:
| The user you're trying to connect with might not be configured
| in your DB. Want to shoot us a message over Intercom (in the
| bottom-right)? We can help debug.
| kunalgupta wrote:
| Love the concept. Started using BaseDash earlier for similar
| reasons
| latchkey wrote:
| "When helping our friends at a fintech startup, we saw that while
| they had spent weeks building an admin panel from scratch, their
| accountants seldom used it."
|
| It sounds like your friends didn't talk to the accountants to ask
| them what they wanted.
| mgummelt wrote:
| It's more that requirements change faster than the engineers
| can respond. These internal tools often aren't prioritized, and
| the role of any ops team (e.g. accountants) is very dynamic.
|
| At that particular company, the accountants would often come
| across new tax form data they'd need to track. Waiting on eng
| to migrate the DB was too slow.
| latchkey wrote:
| So the solution that your friends came up with didn't meet
| the needs of the accountants, which is that the accountants
| have data which is very dynamic and your friends built a very
| static system. Again, not listening.
| kgodey wrote:
| Congratulations on launching! I'm working on a open source
| project that solves a similar problem, there's so many challenges
| with figuring out UI and UX for real-life databases. Your virtual
| columns concept looks neat!
| mgummelt wrote:
| Thanks! Happy to trade notes. Shoot us an email.
| kgodey wrote:
| Will do!
| deepspace wrote:
| Someone pointed me to NocoDB as an alternative to Airtable here
| on HN a few days ago. I deployed an instance, and it does what it
| says on the tin. Supports SQL Server, Oracle and even SQLite, in
| addition to Postgres and MySQL.
|
| Do you have any additional "killer feature(s)" that might
| convince me to switch?
| [deleted]
| [deleted]
| mgummelt wrote:
| Hey deepspace. Check out my response here:
| https://news.ycombinator.com/item?id=35074506
|
| The killer feature for many users is the ability to track new
| data with *virtual columns*, which stay in Plato and never
| touch your backend DB. It lets you extend schema for new
| operations without having to run a DB migration. They're great
| for support agents or other operators to take notes, track new
| customer requirements, etc..
| Scubabear68 wrote:
| The requirement that you have a public IP for your database
| and a third party system is sucking in our data are giant red
| flags for industries with any sort of confidential or
| proprietary data.
|
| A huge strength of NocoDB is that it is run as just another
| service accessible your DB that you own.
|
| I can see Virtual Columns being interesting for reporting-
| type purposes. The mentioned use case of "notations" on data
| owned by someone else is also interesting. But again - do I
| really want someone else hosting my data? I don't know.
|
| Is the target here then basically shadow IT adding onto other
| people's data sources that they can't get the devs to change
| directly?
| mgummelt wrote:
| Yep, lots of users need on-prem/VPC deployment. It's next
| on the list. If you subscribe to our email list, you'll be
| the first to know when it's ready. In the meantime, we can
| set up an SSH tunnel for you if you email us.
|
| I think low-code and really SaaS itself has made "Shadow
| IT" here to stay. Gone are the days of centralized IT. The
| sprawl and integration of disparate computing systems is
| the new normal.
|
| But many of the engineers we talk with _want_ to provide a
| self-serve environment for tooling, because it takes a lot
| of work off their plate that they can redirect to creating
| products and infrastructure. Data teams provide self-serve
| sandboxes to their teammates for analytics. We think
| engineers will come to see the importance of providing
| tooling sandboxes as well.
| rnavi wrote:
| Founder of Noco here - Congrats on your HN launch.
|
| I see at the current state there is a massive difference
| between us and the initial launch of Plato.
|
| We do support multiple databases and there are backlinks
| available with actual value in a spreadsheet cell (I see that
| isnt supported in Plato's links). By reading about virtual
| columns I felt its like a formula column but its not (between
| I don't see formula isn't supported yet in Plato). Only one
| of our user had the virtual column request before.
|
| Mainly I see Plato does not YET support automatic Rest APIs
| for the databases, webhooks, grid view, gallery view, form
| view, webhooks, upload csv/json/excel, formulas, SQLite, SQL
| server and so many others features. Having said that Im sure
| these will be looked into in coming years.
|
| Really happy to see simple and powerful tools in this space
| were lacking and we are all trying to fill the big void here.
| xavdid wrote:
| Neat! I'm a heavy Airtable user (for personal things) that has
| been toying with moving to SQLite for some things, mostly to gain
| understanding around SQL topics. But losing Airtable's UI would
| be a pain, so I'll definitely bookmark this.
|
| Good luck!
___________________________________________________________________
(page generated 2023-03-08 23:01 UTC)