Murmurations takes a modular approach to development. What we’re building needs to be simple and flexible so that others can benefit from it too.
Now that we have the Profile Generator and Demo Aggregator up and running pulling in the initial schemas built from shared fields from the fields library, we’ve started to specify the next few building blocks we aim to develop.
The objective of each of these components is outlined below but the overall goal is to update the original WordPress plugins using modern UI tools and to separate out each of the functionality into different layers (User Interface, mapping and filtering, back-end hosting and search etc) to create a flexible, modular architecture.
None of these components will cost a huge amount – and we are hopeful that the minimal funding required, and flexibility of our approach, will encourage others to support these plans and highlight the efficiency of our open-source approach.
If you can help fund any of these components, please make a general donation via Open Collective or in cryptocurrency, or to fund a specific component use the addresses below – and if you would like to earn any of these bounties by contributing code please get in touch.
1. Updated WordPress aggregator plugin
What: Rebuild the Murmurations WP Aggregator plugin to fully implement the Murmurations v1 architecture with handling for multiple schemas and indices, deduplication and merging of nodes, and an internal configuration API that supports bundling the “white labeled” plugin in a bespoke wrapper for aggregator networks.
Why: To grow an interoperable data ecosystem, adoption should be easier than the siloed, centralized alternatives. The Aggregator plugin gives network organizations an extremely fast and cost-effective way to build a customizable, dynamically-updated map/directory of their network. For organizations that use WordPress this is as easy as installing a plugin, so will accelerate the path to widespread adoption of Murmurations.
Bounty: $2,000 ~ 85% funded already
BTC address to fund this bounty: 1BH3oRiRfhwPBgvTdUuG5cy1zP5ppMD8Wg
ETH address to fund this bounty: 0xa51164f8449021533e31752df8e1daff84f58cfb
2. React components for filterable map and directory interfaces
What: Build portable React components for map and directory interfaces (including schema-driven filters and a defined configuration API) for use in third-party sites, the aggregator WP plugin (#1), and the front-end of a hosted, embeddable aggregator (#5).
Why: High quality UX is important for growing the Murmurations network and driving adoption of interoperable data. By building re-usable components for aggregator interfaces, we further reduce the barrier-to-entry for organizations that want to adopt Murmurations, and give additional options for how an instance of a Murmurations aggregator can be built. On top of that, we get best-of-class UI tech for WordPress aggregator installations and the future hosted aggregator.
The demo aggregator is built using React, but for the code used in the demo to be portable to other systems it requires separating the UI from the demo’s specific data access mechanisms. This means defining an API for the UI components, so they become back-end agnostic tools for displaying and querying Murmurations data.
BTC address to fund this bounty: 1FGGYbDXLZX2M6Gc2kbn3M1tihMBfrQDzS
ETH address to fund this bounty: 0x41027e93685c7cd21bd710be6b8da2c76839e74c
3. Updated WordPress node plugin using RJSF
Why: The Murmurations node plugin allows any person, project, or organization to easily add their self-hosted data to the network. This update will make the node plugin compatible with the v1 architecture, by dynamically building a data entry interface from multiple schemas using the React JSON-Schema Forms component. The result: super low barrier-to-entry to the Murmurations network for a third of the internet (33% of websites run WordPress).
BTC address to fund this bounty: 1N16h9bjE91vYAAhaTGxTL5xgdwPhEpcBo
ETH address to fund this bounty: 0x76b9e98069f6f869bee1040658ad9340c11102b2
4. Hosted aggregator back end using Kubernetes and Golang/MongoDB/Elasticsearch
What: a generic “headless” Murmurations aggregator, built on the same highly-scalable, performant technology that powers the v1 Murmurations index and library.
Why: this high-powered aggregator will allow several interesting Murmurations use cases. Organizations that want to self-host the aggregator UI components (#3) can use this generic back-end if they don’t want to handle their own querying and caching of data from the Murmurations network. And, along with the hosted front end (#5) this high-performance back end will permit super simple deployments of embedded maps and directories in network website.
BTC address to fund this bounty: 17XS4DiaJ7nx4dq2kpMAoQ2jvYTQ3SJR1E
ETH address to fund this bounty: 0xa8754331b6e9fe3bff092cd239c47d826f36185a
5. React front-end on Vercel, with query parameter handling for embeddable map interface
What: React aggregator interface (#2) hosted on Vercel, and configured to pass query parameters from URL + filters to hosted back-end (#4) to retrieve data.
Why: this will enable an ultra-rapid “aggregator-as-a-service” offering for organizations that want the fastest and simplest possible full-featured mapping implementation. Organizations can simply embed the map interface in an iframe, specifying data and display parameters in the URL, and have a high-quality map UI up and running on their own web site in a matter of minutes.
BTC address to fund this bounty: 1NjDH9kZ6t4M7gnRjzQYsQhC5X1NwjwYZW
ETH address to fund this bounty: 0xa6f7976df871003a3efccbbb316411c3cf13682b