Introducing Foam, a framework for building biotech data apps
For biotech organizations that are trying to better integrate their data teams by building a “digital twin” of their lab (whether or not they call it that), one of the biggest dilemmas is build vs buy. In my last few posts, I discussed why this decision is such a problem. This week, I want to talk about solutions… or rather one particular potential solution in the form of an open source project I recently started. It’s called Foam and its goal is to make the “build” option less expensive for the scope of functionality that biotech data teams most commonly need.
Foam is designed to help these teams build applications for capturing and managing lab data, particularly metadata and experiment design, that isn’t easily captured by their existing software. It’s called Foam because it fills in the gaps between these other applications - particularly the type of gaps that teams tend to fill via Excel files and Google sheets. With Foam, you can quickly define a collection of tables you want users to fill out or find things in, then incrementally add layers of functionality that validate their inputs, automate repetitive steps and hide unnecessary complexity.
Of course, there are already a number of existing low-code solutions out there that do things like this - from Notion and Airtable to more complex solutions like Appian and Mendix, and even Microsoft Power Apps. But unlike these solutions, Foam follows the model I advocated for last week, allowing developers to build apps using the IDEs, version control and CI/CD frameworks they already know and love. In fact, Foam is just a layer on top of Django and React, two libraries that many developers already know. And Foam gives developers plenty of “trap doors” to reach through and work directly with these frameworks for additional customization.
To build a Foam app, developers write config files that define a database schema and a collection of custom pages that allow users to read and write from the schema. They then use a CLI to have Foam generate custom Django and React code which they can link into servers that they manage directly. (Django will manage the database for you.) Developers can add hooks and custom functions into the schema to add a broad range of functionality. They can even write completely custom React pages integrated with the overall workflow. And once they’re ready, they can test and deploy like they would any other app. You can find more details on Foam’s Github page.
For now, Foam is very much at the experimental stage. There are a lot of features I still want to add, and probably a fair number of bugs that I haven’t yet found. My goal as I further develop the framework is to continue zeroing in on the scope of functionality that’s most relevant to biotech data teams.
And to do that I’m looking for early adopters - developers who want to try Foam for a side project, an app for their data team or anything else, whether that means migrating an existing collection of Google sheets or starting from scratch. If you’re willing to consider being one of these early adopters, please reach out to me by replying to this email, sending me an email at jesse@merelogic.net or using whatever other means you have of contacting me.