Hey everyone! I'm Max from BaseDash (
https://www.basedash.io). BaseDash is an internal tool that lets you edit your production database with the ease of a spreadsheet. It's like being able to use Airtable to manage your company's internal operations.
I was working on a side project a few years ago that required a lot of manual data management. I was using Django Admin which was fine, but wished I could just set up a two-way sync between my SQL database and Airtable (without any crazy Zapier workflows).
After building a quick prototype as an internal tool, I realized that there was a space missing for a product somewhere between an admin panel and a database client. Something with an amazing interface that's usable by both engineers and non-technical users who need to access data within their company (e.g. customer support, operations).
From there, I built BaseDash with a strong focus on expanding upon existing tools I love, with extra care and polish. The resulting product is a polished, opinionated internal tool, with all the functionality most companies need out-of-the-box.
Being a web app, there are some great features that BaseDash enables for cross-functional teams. BaseDash keeps a full edit history of all changes made, makes it super easy to share access to teammates, and enables Google Sheets-like real-time collaboration for editing data.
We currently support most SQL databases (PostgreSQL, MySQL, Redshift, SQL Server, MariaDB), with support for MongoDB and Firestore on the roadmap. We offer a hosted version, or you can host it yourself on-prem.
We're still in early access but happy to invite the Hacker News community to try the product out. We're currently focused on small-to-medium sized software companies, with a combination of engineers and non-technical users. Try it here: https://www.basedash.io and let me know what you think!
The reason we typically don't directly edit production data like this is because of application level concerns or validation.
I think it's important that any tool like this allows a way to replicate that safety in some way, otherwise it's as risky as using a GUI client directly. Access control (which this does) addresses security and starts addressing safety, but there's a lot more necessary to get to the safety that is often enforced at the application level.
There's an argument that the validation should be in the database, and that's nice when it's possible, but it's often not. For any application using Rails/Django, anything else along those lines, anyone interacting with the database mostly via an ORM, will typically not be putting this sort of validation in the database in _all_ cases – thinking about enums, fixed slugs, relative dates, timezone support, etc.