Luzzle is a text-based system for managing your digital records. It turns a simple folder of Markdown files into a portable, personal database that you actually own.
Think of it as a personal library for everything you care about—books you've read, gear in your inventory, contacts in your address book, or even an archive of poetry.
Instead of being trapped in a spreadsheet or a proprietary app, these records
live in your archive folder. Each piece is just a Markdown file representing
a single item. 📝✨
We believe plain text is the best format for long-term preservation and ownership. It’s the original WYSIWYG interface—human-readable, machine-writable, and it won't hold your data hostage.
By using text, we get to stand on the shoulders of giants. We don't need to reinvent search, syncing, or versioning when we can just use the Unix tools that have already solved those problems for decades.
Luzzle is both a set of rules and the code to run them.
- Your archive is just a root folder.
- JSON schemas live in
.luzzle/schemas/to define your piece types (likebookorfilm). 📂 - Attachments like images and archives stay in the
.assets/folder. 🖼️ - Pieces use a simple naming convention:
name.piece-type.md(e.g.,dune.book.md).
The formal specification is still evolving alongside the codebase. 🚧
This ecosystem contains everything you need to build and browse your archive:
@luzzle/corethe specification implementation 🫀@luzzle/clithe terminal companion for managing pieces 💻@luzzle/weba simple web app for browsing and editing pieces 🔎@luzzle/web.builderdeploys, builds and rebuilds archives for the web 🏗️@luzzle/web.toolsCLI utilities used by the web.builder 🧰@luzzle/web.proxya caching layer for @luzzle/web 🚀@luzzle/web.utilscommon logic used by @luzzle/web and tools 🛠️