Mazao permet de gérer des produits, des contacts, des tâches et des événements, et l’ensemble des liens entre ces éléments. Tous ces liens sont bidirectionnels. Cela signifie que lorsque vous ajoutez à un produit une référence à un contact, ce contact aura également, automatiquement, une référence vers le produit.
Les contacts stockés dans Mazao peuvent être créés localement ou importés de l’application « Contacts ». Si un contact est modifié, il peut être synchronisé manuellement avec l’application « Contacts » à tout moment.
Mazao stocke l’ensemble de ces éléments dans une base de données orientée objets. La structure de la base de données est définie via des classes d’objets. Ainsi Mazao définit une classe « Produit », une class « Contact », etc. qui définissent les attributs (les caractéristiques) qui peuvent être associés à chaque instance de Produit ou Contact en particulier.
Cette structure est ouverte. Cela signifie que chaque utilisateur, après avoir acheté les outils de développement, peut personnaliser cette structure en modifiant les classes existantes ou en définissant des nouvelles classes, selon ses besoins. De même, il est possible d’ajouter des nouveaux attributs.
Les attributs peuvent être de très nombreux types comme par exemple un texte, une date, un lien vers une instance d’une autre classe, un média (image, musique, vidéo, document), un prix, un numéro de téléphone, un URL, etc… Certains attributs peuvent également être une liste de liens ou une liste de médias, ou encore une formule, ou simplement un élément d’affichage.
Mazao est fondamentalement multi-langues. Non seulement l’application existe en plusieurs langues, mais la base de données intègre un type d’objet appelé « terme ». Un terme est un morceau de texte qui varie en fonction de la langue. Une classe peut avoir des attributs de type « terme » et dès lors les instances de cette classe afficheront un texte différent en fonction de la langue courante.
Mazao est local. La base de données est stockée dans la mémoire de l’appareil utilisé. Il est cependant possible de faire des backups soit sur iTunes soit sur iCloud. La base de données peut donc ainsi être facilement transférée à un autre appareil mais à partir de là, il n’y a pas de synchronisation effectuée entre les appareils. Si la base de données est placée sur plusieurs appareils, l’utilisateur devra décider de l’appareil qui contient la base de données « principale », avec laquelle il peut travailler. Les autres bases de données devant être considérées comme des copies à consulter uniquement.
Mazao est construit sur DataLisp, un outil de développement qui intègre la base de données objets, l’interface utilisateur et le langage DataLisp basé sur Common Lisp. L’utilisateur peut donc non seulement étendre la structure de la base de données, mais également ajouter des fonctionnalités en écrivant du code Lisp.