Skip to content
Dakota Chambers edited this page Oct 30, 2021 · 10 revisions

Welcome to the bujo wiki!

The purpose of this wiki is to serve as the design documents for bujo.

bujo is a command line bullet journal application, written in Go using the Cobra library.

Motivation

Bullet journaling is a system for rapidly recording thoughts, knowledge, information, and creating simple, actionable plans. In many ways, the bullet journal system fits the tenets of the Unix philosophy. Simple, single-purpose, modular, and extensible code and programs that work together. Because command-line tools are often built in a way that follows that Unix philosophy, it seemed a natural fit for bullet journaling.

Bullet Journal Basics

Bullet journaling is a note-taking system that is built on the foundation of several simple but core concepts.

  • Rapid Logging
  • Bullets: Using different bullet types for different meanings (notes, tasks, events, etc).
  • Signifiers: Give extra meaning (priority, inspiration, question, follow-up, etc) to your bullets.
  • Collections: Group related content together.
  • Index: Easily find content.
  • Future Log: Gain a quick high-level overview of the next 6 months (or longer).
  • Monthly Log: Contains a calendar page and migrated notes from the previous month.
  • Daily Log: Contains your rapid logged notes/tasks/events/etc.
  • Migration: Make a concerted effort to regularly review your notes and perform follow-up actions, archive/cancel the stuff that is no longer necessary, and migrate the stuff that still needs to be done to a new time frame.

Commands

  • bujo
  • bujo note
  • bujo task
  • bujo event

Architecture

  • bujo writes everything to plaintext files for easy exporting data preservation.
    • Keeps things simple with no database.
    • Allows for version control using Git.
    • Allows for easy backup and syncing.
  • File Structure
     bujo
     ├── 2021
     │   ├── October
     │   │   └── 10-01-2021.yaml
     │   └── September
     │       ├── 09-29-2021.yaml
     │       └── 09-30-2021.yaml
     └── Collections
         └── birthday-planning.yaml
    

Ideas

  • Backend service that runs separately from the CLI. Would allow for multiple frontend apps (CLI, web app, desktop app, etc)
Clone this wiki locally