Tembo: How we got here

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.

8 Replies to “Tembo: How we got here”

  1. I can see divergent applications from platforms for writers and artists to share their work , get paid for it, and manage client activities, to a proprietary foresight tool that allows and even guides strategists in amassing signals of the future and building forecasts in collaboration with others.

    You make it sound doable for the humanist.

  2. I work with a lot of arts nonprofits and they’re CONSTANTLY struggling with their CRMS, especially smaller orgs that really aren’t the right size for solutions that actually work for nonprofit needs (don’t get me started on Vendini, which is an absolute nightmare, or Salesforce, which is really not designed for nonprofits even if they insist it can be if you contort yourself enough) but are slightly TOO big for the really basic solutions like ArtsPeople. I learned Access as a *teenager* and found it surprisingly easy to understand & use, but the fact that it’s not web-workable of course means it can’t solve this problem — so I’m honestly really excited to hear about this project. If Tembo can actually provide an easy-to-use and customizable database plugin that my clients can use, heck, it’ll solve a problem I’ve been banging my head against for YEARS.

    1. Hi Jericha,

      Thanks for your useful comment. This gives me new ideas of ways Tembo could be applied. Version 1 of Tembo will not be powerful enough to offer all the many features of Vendini…. but maybe enough for you to create a simple arts-org-management application. You could host that application on your own website, for your clients’ use (perhaps monetized!) – or give or sell it to your clients for their own use.

  3. Hi!

    This sounds like a cool project. For my edification, will Tembo include some kind of GUI that lets me define my tables and their relationships to one another? Is it possible that I could create some RESTful API that accesses the database I create using Tembo? That’d be really cool for me as a developer who is less savvy with the database side of stuff.

    1. Hi Dexter,

      Yes, my plan for Tembo will let you create a mySQL back end with visual tools. Tembo will also offer tools for building a front end, but if you prefer you can create your own front end – either with WordPress programming, or skipping WP entirely and using whatever tools you like. If you want to make use of WordPress functionality as well, you can include the Tembo back end in a “headless WordPress site” through the RESTful API that WP now offers. Here’s a quick intro article if you’re interested. I’ll be interested in seeing what you can do with this tool.

Leave a Reply

Your email address will not be published. Required fields are marked *