Prologue
For centuries, printed documents were the primary means of distributing knowledge and ideas at scale. That mechanism, coupled with our intrinsic human tendency to curate, produced libraries at every level of society—homes, offices, schools, cities, nations—creating centralized pockets of intellect.
Unfortunately, the invention of programmable computers (1940s) marked the start of digital engulfment, with the transformer (2017) being the ultimate inflection point. One of the easiest things you could do in 2025 is to synthesize a digital replica of anyone — a single photo, a one-minute voice clip, and a handful of blog posts is all you need. This acceleration, coupled with a significant portion of our daily lives being arbitrated by screens means the physical form factor matters less and less.
Overtime, most of the intellectual pockets moved online; with the exception of the personal library, which has been left in a weird state.
Trastevere
I spent the summer of 2024 living in the family house of an Italian artist and author. One thing I found intriguing was how the personality of their house reflected their professions. You couldn’t turn a corner without running into a stack of books belonging to the dad, or, art made by the mom. This set me off into my classic cycles of why’s. After a while, I realized my house would never look like theirs, not because I'm not a published author, but because I got chiseled into a really weird period of human history.
I've always had a healthy relationship with physical books, but overtime digital media became my primary source of knowledge. My personal library was never going to resemble theirs- but not because of a lack of curation. The internet being large storage device meant I was curating in pockets, a weak form of curation if you will. My bookmarks, my downloaded books, my amazon books, my apple books, my dropbox, my gdrive, my icloud. Not to mention all the books stuck on all my previous laptops.
Romance
I believe personal libraries exist along 2 axes - art & intellectualism. The taste, personality, and stories involved in their curation renders them as works of art. At the same time, they also represent the mark of an intellectual, and as someone with an eternal drive to know things, I want this reflection in my home, wherever that may be. As is common with elements of modernity, the advent of the cloud killed the personal nature of libraries. In exchange we got passkeys & passwords, which ensure our friends and families would never access our stuff, libraries included.
Alignment
At this point in the post, we have a few talked about a few things.
- availability of technology to preserve human intellect with decent fidelity
- a yearn to bring back personal libraries that are curated with time & effort
- a tiny stash of physical books in my current home, reflective of my 2024 summer predictions
- scattered digital media across clouds & browsers, with poor centralization and discovery
Only thing left is a desire to refresh my rust programming skills. It was the perfect alignment. I'm very certain a rusty personal library contains enough knobs to allow me cover web & network programming, file & error handling, async programming and general program structuring in rust. To this, I'm announcing bibliotek, a digital personal library.
Build or Buy
The evergreen engineering management question. Of course, there’s the obvious solution of creating a folder on dropbox and dumping everything in there. This is a modern solution which solves for centralization; not very interested. I also sampled a few open source tools, but the ones I found didn’t match my taste, vision or design goals. There was nothing to lose by writing one for myself, especially when it's going to be single binary, generates an sqlite artifact and runs on a private network.
Design Goals
- Simple & functional interface
- Fast interactions
- Low cpu/memory usage
- Easily Hostable
- Centralized storage, but easy data replication
- And more importantly, not written in c# 😄
Vision
My ultimate vision for this project is to enable people:
- share their personal library, as a tiny sqlite file
- host it on private networks, outside the reach of strangers
For me, a tiny daemon that needs only a few MB of RAM & runs quietly on a private network correctly symbolizes traditional personal libraries in the modernist world, that's if the ability to attach your personal library to any operating system process/thread wasn't cool enough. This project could also be one of the primitives of a new age of intellectualism, since it would enable ideas like:
- An embeddable brain for all the personalized agents, which we are all going to have at-some-point.
- The ability to intellectually connect people; based on their libraries. Imagine a library pool, powered by litestream, that you can connect to and get back a list of 20 people who just read the latest book you just added to your library, or have similar taste as yours. This could easily be done through embeddings and clustering with a dirt-cheap llm.
- A permissioned, but simple way to recreate the libraries of (dead) people using rclone, for example.
- A datastore for all your bookmarks, which can used to feed a matching algorithm and improve distributed learning.
Agent.md
A goal of this exercise is to re-activate pathways in my brain, which is antithetical to the ethos of vibecoding. I'm however going to rely on cursor-tab to power through rust's annoying type system. I'm not even sure if that's a good idea, but that's as far as I will go.
The list below represent an LLM-spec of me working backwards from my ideal solution.
- A rust backend that exposes only 3 interfaces--read, write, list.
- An s3-compatible storage interface that allows hackers to use any object-storage provider.
- An sqlite db to store metadata for the books(author, tags, ratings, link, etc).
- A functional html page to render all books & enable uploads books.
Conclusion
I'm conscious. If this resonates, check out bibliotek, open an issue, or star it to follow along. Early readers/testers welcome.