Dynamic path on capture templates

Hi everyone,

I have replaced obsidian with org/org roam for some months now and I am pretty happy with the workflow that I have in place, which is very simple and project focused. That being said, I have a capture template for a new project and I then I keep everything related to that project inside the file: tasks, meetings, logs…

The problem now is that the files are growing very quickly it’s becoming tricky to navigate through the information. I was thinking that perhaps one good option would to be have the project template create a project folder, and then in this folder I would have the different files, like one for the meetings, another for the tasks, etc…

What would you advise me to do? I think I will have some problems due to the fact that capture first ask for a file and then the template, which means the my meetings file would need to be created at the same time of the project folder…

Would be awesome to get some ideas and suggestions ! Thanks

  1. I never do something that is just a single file by using the first
    level of org-mode as a layer. Because right now the basic structure
    of org-roam v2 doesn’t differentiate too much between where the
    root headline you are located. The only thing I think about is
    maybe you want to output different PDFs using different templates.
    In that case, maybe it works well.

  2. When I want to use a folder-like project structure, usually it’s
    something that I want to build an entire codebase, or I want to
    make a standalone software, or it’s just a fork of a software
    version that I want to do modification.

    In that case, I use skeleton.el.

  3. Even for per-file case, You can always use a capture template. I
    believe it was well-documented in the manual somewhere.

    Here is the part of code I use quite consistently on a weekly
    basis. Essentially you can set up a template file for the one you
    want to reuse.

    | (defun org-roam-dailies–capture (time &optional goto)
    | “Capture an entry in a daily-note for TIME, creating it if necessary.
    | When GOTO is non-nil, go the note without creating an entry.”
    | (org-roam-capture- :goto (when goto '(4))
    | :node (org-roam-node-create)
    | :templates org-roam-dailies-capture-template-for-weekly-template
    | :props (list :default-time time)))