Skip to content

Plain text markdown editor and task management tool

License

Notifications You must be signed in to change notification settings

shfattig/sailor

Repository files navigation

⚠️ Warning: This project is in active development and may undergo frequent breaking changes. The API, features, and functionality are not yet stable and may change significantly between versions. Please use with caution in production environments.

Sailor Logo

Plain-text markdown editor integrating tasks as a first-class citizen.

Features

  • Notes and Tasks in a single environment
  • Include Zettelkasten note context alongside your task list
  • Local-first, plain text format: notes in markdown, tasks in json
  • Built on proven tooling with robust interfaces
  • Cross-platform support
  • Tauri is cool
  • Svelte is cool
  • In Rust We Trust

Screenshots

Title page Create and manage tasks directly within your notes View and organize all your tasks in one place

Motivation

I work in a terminal most of the day, and I've enjoyed using tools like vimwiki, taskwarrior, and taskwiki to take notes, plan, brainstorm, and track any related (or unrelated) tasks. I find it especially helpful that I can record any tasks alongside all of my markdown notes, and they will be beautifully synced to my taskwarrior tasklist. Preserving the context is so important! I also like the simplicity and portability of plain text formats where a simple service like SyncThing can seamlessly and securely sync data across multiple devices (encrypted, and for free!). However, when I leave work and want to access my data on mobile, I currently have no easy way of doing that. I've tried combinations of integrations involving, to name a few - Obsidian, Acreom, Todoist, TickTick, TaskWarrior (mobile), Trello... unfortunately none of them combine notes and tasks quite like taskwiki, and if I want to keep using taskwarrior on terminal, doing integration and sync is at best a complicated effort. I want to satisfy all 3 conditions in a single application:

  • Notes and tasks together, where tasks can be created inside notes arbitrarily, and the original context for a task can be easily referenced and linked to.
  • Local-first, plain text format, so that I can sync across devices using SyncThing (or optionally some other cloud service)
  • Cross-platform

Architectural Proof

  • Build on top of unix philosophy tools:
    • zk for markdown note management
    • taskwarrior for task management (TaskChampion crate, the same backend taskwarrior itself uses)
    • don't reinvent the wheel, just integrate them and provide an interface
  • Use Taskwarrior's robust json interface to use json as a plain text task backend
  • Inspired by taskwiki and Acreom, use a simple text id tag on task items to create and track the note-task association
  • Tauri 2.0 to develop cross-platform

Design goals

  • Retain unix philosophy where possible - provide same experience on terminal as in the app
    • ie. features not baked into some gui/app/website
  • Not sure how far I want to go yet on rich markdown interactions, there's a lot to cover and I'm not trying to compete with funded projects

Roadmap

  • Proof of concept:
    • editor proof of concept
    • taskwarrior backend proof of concept
    • zk backend proof of concept
    • mobile proof of concept
  • Editor / UI/UX:
    • modify off-the-shelf Lexical editor to preserve markdown syntax where it makes sense
      • we're still editing a plaintext file!
    • keybinds (vim mode?)
      • really should decide what stays in terminal editor and what this project provides
      • slash commands?
    • menu/settings
      • data dir selection (for using SyncThing folder!)
  • Tasks:
    • jump to note context
    • view task list
    • create and edit tasks outside of notes
    • use more of taskwarrior's features
      • recurring
      • UDAs
      • priority
      • tags
      • projects
      • contexts
      • dependencies
    • calendar view
    • reminders
  • Fun stuff:
    • LLM integration for task and note summaries, creation, and editing
    • integrate with pandoc for export
      • export even sections of notes to more rich formats - e.g. MD table -> spreadsheet
    • task integrations (many already exist as taskwarrior plugins!)
      • github issues
      • google tasks
      • todoist
      • trello
    • how does iPhone sync? (known SyncThing issues)

Tech Stack

Alternatives | Inspiration | Related

Notetaking:

Task Management:

Task-Note Integration:

Maybe someday

  • convert to Norg editor to compliment neorg ?

Contributing

License

MIT

About

Plain text markdown editor and task management tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published