Skip to content

KyleKing/yak-shears

Repository files navigation

Yak Shears

My personal note taking app, but you probably want to use one of these primarily open-source applications instead:

Service Notes
Archivy "Self-hostable knowledge repository"
Bear "Markdown notes you’ll love" (Closed source)
bookmarker "Personal project to help me retain information from books"
Buku "Personal mini-web in text"
DayOne "Beautiful daily journaling mobile and web app" (Closed source)
Docmost "Collaborative wiki and documentation software"
Evernote "Remember everything and tackle any project with your notes, tasks, and schedule all in one place" (Closed source)
flatnotes "Database-less note-taking web app that utilises a flat folder of markdown files"
Foam "A personal knowledge management and sharing system for VSCode"
HedgeDoc "Web-based, self-hosted, collaborative markdown editor"
Hypothesis "Collaboratively annotate the web" (Closed source)
Joplin "Privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS"
Jot "Rapid note management for the terminal"
Memos "The pain-less way to create your meaningful notes. Your Notes, Your Way"
Monica "Personal relationship CRM"
nb "Note‑taking, bookmarking, and archiving with linking, tagging, filtering .. + more"
Notion "Write. Plan. Collaborate. With a little help from AI" (Closed source)
Notional Velocity (Source) Introduced ideas that are now more commonplace. Such as "searching for notes is not a separate action; rather, it is the primary interface"
nvpy "Simplenote syncing note-taking application, inspired by Notational Velocity and ResophNotes, but uglier and cross-platformerer"
Obsidian "With thousands of plugins and themes, you can shape Obsidian to fit your way of thinking" (Closed source)
Org-Mode Support Clocking, Capture, and Task/Agenda
Org-Roam "Rudimentary Roam replica with Org-mode"
Outline "The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible."
Pinboard "One of the oldest independently run businesses on the web" with a text-first UI
Rnote "Sketch and take handwritten notes"
Roam Research "As easy to use as a document. As powerful as a graph database. Roam helps you organize your research for the long haul" (Closed source)
Silicon Notes "A web-based personal knowledge base with few frills"
SimpleNote by Automatic "All your notes, synced on all your devices" (Closed source)
Siyuan "Fine-grained block-level reference and Markdown WYSIWYG"
Standard Notes "Secure note-taking app"
Textpod "Inspired by 'One Big Text File' idea"
TiddlyWiki "A unique non-linear notebook for capturing, organising and sharing complex information"
Trillium Next Notes "Hierarchical note taking application with focus on building large personal knowledge bases"
Untitled "An open-source app for taking notes that feels awesome to use"
Zettlr "One-Stop Publication Workbench"
"Awesome" List of Note Taking Software "A curated list of awesome note-taking software"
Digital Gardens "Resources, links, projects, and ideas for gardeners tending their digital notes on the public interwebs"
Open Source hosted on Pika Pods Supports self-hosting of Memos, linkding, etc.

Goals

./assets/shears.webp

  1. Opinionated. This is my personal app and the design choices are what works for me.

    1. For example, tagging is intentionally limited in favor of search and bi-directional linking as better explained here.
  2. Limited features. Having few features is the goal, for maintainability and usability.

Features

  • There is a CLI and API for local search, creation, and general management

  • Content is stored in files using the djot markup language

  • Each note is named by the creation timestamp to be unique, predictable, and easier to permalink

Details

{% In Progress %}

  • subDir/Context ("Yak Pen"): set via environment variable or argument

    • shears new (evergreen|personal|work)?
    • What about having all notes in one directory rather than separate and using metadata instead?
  • shears list -order=(created|modified|count-links|count-merged|count-split) -desc? -status=(?) defaults to showing the n-most recent notes by modification date

  • No state initially, then manually set to Atomic once reviewed/edited. Tasks are just notes with state: backlog|queue|in-progress|complete|not-planned

    • shears state <state> <to?>
    • Tasks with subtasks don't need on-hold because the partially complete subtasks are self-documenting and can go back to the queue.
  • Operations: notes have split-from: []string or merged-from: []string to support handling links to deleted files or moving content

    • For readability, the file header is displayed via virtual text (in NVIM, Web, etc.)
    • Consider links: []string to support bi-directional linking between notes (bi-directional part comes from database/tooling rather than in-code). Managed with shears link <from?> <to?>
    • shears split <name>? and shears merge <from>? <to>?. If either argument is missing, an interactive selection follows, which defaults to recent by modified date, then filters based on text input
  • What is the story for planning? For example, there are time-sensitive tasks, but they can't start today? Maybe start-date and hard-deadline (and soft-deadline)?

  • What about a concept of a bookmarklet note that is managed by a browser extension? This way bookmarked tabs can be archived more easily rather than clutter the bookmarks bar?

About

✁ ✁ ✁

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published