projects: experimental add function (no front-end)