{"id":22468684,"url":"https://github.com/jazzdotdev/contentdb","last_synced_at":"2025-07-03T21:36:58.091Z","repository":{"id":78131175,"uuid":"163771201","full_name":"jazzdotdev/contentdb","owner":"jazzdotdev","description":"The Jazz Database which Stores Documents in Files and Supports Version Control and Sharing","archived":false,"fork":false,"pushed_at":"2019-06-03T18:28:27.000Z","size":22,"stargazers_count":5,"open_issues_count":26,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-08T16:38:39.989Z","etag":null,"topics":["database","document-oriented","file-based","jazz","nosql","pelican","robust"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jazzdotdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-01T22:32:35.000Z","updated_at":"2022-06-30T08:32:10.000Z","dependencies_parsed_at":"2023-02-27T18:30:18.722Z","dependency_job_id":null,"html_url":"https://github.com/jazzdotdev/contentdb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jazzdotdev/contentdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzdotdev%2Fcontentdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzdotdev%2Fcontentdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzdotdev%2Fcontentdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzdotdev%2Fcontentdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jazzdotdev","download_url":"https://codeload.github.com/jazzdotdev/contentdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jazzdotdev%2Fcontentdb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263408965,"owners_count":23462163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","document-oriented","file-based","jazz","nosql","pelican","robust"],"created_at":"2024-12-06T11:19:00.771Z","updated_at":"2025-07-03T21:36:58.079Z","avatar_url":"https://github.com/jazzdotdev.png","language":"Lua","readme":"# ContentDB\n\n`contentdb` is a [document store](https://en.wikipedia.org/wiki/Document-oriented_database) database library that is similar to [CouchDB](https://en.wikipedia.org/wiki/Apache_CouchDB) and [MongoDB](https://en.wikipedia.org/wiki/MongoDB).\n\nThis project follows the general \"[NoSQL](https://en.wikipedia.org/wiki/NoSQL)\" trend away from table-oriented databases, usually toward document-oriented or otherwise graph-oriented.  It will also support outline-oriented databses, like [OPML](https://en.wikipedia.org/wiki/OPML) and [YAML](https://en.wikipedia.org/wiki/YAML), which facilitate great data management interfaces in simple text editors and even more powerful UIs, like [WorkFlowy](http://workflowy.com) and [OmniOutliner](https://www.omnigroup.com/omnioutliner/) or open source solutions like [Drupal Paragraphs Drag \u0026 Drop Mode](https://www.drupal.org/project/paragraphs/issues/2825575) and [Drupal Draggable Views with Sections (draggableviews)](https://drupal.stackexchange.com/questions/74731/draggable-view-with-sections).\n\nWhat makes ContentDB significantly different from other databases is that it uses a [file](https://en.wikipedia.org/wiki/Computer_file) to store each \"record\", called a document, in a specified format.  This is similar to [RDF](https://en.wikipedia.org/wiki/Resource_Description_Framework)-style [XML databases](https://en.wikipedia.org/wiki/XML_database).\n\nWith this approach, you can easily manage your data storage, retreival, and other metadata storage and retrieval as well.  You can easily do version control for history tracking and easy deployment.  Relationships are easy to represent using reference fields.  See  and [Pelican](https://github.com/getpelican/pelican) and [Grav](https://getgrav.org/) for other similar systems, more so Pelican because of its [pelican reference plugin](https://github.com/mitchtbaum/pelican_reference).\n\nTo massively improve performance and scalability, [Tantivy](https://github.com/tantivy-search/tantivy) integration can provide immediate indexing and querying.  This is the same as [materialized views](https://en.wikipedia.org/wiki/Materialized_view) and mongo collections.\n\n## Format\n\nContentDB combines one structured and one unstructured data format.  Headers use [SCL](https://github.com/Keats/scl), and bodies use [Markdown](https://en.wikipedia.org/wiki/Markdown) or Lua.\n\nHeader field values provide a mechanism to represent attributes of world entities in virtual document texts.  Relationship fields work by using the target's model for its field.  You can see this implemented in Python in the pelican plugin above and some more background info [about using antisymmetric relationships](https://github.com/getzola/zola/issues/314).\n\nDefault ID is UUIDv4, but this will soon shift to [NanoID](https://github.com/ai/nanoid).  See https://github.com/foundpatterns/contentdb-lua/issues/17\n\nShort names are a missing feature.  https://github.com/foundpatterns/contentdb-lua/issues/12\n\nModel documents started by following some json document schema or something, forgot which schema\n\nStores are folders with documents from a single source.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjazzdotdev%2Fcontentdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjazzdotdev%2Fcontentdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjazzdotdev%2Fcontentdb/lists"}