[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/")
```