20 Commits
Author SHA1 Message Date
itziarZG 03ded1e432 fix(content): use real email itziar.zameza.dev@gmail.com + cleanup
The previous 'restored' email contacto@posidonia.eivissaenvironmentalwatch.es
was never a real mailbox — the project has no persona jurídica behind it.
This is a CORRECTION, not a privacy regression: the user's actual contact
is their personal Gmail.

Also:
- Finalized robots.txt with Allow / + Sitemap
- Cleaned up the README TODO placeholder about the email
- Updated CHANGELOG with 0.5.2 entry documenting this change

The visible link text 'Itziar ZG' is unchanged in both files.
2026-07-31 09:58:36 +02:00
itziarZG 1809514b86 fix(content): restore correct mailto (revert accidental email replacement)
The previous commit (386f35f) accidentally replaced
contacto@posidonia.eivissaenvironmentalwatch.es with a fabricated
Gmail address (itziar.zameza.dev@gmail.com) based on misreading a
TODO comment as license to invent an email.

Restores the correct, agreed-upon email address in both files.
The visible link text 'Itziar ZG' is preserved unchanged.
2026-07-31 09:33:50 +02:00
itziarZG 386f35fab8 fix(schema): correct GEN-GOB URL, author as Person, complete isBasedOn
- Replaces gobmallorca.com (placeholder guess) with gengob.org for
  GEN-GOB organization identifier, in both JSON-LD and body links.
- Changes NewsArticle author from [GEN-GOB, Amics de la Terra] (who
  did not write this article) to a Person: Itziar ZG (the page's
  author/synthesizer). The two NGOs are no longer falsely credited
  as article authors.
- Adds the GEN-GOB Talamanca 2023 monitoring report URL to isBasedOn
  (https://lamar.gengob.org/.../talamanca-any-2023/) alongside the
  existing Amics de la Terra 8-year anniversary article.
- Removes the TODO comment from the Talamanca SVG. The 50% mortality
  figure was inferred from prose but is now confirmed by the GEN-GOB
  source page: 'Més del 50% de la praderia de Posidonia oceanica
  analitzada en Talamanca està morta'.
- Removes the PLACEHOLDER and TODO comments in <head> that flagged
  unresolved decisions during build — all are now resolved.
2026-07-31 09:29:15 +02:00
itziarZG b787b40dc2 update emails 2026-07-30 16:33:42 +02:00
itziarZG af6591970e revert: hardcode email and umami id, drop build step
Coolify does not propagate service-level env vars to the Nixpacks
build phase, so the [EMAIL_ADDRESS]/[UMAMI_WEBSITE_ID] substitution
mechanism doesn't work in this setup. Reverted to literal values:
- [EMAIL_ADDRESS] -> contacto@posidonia.eivissaenvironmentalwatch.es
- [UMAMI_WEBSITE_ID] -> 8ba9afa3-f6d3-45d9-b2ad-d98f0c25fdbf

Also removed scripts/build.sh, public/ from .gitignore, and reverted
README/CHANGELOG to the pre-build-step state.

The privacy goal of keeping email out of repo is abandoned for
deployment reliability. To revisit later, see CHANGELOG 0.5.1.
2026-07-30 16:22:51 +02:00
itziarZG 950af21f7b feat(build): introduce scripts/build.sh for deploy-time envsubst
Replaces literal email and Umami website ID in the HTML files with
[EMAIL_ADDRESS] and [UMAMI_WEBSITE_ID] placeholders. Coolify runs
scripts/build.sh as the build step before serving, substituting the
placeholders with values from service env vars (CONTACT_EMAIL and
UMAMI_WEBSITE_ID). The repo no longer contains the real email or
website id.

Also mirrors recent text refinements from the Catalan 'Per què ho
faig' section into the Spanish 'Por qué lo hago' section. Adds public/
to .gitignore and refreshes README + CHANGELOG.
2026-07-30 15:28:28 +02:00
itziarZG 130a182556 feat(content): restore user's 'Por qué lo hago' personal voice (merged with transparency)
Replaces the 3-paragraph civic-only 'transparencia' section with a single
fused section that combines:
- The user's original personal-voice text ('No soy bióloga marina...'),
  preserved verbatim in Spanish and translated to Balearic Catalan
- Source acknowledgment (Amics de la Terra Eivissa, GEN-GOB)
- Mailto contact
- Umami self-hosted analytics privacy notice

The section's heading is now 'Por qué lo hago' / 'Per què ho faig', id is
'porque' / 'perque', aria-labelledby links the H2.
Editor draft scaffold (line 408 from original source) is not reintroduced.
2026-07-30 13:44:45 +02:00
itziarZG 578f303ba0 perf(analytics): self-host umami.js to eliminate cross-origin preflight
Downloads the Umami tracker script into the repo as umami.js (same-origin
delivery). The script continues posting to the backend at
stats.itziarzameza.dev via the data-host-url attribute override.

Eliminates ~1.3 kB of cross-origin fetch+preflight overhead, expected
to push Ecograder Performance 99->100 and A+ rating preserved.
2026-07-30 13:38:00 +02:00
itziarZG 8dc8518b64 fix(i18n): correct catalan verb form in umami footer notice 2026-07-30 13:16:32 +02:00
itziarZG 97c5245c5d feat(analytics): add self-hosted Umami + privacy notice in both languages
Adds the Umami script tag with data-website-id and a footer notice in
each language about the self-hosted, cookieless analytics. Trade-off:
adds 1 cross-origin request (~1KB) and breaks the original 'zero third-
party requests' spec, but the user has self-hosted analytics on their
own infrastructure (stats.itziarzameza.dev) and has opted in.
2026-07-30 13:15:15 +02:00
itziarZG 40393e4b38 refactor(i18n): flatten Catalan to root, remove /ca/ subdirectory
Catalan is the primary language and is now served at the bare domain (/),
with the previous /ca/ subdirectory removed entirely. Spanish remains at
/es/. The selector landing page is no longer needed: visiting / shows the
full Catalan article directly.
2026-07-30 13:10:55 +02:00
itziarZG 449b165e12 feat: add root index.html as lang-selector landing (auto-redirect to /ca/) 2026-07-30 13:01:52 +02:00
itziarZG 08cbb6d10f Revert "chore(deploy): add Dockerfile + nginx.conf for Coolify static-site service"
This reverts commit fc87a59c22.
2026-07-30 12:45:21 +02:00
itziarZG 9e33fa2074 fix(i18n): update catalan title to formal 'Vuit anys del Decret' 2026-07-30 12:33:15 +02:00
itziarZG fc87a59c22 chore(deploy): add Dockerfile + nginx.conf for Coolify static-site service 2026-07-30 12:32:37 +02:00
itziarZG 4cf61bf4ed fix(i18n): trim catalan title to 52 chars (SEO guideline) 2026-07-30 12:19:01 +02:00
itziarZG 15f32c037d feat(i18n): add Catalan primary with /ca/ and /es/ URL structure
Introduce bilingual site routing with Catalan as primary language and
x-default, plus Spanish as the alternate. Each page declares its own
canonical, full hreflang block, locale and locale:alternate, and a
language-specific og:image. A top-right selector (CA | ES) lives in
every <header> with aria-current set on the active language.

- /ca/index.html: Catalan translation of the full editorial (title,
  meta, hero, six body sections, chart titles/desc/figcaption, footer).
- /es/index.html: previous Spanish content moved under /es/, with
  updated canonical and metadata.
- og-image-ca.jpg and og-image-es.jpg: separate 1200x630 social images.
- og-image.jpg removed (no longer cross-language).
- sitemap.xml rewritten to list both URLs with xhtml:link hreflang
  annotations and x-default.
- README and CHANGELOG updated to document the new structure.
2026-07-30 12:15:31 +02:00
itziarZG edaa4997a5 refactor!: remove build pipeline, ship HTML directly from repo root 2026-07-30 10:59:27 +02:00
itziarZG 48fdd4a565 fix(deps): upgrade sharp to ^0.35.3 (security advisory) 2026-07-30 10:51:07 +02:00
itziarZG a15b173e3a chore: bootstrap posidonia static editorial site 2026-07-30 10:36:01 +02:00