Project Update
The prototype version of Tembo is complete and ready for download and experimentation! Download here
Some 650 hours of development and 9500 lines of code after the project began in October, we have the bones of a free, open-source product that could prove wildly useful... and point the way to using web monetization to support open-source software development
Tembo is a WordPress plugin that lets you build relational database applications quickly and easily. You publish these applications as new WordPress plugins. You can use your newly-built plugin immediately on your own site; even better, you can distribute it to the world so that anybody can benefit from your work. A DJ can create software to keep track of music and gigs. A group of social activists can organize articles, books, authors and interventions. An independent bookstore can track titles and special offers. A volunteer group can organize donations, pickups and food boxes.... All of these applications, once built, can be instantly available to others.
Our release of Tembo is version 0.0.1, a proof-of-concept version. It walks you through a quick and painless development process, using a step-by-step interview model. When the process is complete (and this could take as little as twenty minutes), you click the "build" button and Tembo creates your new application as a ready-to-activate WordPress plugin. Version 0.0.1 shows how easy the interview process can be. The plugins generated by this version are not yet full-featured (for one thing, they don't yet offer data entry forms), but they show off custom data schemas, a menuing system, search forms, role-based permissions, and clean install/uninstall.
A point of great interest for the Grants for the Web community: Tembo implements a unique two-leveled web monetization model. The developer who uses Tembo to build software can monetize that software simply by adding a token when prompted. At the same time, the developer is asked whether the original Tembo team should receive some benefit from that monetization. If the developer agrees, she then determines the percentage to go to the Tembo team, using a slider to choose anything from 10% to 100%. Erika D. at Interledger pointed us to this article by Ben Sharafian, which gave the wonderfully simple idea of sharing revenue by probabilistic assignment of respective pointers.
Web monetization is an intriguing topic for open-source software development. The modern economy truly runs on open-source software, and yet the models for rewarding open-source engineers are still far from clear and stable. Tembo experiments with one way that software developers can be compensated (perhaps in multiple levels) through web monetization.
Progress on objectives
- Set up infrastructure for developing Tembo as an open-source project
This involved setting up a project website and a GitHub repository. Both are complete and ready for expanded community participation.
- Attract early adopters to the project.
After attending a number of community events and talking to open-source initiators, it became pretty clear that the best way to attract early adopters would be to publish an early, viable version of the software as proof-of-concept. With that version now complete, we can begin to make a more compelling case to potential partners.
- Release an early viable version of Tembo
Now complete!
- Support developers in using Tembo to create monetized, web-enabled database applications
The 0.0.1 version of Tembo is best considered a demo version; it's not yet ready for developers to build fully functional applications. The challenges of building software that builds software turned out to be somewhat more formidable than expected. Consider the problem of fixing software bugs. It's not enough to fix the code in the built software; one most go one level of abstraction further, to find and correct the error in the mother code that created the error in the daughter code.
- Promote Tembo through conference workshops, forums, blog posts and at least one white paper
2020 was not a banner year for shmoozing. We attended a number of excellent conferences in their covid-year online incarnations, including All Things Open, WordCamp, OpenSource 101, DevSummit and MozFest. These provided a wealth of insight, information and new connections. Unfortunately, the spontaneous side-chat experiences (which are really the most important part of conferences) are all but lost in the online versions. We're hoping for many chances to promote Tembo now that live conferences are beginning to return, especially now that we have a real product to show off.
- Documentation & lessons learned
Still to come! The initial version of the software has only just been published, so now is the time for the documentation part of the cycle.
Key activities
Coding, coding, coding, and coding. Javascript, PHP, CSS, and of course WordPress - in this case not (as so many people consider it) as a blogging platform, but as a software development platform.
The entire project is licensed as open source under GNU GPL 3.0, so every bit of the code is freely available for inspection, derivation and improvement.
Some of the grant period has been devoted to outreach. We attended a number of conferences (all online, given the covid-19 pandemic) on open-source software and community technology, in order to learn and share ideas. We developed the nice-looking Tembo website and our GitHub repository as entryways to potential partners in developing and publicizing the Tembo project.
In fact, though, much the greatest share of grant activity has gone into developing Tembo as solid, well-considered software. We had originally hoped to recruit open-source software engineers as contributing partners early on. But the eventual learning was rather that open-source developers want some concrete idea of the project they're working on. Since open-source developers often (though by no means exclusively) work on a volunteer basis, the project must be compelling and attractive enough to draw their interest. Now that we have a strong proof-of-concept we can begin to build a development community.
Communications and marketing
See discussion in sections above. Given the unexpected intensity of the software development process, and the challenges of broad contact during lockdown, we focused more on software engineering in the grant period, and look forward to more communication and marketing in months ahead.
Whatβs next?
So much more ahead!
- Presentations and demonstrations at conferences, meetups, etc.
- Recruitment of partners interested in software development, graphic design, documentation, outreach
- A truly useful version 1.0.0 of Tembo and submission to WordPress for inclusion on the WordPress plugin site
- A brief, lively video describing and demonstrating Tembo
- Comparison charts: feature comparisons with tools like Google Sheets, Google Forms, Zoho Creator, Airtable, Microsoft Access, REDCap
- Looking for funding opportunities to continue the work at full speed.
What community support would benefit your project?
I would love help with:
- Connection with interested partners, whether in software development or project development
- Links to funding opportunities
- Big-picture musings on directions and opportunities
Additional comments
This has been a great project. I loved the chance to do this work. A big thank you to Coil and the Grant for the Web staff and community.
Top comments (3)
Nice work Josh! I've done a ton of WordPress in my day and this seems like a really sensible project. Historically I've either used ACF Pro or code-level customisations and then custom front end stuff to pull it all back. The idea of being able to bake things in a more direct way makes a ton of sense. Have you considered using ACF Pro as an option to help manage the CMS UI and data validation side of things? It's a very well-known plugin and I imagine there's at least a chunk of overlap there?
Hi David - Hey, thank you for reading the report and for your thoughtful reply.
ACF is a great product and no doubt the right choice for certain use cases. Tembo is more ambitious in its modest way. It's meant to build an entire custom application - with menus, forms, and subforms - using a normalized relational data model. If that's something that you have had occasion to build from scratch, I'm sure you'll appreciate how that goal differs from ACF's nice and wide menu of individual custom fields. Not to mention that a simple application can be built and deployed in hours...
Another way of saying it: ACF (and the great majority of plugins) see WordPress as a content management system. Tembo is a plugin that sees it as equally an application development platform. As you know (better than most!), products like WooCommerce make the most of that opportunity. Tembo means to give some of that to end users who don't necessarily code.
I'm following you now, to stay posted on your work w/monetization and WordPress. Looking forward to learning more of what you're working on.
Hi Josh, thanks for the reply and I do get it. Hope you're enjoying working on the project. Hopefully the first in my content series will be out before long!