January 4th, 2022
Ultorg caught my eye recently. It is pitched as a general purpose UI for relational databases.
I have noticed that great tools can often be seen as reinventions of dominant niche “RTFM” tools, brought forward to a broader (business) audience. For instance, Slack was just a productization of IRC’s best ideas. IRC was clearly a vital tool for a highly technical, power user audience, but their attitude on product onboarding was RTFM or LMGTFY. Fine for the 1% of power users, but impenetrable to the other 99%
In Ultorg’s case, I see it as
/admin1 or phpMyAdmin/MySQL brought forward to non-technical users. Like IRC, these are small tools that have massive implications on how organizations operate.
Historically, the product and business orgs have been largely separate, not only in culture, but even in data. The product teams store user data in Postgres; the business teams in Salesforce. Data flows between the two are heavily taxed, both in terms of cost of setting up data pipelines and even data “consistency” between the two systems, which tends to be measured not in milliseconds (as you do in database replication), but in hours. Worse yet, the data flow is unidirectional: the application never leverages Salesforce data, despite it being the most expensive data if you consider the amount of hours your sales team spends collecting and updating it. Even Worse yet, you have no agility, setting up new piplines takes weeks, which is insane when you only want to add an attribute for a few dozen customers. So much valuable business/customer/relationship metadata is lost because the tooling is bulky and slow.
What the actual fuck.
Problem is both tools have a lot of “weight” in the company, so you can’t just use one over the other. Postgres because you’ll never use Salesforce as a production database (did you know that API calls to Salesforce cost money?) and Salesforce because the sales team refuses to retrain in any other tool and will endlessly grumble if you try and make them. Neither system is modifiable to anyone who isn’t a Postgres or Salesforce admin (which are literal, salaried jobs at most tech companies), so everyone else (aka the back of the house teams) is stuck using Excel or Airtable or what I think of as “UI-first” database. There’s an opportunity here to serve these back of the house folks who are producing valuable data and only using these terrible UI-first databases for managing it.
Sign up for Ultorg.2 It’s kind of like Airtable, except the data isn’t stored in some proprietary format, gated by obtuse APIs with rate limits. It’s stored in a real Postgres database that you can connect to with Postgres clients and more importantly, it can foreign data wrapper to a production replica under a restricted read-only user.
I’m a customer support, no, THE customer support guy at a small startup. I’m supporting a few thousand customers, but I’ve noticed that a steady trickle of them have been asking for a small UI fix. Maybe the UI freaks out when a string is longer than we anticipated. We’re fixing it, but I want to update them once it’s fixed, both to make them feel like we care, but also to have them test the fix. The sales team has set up Salesforce, but I don’t have a licensed seat and they don’t like the idea of customer support adding new fields. What do I do?
I sign up for Ultorg, ask the ops guy to give me a real-only replica user, same permissions as one that the
admin page uses or the PM uses to run simple analytics queries. Now, I create my own
user_followup table. Every time a new person writes in, I add a column and mark that user as having emailed in about it. Now, when I see that the UI is fixed, I can easily pull up that list and email them back with the good news! Product team is happy to have feedback from customers on the fix and customers are happy to be heard.
Company grows and along with it, the customer support team. There’s five people, plugging away at adding internal metadata. Maybe there’s a special project with the legal or finance team where a few thousand customers need to be manually identified and then emailed at once. We can’t use Mailchimp because that’s for marketing emails. We either need to email them ourselves or send out a transactional email via Sendgrid. Luckily, because Ultorg data is stored in Postgres, we can actually write an application to connect and transactionally send out the email, potentially even populated with snippets entered by the support team via Ultorg. Next, you want to display a modal with a customer message to users in various orgs who have exceeded their quotas but have not yet replied to customer support. Suddenly, your main application needs to connect to Ultorg’s Postgres database and Ultorg’s data is effectively production data.
It’s not unique that Ultorg lets humans to collaborate on data (as Excel or Airtable do), but more powerfully, it allows human operators to collaborate with code. This is why the analytics use case is the least valuable. I’ve concluded after half a decade in the business that analytics are way overblown. They are data dead ends, because the data ends up on a slide in a meeting and 99% of the time, nothing changes. Instead, Ultorg has the chance to be a tool for operations, allowing back of the house people make their data operational by productizing tools like Postgres and phpMyAdmin to fit the broader market.
This approach to the market has another wondrous effect: you “sell” people on Ultorg before any other business tool even enters the room. You can sell it to founders and engineers who just want a phpMyAdmin analog for peeking into their database. Everyone has that moment when they’re just tired of psql’ing in and just wants something. This is the Sentry wedge: Sentry isn’t valuable because error logging is valuable; it’s valuable because it is the first monitoring software you install and selling this captive audience new monitoring software, like their performance monitoring, is infinitely cheaper than it is for New Relic or AppDynamics. To quote Margin Call: “There are three ways to make a living in this business: be first, be smarter, or cheat. Now I don’t cheat. And although I like to think we have some pretty smart people in this building, it sure is a helluva lot easier to just be first.”