Core engram Concepts

Anatomy of a Note

  localId: String,
  type: "note" | "task" | "task_completed" | "event",
  body: String,
  date: string,
  start: Date,
  createdAt: Date,
  updatedAt: Date

Above is the JSON schema of a note in engram. I believe it is important to understand how the data is structured in order to know what is possible to achieve. I have attempted to keep the data model as simple as possible.


The localId is a uuid (universally unique identifier) generated when a new note is created.


The date property is a YYYY-MM-DD formatted string that represents the day it corresponds to. This property allows for notes to be made on future or past dates.


The body is the contents of the note. engram supports Markdown, which means that this simple text field enables all kinds og functionality.

type - Notes, Tasks, and Events

The basic building blocks of engram are notes, tasks, and events. Each one carries a slight distinction that carries additional information.

A note can be anything. This is the default type in engram. These might be random thoughts, links, or a structured brainstorm.

A task should have a tangible completion condition. Once completed, it can be transitioned to task_completed so it can be filtered out of tasks that are in flight.

An event is usually something that you do at a specific time. These notes will have a start date associated with them.


The createdAt property holds the Date that the note was created.


The updatedAt property holds the Date that the note was edited at.