Though I haven’t yet minted them as a 0.1.0, the package set for rookery is growing! Waterline currently uses all of the following packages in one way or another. The architecture of this package ecosystem is loosely inspired by Rust crates. The core idea is that every package makes sense in standalone relation to the core package, which provides the idea abstraction. Structure around kinds of ideas (such as #todo, #meeting, and #cfp) is then constructed using an idea’s tags, the metadata primitive in an idea that is intentionally very generic. Here are the packages as they stand today:
| Name | Description |
|---|---|
| core | Provides #idea, the atomic content unit of a rookery, and #ideate, a template to implicitly chunk blocks of writing into ideas. |
| search | Provides #search-modal and #filter-panel, two UX elements that make all ideas in a rookery accessible. Also provides a clause roles query language to allow tags filtering combined with full-text search. |
| timeline | Structures an idea with a dated lifecycle log. This is an example of how to leverage the fact that rookery’s tags are hash maps and can double as complex metadata. |
| todos | Using @rookery/timeline, provides a structured form of idea called a #todo that has closed, open, and in-progress states, as well as scheduled and deadline dates. Also provides #todo-table, an enhanced form of #filter-panel that raises high priority and imminent todos to the top. |
| meetings | Provides #meeting, another structured idea for meeting notes that has fields for personnel and the date on which a meeting occurred. |
| cfps | Provides #cfp, a structured idea for tracking submissions to CFPs (calls for proposals) such as journal submissions, jobs, and/or conference papers. |
| bibtex | A package to map BibTeX entries to ideas, with the option to augment each citation with arbitrary content. I use this now both as a way to organize notes on texts, and to network texts into other ideas. |
| slipshow | Provides #slipshow, which produces a slipshow from an ordered set of ideas. |
| pinboard | Provides #pinboard, which produces a virtual canvas with windows on a set of ideas that you can drag around. I use this currently as a brainstorming method for headings in a writing piece. |
It’s beginning to feel as though this will be the package set that I provide for the 0.1.0 release, so I’m hopeful that this will soon be ready for experimentation by others.