I cobbled together two new packages as part of the rookery ecosystem, @rookery/bibtex and @rookery/slipshow. Both of these are “publicly” available on the 0.1.0 branch of the rookery repo, but I am refraining from merging anything into main and formally announcing the packages until I have a better sense of whether their APIs will remain stable. This type of prudence is becoming more and more important given the vibe-coding era. I released Rheo at least six months too early, I think, as I hadn’t used it extensively enough to present it coherently as a project. While I do feel that Rookery is usable and adds something to the knowledge base space in its current form, I have aspirations to incorporate it into my vibe engineering workflow in a way that might stretch it beyond its current form. Thus I’m holding off on giving it easy installation and the like until I’m confident that it represents its use case and API more stably.
@rookery/bibtex is a package you can use to map BibTeX citations to ideas in a rookery. In many ways, this package operationalizes a citational practice I’ve kept for some time now. I use Zotero as a repository of all my citations, and use the Better BibTeX plugin to give every citation a unique key, and sync-export my library to a references.bib file that I can use in downstream document generation. 1 The key that Better BibTeX generates for a citation, which strings together the author’s last name, the title, and publication year into something like althusserMarxFreud1991, becomes the global reference which coheres parts of my archive that pertain to the text this citation represents. For example, I’ll store the text in my archive as althusserMarxFreud1991.pdf, notes for it as althusserMarxFreud1991.notes.org, and so on.
@rookery/bibtex generates one idea in your rookery for every citation, and gives you the option to represent the citation fields schematically in the idea’s standalone page. Here’s an example of the generated idea with the citation fields footer, and there are a range of other such citation-ideas on the same website. The ideas that @rookery/bibtex generates can be augmented with arbitrary content, such as notes relating to the text or links to associated ideas, so that a citation-idea can be networked in with the rest of your rookery.
@rookery/slipshow is inspired by panglesd/slipshow. A slipshow is a generalization of a slideshow, wherein a ‘slip’ constitutes one sliver of content. This is more powerful than the slideshow concept, as a ‘show’ of slips isn’t necessarily bound to A4-like pages, and thus can appear in an infinite scroll down or across the screen, or even as part of an infinite canvas with a camera that adjusts as you move through the show. The @rookery/slipshow package lets you specify an ordered list of ideas in a rookery to power a slipshow. Currently the transitions between slips are fairly limited (moving down or across the screen), as my first use case for this package is a slipshow of todos that are ordered on account of their dependencies.
I also optimized incremental recompilation in both Rheo and rookery, as my personal rookery is now 500 ideas, and at one point was taking around 20 seconds to compile. Through some Claude doctoring, I cut this down to 2-3 seconds for first compile, and then subsecond recompilations. I don’t plan to invest too much time in optimizing until I have several thousands of ideas (which might be next week, at this rate), but around ten seconds is my upper limit, as this keeps approximately in step with how fast I understand forester to be. Typst does a lot of the work here, and it will be interesting to see how it scales with thousands of cross-references, as I don’t think that this was a use case its developers had front-of-mind while building it.