Building Paperback
I came across Boris Buliga posting about Vulpea v2. In it he describes how vulpea is now a separated package from org-roam, and his motivations for it. I have been using vulpea functions for a while with my org-mode files, so I was very interested. More interestingly I came across his packages vui.el and vino. With vui.el you can make interfaces in Emacs using the same pattern as React, and vino is a wine management app built on top of vulpea.
Then I thought; can I make a comic book tracker in Emacs? I love comics, I have quite a collection, especially in the Spawn francise…

Yes, that is the short answer. The code is extremely messy, I just wanted to get something working, but the gist of it is that you can create notes with meta-tags and link them together. Below is the raw content of my Spawn #1 issue.
- serie :: [[id:89adef5d-a8a5-41c2-915e-feb2ea5d2fae][Spawn]]
- number :: 1
- description :: While a strange assailant stalks the city, ripping out human hearts, another otherworldly being arrives. As his mind reels, our tortured hero remembers that he struck a deal with the devil in order to return to his beloved wife - five years after his death. The man who was Al Simmons is no more. He has become Spawn.
- cover :: ./comics/collection/data/99/3c95fb-f873-4fef-b3e5-9682162a227b/cover.jpg
- credits :: [[id:91e551e7-a1ee-4776-b326-70e8e586c643][Chris Ulm]] (Editor In Chief), [[id:063713be-97ca-4d0d-b6db-e0aacf6e5bff][Dan Danko]] (Production), [[id:a73ee9d7-a2ba-4a15-8426-b186f70cf9b3][Ken Steacy]] (Cover), [[id:d7ab28dd-8240-4582-b8f6-bf2cba7a0e86][Reuben Rude]] (Colorist), [[id:4c9cc732-eb5d-454d-b524-09ac6973451a][Steve Oliff]] (Colorist), [[id:5beb711e-4b7f-434c-91d0-a8bf1cabff92][Todd McFarlane]] (Story, Penciller, Inker, Cover), [[id:5546604d-03c0-4539-9541-63baeb2880b7][Tom Orzechowski]] (Letterer), [[id:b25b0fa3-22bd-45c3-aa7b-3e3aab1da4c9][Wanda Kolomyjec]] (Editor)
- characters :: [[id:d1a1e2f2-b492-4025-9a41-6d58e7e44f26][Brock Fennel]], [[id:c6bd48dc-c3b1-45d8-a140-fb3808fcc4ac][Jason Wynn]], [[id:98278c4d-004a-4559-860c-2e1ebe4924c7][Malebolgia]], [[id:b6eff357-b385-4245-bd72-844cf4e599ba][Sam Burke]], [[id:88f71833-84c8-41dd-bd29-2419a7bbc7af][Spawn (Simmons)]], [[id:0c32d357-ed71-4998-b3b4-830841f49d8a][Twitch Williams]], [[id:304d0b1a-4c7b-4c01-99a9-ae53a720a518][Wanda Fitzgerald]]
- price :: 1.95
- store-date :: 1992-05-10
- cover-date :: 1992-05-01
- metron-id :: 55499
- teams :: [[id:35343aab-75a9-4509-b992-538bebecf2aa][Hellspawn]]
- title :: Questions, Part 1
I used the Metron Cloud API to retrieve the metadata about the comic, then I create linked notes for the credits, characters and teams. It is now possible to see what characters show up in an issue, and in what other issues they are seen. For instance, these are the issues that Angela shows up in:
[Spawn 9]
[Spawn 26]
[Spawn 28]
[Spawn 30]
[Spawn 31]
[Spawn 40]
[Spawn 43]
[Spawn 44]
[Spawn 45]
[Spawn 46]
[Spawn 47]
[Spawn 48]
[Spawn 49]
[Spawn 50]
[Spawn 51]
[Spawn 55]
[Spawn 57]
[Spawn 62]
[Spawn 63]
[Spawn 65]
[Spawn 75]
[Spawn 89]
[Spawn 96]
[Spawn 97]
[Spawn 98]
[Spawn 99]
[Spawn 100]
[Spawn 101]
I love this setup, it gives me what I want in terms of the content and the accessibility through Emacs that is not a CSV. So I will build it out to a full app.