Here’s a longish history on how I came to develop Tembo, a WordPress plugin for developing database applications.
I’ve been developing database applications for thirty five years. I’ve built systems for nonprofits, small businesses, medical researchers, hobbyists, corporations, government agencies – really, anybody who needs to organize a lot of information.
From about 1995 to 2005, Microsoft Access was my go-to tool for developing database applications. Yes, I know: me and just about everybody else in the world. Let’s all just acknowledge that Access was a pretty sensational product for its day. Access is simple enough for a beginner to use (with a little help, maybe), but it also offers great advanced features for experienced programmers.
Sadly, Microsoft never managed to make Access work for the web. By about 2005, that was a big failing. People wanted their data to be available anywhere, any time, with all the convenience of the browser. Without Access, developers had to use much lower-level languages for custom web database applications. That meant a LOT more foundation work. Frameworks like Ruby on Rails helped, but development was still far from simple.
Fast forward to 2020, and incredibly, this problem still hasn’t been solved. End users who need a web database can choose an existing vertical market system – say, Salesforce if they want contact management, REDCap for medical research, Vendini for performing arts management, and so on. Some of these vertical market products are free and some are scandalously expensive. Some are highly customizable and some just make you whistle their tune, like it or lump it. But if you want to create your own web database application? Even if it’s a simple piece of software, you have to be a pretty good developer. And it’s going to take some time.
Around 2013, I started developing in WordPress, and I fell in love with its elegant and open design philosophy. WordPress is beautifully customizable: it’s not hard to build plugins to make WordPress do just about anything you like. As a database developer, I was especially interested in the mySQL database that runs, quietly, in the back of every WordPress site. What if we could take that database and open it up for use by non-technical users? WordPress was originally conceived as a blogging platform, but what if we could adapt it to become a web database development platform… something like an “Access for the Web”?
In 2014, I had a chance to try out this idea. I was working on a contract with Amnesty International USA. Amnesty needed a web-enabled system to track decisions made by its membership, as well as the actions following from those decisions. This is a classic one-to-many data structure, which is best modeled with a relational database. For years, Amnesty had tried to track this information with spreadsheets (Excel or Google Sheets), but predictably the two-dimensional grids did a poor job of tracking a multi-dimensional data set, and users of the spreadsheets were constantly frustrated.
I built Amnesty’s “Resolution Tracker” as a WordPress plugin. WordPress might seem a surprising choice for a development platform, but think of some of the features it offers right out of the box:
- User and permission management
- Constantly-updated security for application and database
- Theming and templating for visual design
- A well-defined database class
The kernel of the Amnesty solution – which uses WordPress to offer general database functionality – I named “Tembo,” from the Swahili word for “elephant,” since a good database (like the proverbial elephant) never forgets. I used Amnesty’s Resolution Tracker as a proof of concept of Tembo. And it worked. Their multiple, confusing, disorganized resolution spreadsheets were transformed into a single well-structured and attractive system, browsable by anyone with the right permissions.
But I didn’t have the free time needed to do the really hard part – that is, to give Tembo the power to build new applications through a simple drag-and-drop interface, which even a non-technical user might master. That, I knew, could take hundreds of hours of development. And I just didn’t have the time available.
In 2019, at the beloved Dev Summit conference in Oakland California, I met Erika Drushka, who was then consulting with Grants for the Web. (She’s since joined staff there.) GFTW is dedicated to exploring new ideas in “web monetization” – a way of transferring very small financial transactions over the web, say from content consumers to content providers. GFTW was planning to make a series of grants to entrepreneurs developing new uses for web monetization. I quickly saw some advantages to working with GFTW. By making web monetization an explicit part of Tembo, we made it possible for Tembo developers to earn support for their efforts. Maybe we could even monetize Tembo at different levels, so that some value could accrue to the Tembo team, to the developers of the specific Tembo application, and to an individual provider offering content on that application… all at the same time! GFTW made it clear that these early grants were meant to be interesting, risky and speculative. I had always been committed to licensing Tembo as free and open source software, and I thought it could be very rewarding to explore ways for web monetization to support open-source software development.
So I applied for a GFTW grant. And to my delight – my application was one of 95 funded this year. All of a sudden, our project has some substantial support.
With the help of the GFTW grant, Tembo will be released in the spring of 2021. I’m hoping to gather a community of users, developers and other well-wishers to work together to make sure this software actually solves some problems and makes the effort very worthwhile.