# Mast This project is born out of frustration with Taskwarrior's upgrade to version 3.0.0 I'm looking to build my own task management software, after nearly a decade of using taskwarrior. It tries very hard to emulate the good of taskwarrior, while also being more modern. Opinionated defaults, meets malleable software. I loved Taskwarrior, it grew with me so much, but I believe I can do better. ## Goal Map I want a syncing cross platform, fast and effective tasks program. A web client for phone usage, and a CLI client at a computer. They sync through cr-sqlite, using a fairly simple websocket server (at this stage) I plan to keep the `filter` and `add` commands from Taskwarrior. Probably lots of the properties too. I'm using PEGs for parsing these grammars. I'd like real calendar integration (iCS) for `due:` I'm not yet sure what I'd like to do for priority. I like the configurability of taskwarrior, but it's very heavy handed. Some kind of slider would be nice I also need to find out a solution to virtual tags, and especially ID I need it to keep integration with Kitaab. That largely means a _json interface, which is fine. Some compatibility layer with Taskwarrior for taskwarrior-tui would be cool too, but isn't yet on the goal list. ## Status A vaguely unordered list of the next tasks to be accomplished, and those recently completed Next: - Parsing `task add` grammar (For JS) - Make SQL files common, instead of embedded in each - Parsing `task filter` grammar - Defining all attributes - Defining virtual attributes Completed: - Syncing between JS & Go clients - Parsing `task add` grammar (For Go) ## Architecture ![architecture diagram](./architecture.png)