remarkable-bujo: A Reproducible Bullet Journal for reMarkable

remarkable-bujo is a free-software generator for producing a complete, hyperlinked annual Bullet Journal as a PDF for reMarkable tablets.

The project starts from a simple constraint: I want to keep the Bullet Journal method, including handwriting, rapid logging, migration, and reflection, while avoiding the physical page-allocation problem of a paper notebook.

The generated PDF supplies the structure. The user still supplies the journal.

Design principle

The central rule is:

Automate the journal, not the journaling.

The generator automates information that is deterministic and tedious to prepare by hand:

  • dates and weekdays;
  • ISO week numbers;
  • calendars;
  • annual page structure;
  • repeated layouts;
  • page destinations; and
  • internal PDF links.

It deliberately does not automate the cognitive parts of the method. It does not decide priorities, migrate unfinished tasks, infer intentions, fill reflection fields, or turn handwriting into a task database.

Generated structure

A generated year currently contains:

  • a rapid-logging key;
  • a global hyperlinked index;
  • Goals / Intentions;
  • Someday / Maybe;
  • a year overview;
  • six Future Log pages, with two months per page;
  • 12 monthly calendars;
  • one Monthly Log page per month;
  • ISO weekly overview pages;
  • one Weekly Log / Reflection page per ISO week;
  • one page for every day of the year;
  • monthly reflection pages;
  • an annual reflection page;
  • project and collection indexes;
  • writable project and collection pages;
  • weekly and monthly migration/review areas; and
  • internal PDF links for navigation.

The daily pages use a deliberately minimal dot-grid layout. They are writing surfaces rather than forms.

Why generate the full year

On paper, reserving pages in advance creates a planning problem of its own. Daily notes are not constant in length, projects grow unpredictably, and collections compete for finite pages.

A digital PDF removes the material scarcity without requiring the journal to become a conventional application. Hundreds of pages can be generated in advance, and links can connect annual, monthly, weekly, and daily views without manual page-number bookkeeping.

This lets the structure be regular while the content remains handwritten and unstructured where appropriate.

Navigation

Internal PDF links are one of the few digital features I actively want in the journal. They replace repeated page turning without changing what is written on the page.

The result behaves more like a notebook with deterministic shortcuts than like an interactive planner application. Navigation is generated; journal state is not.

Reproducibility

The journal is generated from source rather than maintained as a manually edited PDF. This has several consequences:

  • the same code can produce another year;
  • layout changes are version controlled;
  • calendar arithmetic is generated rather than transcribed;
  • the PDF can be rebuilt after a design change; and
  • the implementation can be inspected, modified, and shared.

The project is licensed under the GNU GPL version 3 or later.

Installation

A local editable installation can be created with:

python -m venv .venv
. .venv/bin/activate
pip install -e .

A journal for 2027 can then be generated with:

remarkable-bujo --year 2027 --output bujo-2027.pdf

or:

python -m remarkable_bujo --year 2027 --output bujo-2027.pdf

Relationship to the Bullet Journal method

The generator is useful only insofar as it preserves the method instead of replacing it.

A feature that merely saves repetitive layout work is generally desirable. A feature that makes a decision on behalf of the journal user deserves much more suspicion. In particular, automatic task rollover would make the software more convenient while weakening the deliberate migration process.

For the reasoning behind the journal itself, see Bullet Journal: philosophy and personal use.