Meadow

Introducing Meadow

Meadow is a tool to help people make better sense of the vast (personal- and general-) landscape of information, acquire knowledge, organize their digital lives.

Joanna Rutkowska Joanna Rutkowska

This post presents a new tool - Meadow - that we have been building at Golem Foundation over the last 2 years.1 Meadow tries to be a tool to help people make better sense of the vast landscape of information which we’re all emerged within, help us acquire new knowledge, organize our digital life. All this without delegating authority to 3rd parties, such as AI agents.

Meadow is a visual information browser and organizer

Meadow App is similar to a file manager, except it is not just for browsing the file system, but also other kinds of information sources, such as: photo library, Web bookmarks, read-later articles, and much more.

Meadow is visually-oriented, presenting the user with a large board on which these information artifacts are placed.

We call this canvas of user’s information a meadow (non-capitalized, to distinguish it from the app’s name).

Meadow is a browser, not an editor, because we understand that people prefer to use their favorite, dedicated apps for content creation and editing, rather than an one-for-all mediocre editor.

Meadow Containers are basic organizational units

Just like files and folders are the basic items we interact with when we use a file manager, in Meadow we generalize these concepts into what we call Data Containers.

What can be represented as Meadow containers? Folders and files, naturally. PDF and Markdown documents2, together with their chapters (sections), sub-chapters, down to single pages and paragraphs. That is, the chapters of a PDF document are represented as individual containers, nested inside the container representing the whole PDF file itself. Each chapter-container, in turn, might comprise of further chapter-containers and/or individual page-containers.

The Apple Photos library is another example of what can be represented as a Meadow container. Inside it, we will find containers representing our photo albums, each of which comprise of many individual photo-containers.

A Web bookmark (i.e. a saved URL) can also be a Meadow container, thus allowing us to include the vastness of the Web resources inside our private information meadow.

Soon we plan to add support for popular read-later apps, such as Readwise Reader. This will make it possible to represent a user’s library of saved or archived articles, categorized by topics and tags, all using Meadow’s containers as organizational units.

Meadow Containers generalize the concept of files and folders.

As hinted above, each of these containers might be nested within other containers.

A hierarchy of nested containers representing a complex PDF document.

But there is more! Representing all these types of information as standardized containers gives us flexibility in copying, linking, moving, and generally arranging in whatever custom structures we feel like! This flexibility is one of the key benefits of Meadow.

A workspace organized by topic at the top-level.

Multi-parenting of containers

The ability to nest chunks of information within other, more high-level chunks, is a crucial mechanism to organize vast amounts of information in a meaningful way. Otherwise, without structure, we can easily get overwhelmed with the vastness of information out there.[^ DelegatingTo3rdParties]

A crucial feature of the good old filesystem has been that we could have created practically infinitely nested structures using folders. This has been a convenient mechanism to bring order to our large collection of files. Or so it seemed… In practice, however, it turned out to be too limiting and most people have found themselves using flat structures for storing files, typically putting all of them within the Downloads/ or Desktop/ folders ;-) This approach has become especially attractive in the recent years, thanks to the rise of sophisticated search tools, built into all mainstream operating systems.

That’s why, one of the key design principle that we have been embracing since the early days of Wildland, has been the expressive organization of containers in hierarchies based on multi-parenting principle. It means that a container can be placed in more than one parent container. For example a container with a book about Geometry can be placed inside Math/, Books/ and Current study/ containers. 3

Human-friendly spatial presentation on canvas

Container nesting and multi-parenting are powerful tools which can bring order, but can also be abused to create obscure, convoluted, human-unfriendly structures.4

To tackle this problem, Meadow relies on spatial presentation of information. A users are free to arrange and resize the containers on the canvas however they feel.

This spatial organization seamlessly conveys important additional information such as the (subjective) importance, (logical) order and relationships between containers. All in a very informal way.5

Integrations for apps and services

We think that Meadow should be a window into the various islands of user’s information landscapes. Those islands which are created and managed by all sorts of apps and services we use all the time: photos-management apps, calendars, read-later apps, PKM apps, file storage services, music and film streaming services, and many more.

Accessing these islands of information requires app- or service-specific integration plugins. We plan to write and publish many such plugins in the coming months.[^And, naturally, we also plan to make it possible for 3rd-parties to write such plugins.] Right now there is only a few of these integrations available, which include: local filesystem, iCloud Drive, Apple Photos, Safari bookmarks integration (only on macOS).

We also provide plugins which treat various data formats, such as PDF or Markdown files as providers of structured container hierarchies, as discussed above. Again, support for more formats, such as ePUBs, and some note-taking apps backups is planned for the coming months as well.

Abstracting storage away

While hiking over her unified landscape of information (aka “meadow”), seamlessly jumping between various app- and web-specific islands of information, a person might easily forget about where all these information artifacts are actually stored… Some containers will be showing content from the local filesystem, others from cloud-based file storages, yet other ones presenting albums and photos from Apple Photos library, still others content extracted from remote Web services, either personalized, like read-later services, as well as general, such as Wikipedia…

Indeed, that’s one of the stated goals of Meadow — to decouple the information from its underlying storage infrastructure, so that the user didn’t have to think: “in which app or service is the piece of information I need?”.

Being a window into information micro-worlds created and managed by 3rd-party applications and services means that Meadow doesn’t try (or want!) to be a “black hole” (or a “vault”) into which a person would put all of their valuable informations, locking them there for good! In this respect Meadow tries to follow the path of apps such as Obsidian (with which we try to maintain interoperability, BTW).

But where exactly is my meadow stored?

So, when a person adds a container to their meadow, where is it stored, really?

The root container, i.e. the top-level of the user’s meadow is represented as a folder on the iCloud Drive. Thus the content of the users’ meadow is largely accessible though standard tools: from file managers, to PKM apps, such as Obsidian, to simple markdown editors.

Meadow board reflecting the content of an FS folder.

Still, there is some amount of (meta-)information which Meadow needs to keep track of and store within its own, private database. These include information about (some of) the container’s additional relations (i.e. when a container is placed in more than one parent) and container’s placements on the canvas (board position coordinates and container dimensions). These meta-information Meadow stores within the local SQLite database and syncs between devices using the Apple iCloud’s CloudKit database. Whenever possible we also write these information to the underlying Filesystem (thus making the local DB acting as a cache, rather than an authoritative source). But some containers, notably those which — by their very nature — are not representation of file-system based sources, such as e.g. an Apple Photos Library, we use this database as the sole source of truth for these extra information. Having that said, we do plan to get rid of using the CloudKit completely at some point, moving to pure FS-based storage.6

Current state & roadmap

We have been working on the Meadow app in a small team for the last 2 years, and before that we have spent 3 years researching and building other software under the umbrella name of Wildland project.

Meadow is an app for the Apple platforms (at least for now7), for macOS, iPadOS and iOS.

Meadow uses Apple iCloud infrastructure for syncing its internal DB (CloudKit), as well as the iCloud Drive storage for its root container. The iCloud Drive storage should be easily switchable to other providers, which we plan to enable in the future. We (Golem Foundation) do not have access to any of the user data.

Meadow is an open source project.

Summary

The most significant functionality that Meadow implements is unified access to information, organized on the user’s terms. With Meadow we can place containers representing Photo albums, Web bookmarks, PDF chapters and folders all next to each other, treating all these types of information containers in a uniform way. We can further place each of these containers within multiple parent containers, creating elaborate structures to represent various kinds of knowledge.

At first sight it might seem like Meadow tries to do what hypertext and the Web has already brought us three decades ago… Yet an important difference is that in Meadow it is the user who composes her information landscape (by placing and arranging the containers however she feels), rather than the content creator/publisher as is the case with the Web.

The other important functionality (at least to the human users;)) that Meadow implements is the visual way of organization of all these information containers. By letting us arrange the containers on a large canvas, similar to how we can place shapes in a modern illustration/design software, we hope to unlock the potential to use the human brain’s machinery for spatial orientation for the task of managing informational artifacts.8

We believe these two aspects: 1. the unification of various information sources into flexible containers, and 2. visual way of presenting them on a canvas, is an important step into improving our cognitive powers :-)

Footnotes

  1. Meadow conceptually belongs into the wider initiative under the umbrella name Wildland — a set of ideas and projects we’ve been researching and developing at the Golem Foundation over the last 5 years. Still, Meadow is a standalone product, not dependent on any of the previous software we released before.]

  2. And we soon plan to add similar support for ePUB documents, with chapter-representing containers.

  3. And the Math container can be placed inside both Science and Cognition containers, both of which inside the General Knowledge container, while the Current study inside Personal.

  4. A traditional example of which might be very deep table-of-contents used in many academic or technical books.

  5. This is in stark contrast with formal approaches to convey relationships, such as those used in Resource Description Framework. Couriousily, few formal approaches lets the user to assign indicators of (subjective) importance of data.]

  6. Those who have been following our endeavors over the last 5 years might remember that one of our main goals originally was to also deliver a marketplace for the user to buy storage from 3rd-part offers. A storage which would meet user’s criteria, with regard to features, jurisdiction and price. This approach turned out to be more complex than we originally thought and so, about two years ago we have isolated these storage-related parts into a separate project called (Wildland) Cargo, which, however, we decided to terminate last year. Having that said, we still plan to enable users, in the future, to choose from several storage provides when decided where their meadow should be hosted. Right now we use iCloud Drive, simply because it was the simplest option to implement on the Apple platform.

  7. Meadow has been written in Swift, using Apple frameworks, such as SwiftUI and CoreData. This makes it not-so-easy to build it for other platforms, which are supported by Swift, but the long- term plan is to progressively make it a true cross-platform app.

  8. This features is heavily influenced by the Muse app. Muse has had a significant impact on this project. In fact if Muse was more open for cooperation and/or had more extendable architecture (or ideally: if it was an open source project), our efforts would go primarily into extending its functionality to allow access to 3rd-party information sources.]