Hi Guys!
I have been using Coda for a while now and have designed a reasonably robust ERP system for my small infrastructure construction company. I recently came across the newly launched Snowflake Pack and that got me wondering if we were finally getting closer to a simple No-Code solution to the following:
I was hoping that I’d be able to take all the tables that I have created on Coda and with a single click (or maybe single click per table) of a button, have the same table and data structure setup be replicated into an external database. I essentially want to design my data structure on Coda and then port over that data structure and data into a SQL DB on cloud. This is because my data stored in Coda tends to get large pretty quick, so it would be useful for me to operate like:
Design On Coda
Have users start their journey of data input in Coda
Have an option to replicate data structure of the tables into an external database and shift the data from coda to that database.
Delete all entries which are over a 1000 rows (say) from the coda tables (to keep the platform light and robust)
Build queries from the SQL External database to pull back only the required data (pretty much like the example shown in the snowflake demo video) for views / analytics / etc
This kind of a use case allows me to essentially quickly go to a client, understand his data management requirements, build him a possible solution, and have his users test it out at a reasonable scale. And then move onto an enterprise solution without having to replicate all the work done.
Of course, for me the golden ability would be to pull the data into a CPanel hosted MySQL DB. Literally the most inexpensive data warehousing solution for SMEs ever!
So Power Coda users and Pack Makers, please help me out!
Building a proper MySQL pack is something I’ve been thinking about for months, but have never put any actual work into because there are just so many great potential use cases and complex associated issues to solve, that just coming up with a “v1 features spec” has caused me to “put it off” for another day every time.
The most difficult problems to solve:
Packs need to communicate with some sort of API, so apart from just installing the pack into their Coda doc, the user would also need to upload some PHP files to their webserver to setup an API for the pack to use (something like this GitHub - mevdschee/php-crud-api: Single file PHP script that adds a REST API to a SQL database). I think this would be quite a big barrier to entry for novice users, and would definitely be a big concern for enterprise users (imagine the hoops you’d need to jump through to get CSOs to endorse this!).
Packs can only communicate with a single domain for all network requests - users can’t just add their own domain when they install the pack. You’d have to create a private pack for each user with their specific domain hard coded.
And in terms of features, holy cow I just don’t know where to stop in terms of features to add to the pack. Obviously we’d need sync tables for each table in the db. Easy enough. But in addition to that, imagine how cool it’d be if you could pass a query to the pack (with joins, group by’s, where’s, etc) and retrieve a sync table back with rows from that response! Instead of returning thousands of rows from a transactions table, you could sum values up and return one row per month, just enough to display charts and graphs for reporting. Building real-time and attractive reports in MySQL and PHP is time-consuming, but if we had a pack to integrate that data into Coda… what a time saver!
Anyways, if this is something you’d genuinely like to tackle, please pop me a message. I’d love to build a private pack that’d tackle some of these for your specific use-case. Who knows, maybe that’d provide the impetus needed for thinking about a public MySQL pack in future.
If you’re looking for a similar solution that’s already built and ready to use today, Scott and I launched the XANO pack a little while back. If you haven’t heard of it before, XANO is a platform that allows you to create databases (quite similar to MySQL) but makes it easy to connect to that data from third-party tools. It automatically creates APIs for each table, and makes connections with various services super-simple (eg Auth, Payments, Analytics, etc).
Take a look, it might be just what you’re looking for: