Note: if you want to skip all this preamble, head to “ACTUAL HACK”
I wrote this long preamble to show I exhausted all possibilities…
Note2: Maira (in a comment below) has a far better solution in my opinion. I am leaving mine here in case it suits your workflow better…
You’ve all seen the pain, for past few years in anyType:
You try to create a project and would like a nice interface (a la) “set” to create tasks within the body of the project. And you’d like those tasks to be “children” of that particular project.
You’ve tried to likely put an embedded set in the template, thinking it would instantiate a new unique set that would only live in that project when you create a new project. Silly you; you really thought it could be that easy?
Then you perhaps realized: oh I got it! Sets are bound to the type, so any set would work on ALL tasks and then you have to use filters…but how would you filter for the tasks for specific project created within the set when their backlinks property is empty?
Okay, so you tried to use /task to create tasks within the body of the project…yes, that works in that backlinks will be filled with the name of that instance of the project. And indeed this allows you to then be on some global dashboard and then filter using backlinks and have for example a kanban grouped on backlinks. However this approach is truly annoying for entering tasks in batch, because the small card view it offers within the project is just ugly, has big margins and does not allow you to see the fields like we all love and desire in a set or collection.
Okay, so now you try to be even smarter: let’s use collections! So you put a collection in the project template. You create a new project object…hmmm…interesting. Any task you add to the collection DOES NOT have a backlinks filled! And even more interesting…if you go to all objects → type → collection it does not exist. If you click on the title of this collection in your project and say ‘view source’ it will say on top ‘in view mode only because this collection is in the trash’
Yes, these are all real struggles many of us have gone through to make this work, while we IMpatiently wait for a proper solution from anyType.
My last attempt at this was to create a new project object from my template and thus get this collection I set up in the template. I was thinking I’d simply “duplicate” this collection and retain the views and the setup…because that is what I am after after all…ease of setup per each project.
Unfortunately this does not work since you cannot duplicate this inline collection, but only duplicate the ‘block’. And as such you are duplicating the "reference "to the same exact collection that lives in trash
So! Here’s is the only way I managed to make this work. Meaning…create a project from template and have my collection with tasks linked to the project.
(of course tasks living within a project is only one such example. This issue extends to any parent child relationship)
ACTUAL HACK
-
create a template for a project. Add all your stuff for the project you wanted in there, section where the tasks will live in a collection, but DO NOT ADD THE COLLECTION PROPER.
-
Instead, go to all objects → types → collection and add a new collection. Add views, add some tasks so you can test things out, add filters, sorting, the whole thing
-
important: for each view, go on the top right menu NEW → select type ‘task’ and then select the template you’d like to use for the task and then “add as default to this view”. Do this for each view. This allows you then to just start entering tasks in projects later without each time choosing task + template (otherwise adding a new object in a collection picks your default object you set in the settings for the space you are in)
-
delete all your test tasks so your collection is empty
-
Name this collection something like "Project Template Collection (Do not use, duplicate)
-
Now we instantiate (create) a new project.
-
Each time you instantiate a new project, you must, alas duplicate a collection:
-
go to all objects → types → collection. Right click on the “Project Template” collection, duplicate. Rename it to the name of your new project (use same exact name as the project to make it simpler)
-
Now back in your project, go to the spot where you want your tasks. type /inline and select “inline collection”.
-
It will ask you to connect it to a collection source. Chose the previously duplicated collection.
-
Any task you enter will have backlinks set to the name of this unique, per project collection you duplicated.
WHAT YOU GET WITH THIS HACK:
- you get a collection “template” that you do not have to recreate for each project, with all its sorting, filtering, views, etc. You just have to duplicate and rename this “template” collection
- you get tasks linked to your project (sort of) by having them attached to the same named collection as your project
- you can then navigate to any project and quickly add / interact with tasks linked uniquely to that project only
- you can also go to a global dashboard and pull up tasks and filter them (or group them in kanban) by project name, since the collections you named same as your actual projects.
Yes it is hacky, I HATE IT, but it works, with few extra steps. Hope this helps someone, and if I said something incorrect, please correct me. If you have a better hack, I’m all ears!


