We have started to plan for an indexer for email. Indexers are rule based or machine learning based models that extract structured information from unstructured content. In this case the indexer will extract structured content from email. For instance it could extract address information from the footer of a message. We will first focus on labeling emails for spam and detecting orders, receipts and newsletters. We will use Memri's shared pod feature as a way to easily create a dataset to train a model on. This will enable us to collect data from several people in an easy way.


We completed the work to port the whatsapp importer to pyIntegrators from rustIntegrators. With that there are no longer any integrators using rust (for now), which allows us to focus all our attention on the quality of the pyIntegrators library. We removed some features that include support for media types (e.g. images, audio), and expect to bring those back in the next few weeks.


We are a big fan of the Circles UBI project from Berlin. Our goal is to integrate Circles with Memri so that there is a Circles wallet available from the Memri front-ends. Most of the work for this will be in an integrator that exposes the wallet functionality to the front-ends. We have started engaging with the Circles community in order to figure out an architecture plan for this integration.


GitHub mirror

Memri is now available on GitHub! It's a funny story because was actually taken by someone else. When one of our team members emailed the holder of the name, they very graciously agreed to transfer the name to us. We feel a lot of gratitude! This now enables those that rather work on GitHub to easily access, star and fork the Memri repositories. The following repositories are on GitHub now:

We are also still available on our GitLab, and have downgraded our GitLab to the community edition to enable forking of repositories by community members.

Browser application

We have started putting more effort in the browser application because it is easier to run for most community members, than the iOS application. This sprint we've done a lot of manual testing and reported many bugs. This will be the basis for fixing those and for updating to suggest the browser application as the primary way to use Memri, instead of the iOS application.

Democratic Self-governance

Roles & Responsibilities

Memri is a democratic and self-governing organization that aims to grow in a distributed way, allowing a lot of autonomy for individuals and small groups. In order to make that work it is crucial that we have clarity on who has what role and responsibility. Furthermore we believe that authority is given by the rest of the team, therefore we must also be explicit about what authority we agree to assign to a role.

In order to get this clarity we started with a series of workshops that help create clarity of these roles. We have defined a role as a set of responsibilities and authority, and created a spreadsheet that outlines who has which role. We think it is important for each of us to understand that having the responsibility does not always mean that you have to do the action, it merely means that you need to make sure it gets done. A good example of that is the "Sprint blog post PM" who is responsible that quality blog posts get written, but does not write the posts herself.

In addition to the first step of achieving clarity on the roles and who holds them, we are also implementing a process to keep roles up to date. Each role holder is responsible for handing-off roles when they are sick or on holiday. We have a ritual for creating and updating roles which is also important for discovering missing roles or roles that are obsolete. Furthermore we will integrate roles into our feedback meeting so that we can evaluate the execution of the role (not the person!).

Schema Refactor

We continue to work hard on the schema refactor. Now that many of the decisions have been made, this sprint we focused on the implementation of the refactor across the pod, pyIntegrators and the iOS application. Work will continue with the aim to complete this before the end of the year.


This sprint we completed the work of synchronizing the state of KillBill subscriptions with the kubernetes service. We have re-architected this set up several times in order to deal with race conditions that showed up between the proxy and the kubernetes service.