How Maya works?
There are two essential things about Maya’s construction:
- The first is that it uses TaskWarrior as its database.
- The second is the way we separate its components.
TaskWarrior
Before Maya became what it is now, it was a bunch of bash scripts to automate the use of TaskWarrior. However, it has become something bigger. Now, its code contains only Rust and uses TaskWarrior only as a task database. We intend to migrate completely to our own implementation in the future, but the focus is on what really matters at the moment: productivity. That said, know that almost everything TaskWarrior offers, Maya will implement for you.
Separations
Maya is separated into several parts delivered as options to you.
These parts are: api
, frontend
, cli
, desktop
and lib
.
api
— The heart of Maya, you only pay for the use of it. All others are implementations of theapi
and will not cost you any additional money.lib
— An abstraction of the type definitions we have in the code. It is a dependency of theapi
, thefrontend
and thecli
. You can use it in your code if you are using Rust, we will make it available as an open source crate in our repository as soon as theapi
is properly documented. This will be very useful if you want to automate things.cli
— Made for terminal lovers and those who have a high wpm. It also comes with some bash configurations to make your life easier, such as an alias-based syntax. For example, an operation likemaya ta-start <ID>
would becometastart <ID>
.frontend
anddesktop
— If you only want to use thefrontend
, without an application itself, you can choose just that one, without having to put things you don’t use in your system. Now, if you don’t want too much hassle (it’s a pain to keep saving the process port), you can simply use thedesktop
and have everything automatically integrated.
Remember that the api
and the lib
(internally) are the only
really mandatory parts — so if you want to make your own client or
write each request manually, feel free ks… —.
This allows for cases where you only want the cli
instead of
the frontend
and vice-versa. Now, if you choose the desktop
,
the frontend
will come with it by default (after all, it’s kind of
useless without an interface, isn’t it?).
The above mentioned divisions will not be delivered separately yet (although they are naturally separate) due to the early stages of Maya. For now, the goal is to make the package available on desktop. We will let you know on our Discord server when a proper interface for you to choose the desired parts is ready :)