[EDIT] Nope, I’m wrong. What’s written below is incorrect. Refer to the comments below this answer for the correct answer. **** Thanks to @NickD’s successful attempt to compile, I was able to identify the issue. **It lies in the `:base-directory` and the `:exclude` variables. The latter variable inherits from the former.** In details: ``` ;; Define the publishing project (setq org-publish-project-alist '( ("notes" :base-directory "./.." :base-extension "org" :publishing-directory "./public" :exclude "./") ``` I thought that the `:exclude` variable would take the same base value as the `:base-directory` one. In other words, let’s say I have `.site` where I execute my commands and my based directory is a folder up, I set `:base-directory` to `./..`. I also set the `:exclude` variable to `./` to exclude the directory I am executing the script in, here `.site`. However, **`:exclude` inherits from `:base-directory`, therefore actually excluding my base-directory to be published…**. To solve the issue, all I need to refer the `exclude` directory from the `:base-directory` starting point. So this works: ``` (setq org-publish-project-alist '( ("notes" :base-directory "./.." :base-extension "org" :publishing-directory "./public" :exclude ".site/") ```