Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DrDigett/Babel/llms.txt

Use this file to discover all available pages before exploring further.

Nodes are the atomic units of BaBel+. Every piece of content you want to track — a novel you’re reading, a film you want to watch, a course you are enrolled in — lives in the graph as a single node. Nodes carry metadata like author, year, tags, and a personal rating, and they connect to each other through typed relations to form your knowledge network.

Node types

BaBel+ recognises six content types. The type you choose controls the color the node is given in the graph view and acts as a first-class filter throughout the UI.

libro

A written work — novel, essay collection, non-fiction book, or any long-form text you read cover to cover.

pelicula

A film or feature-length video work, including documentaries and short films.

articulo

A shorter written piece such as a blog post, academic paper, essay, or magazine article.

video

An online video, YouTube video, documentary episode, or recorded talk that does not fit the pelicula category.

curso

A structured learning experience — an online course, MOOC, workshop series, or tutorial track.

videojuego

A video game of any genre or platform.

Node fields

Every node in BaBel+ carries the following fields.
FieldTypeConstraintsNotes
idstring (UUID)auto-generatedPrimary key; never set manually
titlestringrequired; max 500 charsDisplayed as the node label in the graph
typeNodeTypeone of the six typesImmutable after creation via the UI
descriptionstring | nulloptional; max 5 000 charsFree-form notes or synopsis
statusNodeStatuspendiente | en_progreso | terminado | abandonadoDefaults to pendiente
priorityNodePriorityalta | media | bajaDefaults to media
tagsstring[]optional; max 50 tagsStored as a JSON array in the database
authorstring | nulloptional; max 300 charsAuthor, director, creator, etc.
yearnumber | nulloptional; integer −5 000 – 3 000Publication or release year
linkstring | nulloptional; max 2 000 charsExternal URL (article link, store page, etc.)
localFilestring | nulloptional; max 500 charsPath to a local file on the host machine
ratingnumber | nulloptional; integer 1–7Personal rating on a 1-to-7 scale
createdAtstringISO 8601 timestampSet at creation, never updated
updatedAtstringISO 8601 timestampUpdated on every PUT /api/nodes/:id call

TypeScript interface

The canonical shape of a node as returned by the API and used throughout the client:
import type { NODE_TYPES, NODE_STATUSES, NODE_PRIORITIES } from './constants'

export type NodeType     = typeof NODE_TYPES[number]
export type NodeStatus   = typeof NODE_STATUSES[number]
export type NodePriority = typeof NODE_PRIORITIES[number]

export interface Node {
  id:          string
  title:       string
  type:        NodeType
  description: string | null
  status:      NodeStatus
  priority:    NodePriority
  tags:        string | null   // JSON-encoded string[] in the database
  author:      string | null
  year:        number | null
  link:        string | null
  localFile:   string | null
  rating:      number | null
  createdAt:   string          // ISO 8601
  updatedAt:   string          // ISO 8601
}
The tags field is serialised as a JSON string in PostgreSQL (e.g. '["fiction","philosophy"]'). The API transparently accepts an array on write and returns the raw JSON string on read — parse it with JSON.parse(node.tags ?? '[]') in your own scripts.

Status lifecycle

A node’s status describes where it sits in your personal workflow. The typical progression moves left to right:
pendiente  ──►  en_progreso  ──►  terminado

                     └──────────►  abandonado
StatusMeaning
pendienteAdded to the library but not yet started — your backlog
en_progresoCurrently being read, watched, or played
terminadoFinished; the node is rendered differently in the graph (see below)
abandonadoStarted but dropped; kept for reference without cluttering the active graph
You can toggle a node between pendiente and terminado directly on the Node Detail page by clicking the status badge — no form submission required.

How the graph canvas renders nodes

Node appearance in the graph view is determined by two properties: shape and color.

Shapes

  • Circle — any node whose status is pendiente, en_progreso, or abandonado. Radius is 14 px in world space.
  • Small red square — any node whose status is terminado. The square is 12 × 12 px in world space (drawn as radius * 2 on each side, where radius = 6) and filled with #e53935. This makes completed content visually recede so in-progress work stays prominent.

Colors by type

libro      →  #4a90d9  (steel blue)
pelicula   →  #50c878  (emerald green)
articulo   →  #4a90d9  (steel blue, same as libro)
video      →  #9b59b6  (amethyst purple)
curso      →  #9b59b6  (amethyst purple, same as video)
videojuego →  #e67e22  (carrot orange)
libro and articulo share the same color, as do video and curso. Use the type filter legend in the graph view to distinguish them visually when needed.

See also

  • Relations — how nodes are connected with typed, weighted edges
  • Nodes API — full REST reference for creating, updating, and deleting nodes

Build docs developers (and LLMs) love