Files
blog/CHANGELOG.md
T
davide 728e931421 Fix mobile header overlap and thumbnail crop ratio
The language switch overlapped the centered logo on narrow viewports
(~390px), and article card covers used an overly aggressive 4:5 crop
that sliced through text baked into cover images.
2026-09-14 14:28:34 +02:00

4.9 KiB

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.1.1] - 2026-09-14

Fixed

  • Language switch no longer overlaps the header logo on narrow viewports (~390px, e.g. iPhone 14 Pro): it now stacks centered above the wordmark on phones, and only moves to the header's top-right corner from tablet width up.
  • Article card thumbnails no longer use an overly aggressive portrait crop (4:5) that sliced through text baked into cover images — changed to 3:2, matching the featured cover on the home page and the article detail page.

[2.1.0] - 2026-09-11

Added

  • English version of the site (/en/*) alongside the Italian original, hand-rolled without an i18n library: /en, /en/blog, /en/blog/[slug], /en/category/[slug] and the corralito page all get an English counterpart, sharing markup with their Italian page via a locale prop.
  • Manual, per-record English fields on content: titleEn/contentEn/coverAltEn on articles, nameEn on categories — translated by the editor in the admin UI, no auto-translation.
  • English translation of the corralito training-courses page specifically (it was left Italian-only when /en support first landed, then translated in a follow-up pass).
  • Numbered pagination on the blog archive and category pages (first, last, current page and its neighbors, collapsing gaps into ), replacing plain previous/next links.
  • claude-md-management and ui-ux-pro-max Claude Code plugins, enabled repo-wide via .claude/settings.json.

Changed

  • Redesigned the language switch: both languages are shown at once ("Italiano / English"), the current one as plain non-interactive text, moved to the header's top-right corner instead of stacked under the logo.

Fixed

  • An article/category with no English translation now 404s cleanly on its own /en page and is filtered out of /en listings, instead of silently showing Italian text on an English URL.
  • Pagination links no longer report every page as "current" to assistive technology — caused by NuxtLink/RouterLink's built-in active-state detection comparing only the route path, not its query string.

[2.0.0] - 2026-09-11

Added

  • docs/ — architecture, content model, and frontend reference documentation.
  • ESLint, via the official @nuxt/eslint module.
  • Full test suite: unit (Vitest), integration (a real Nitro server against an ephemeral PocketBase), and end-to-end (Playwright) — under tests/ at the repo root.

Changed

  • Lightened the (still Strapi-based, at the time) CMS: dropped the unused cloud plugin, disabled telemetry and promotional UI — a stopgap before the PocketBase migration below.
  • Replaced the Strapi + PostgreSQL CMS with PocketBase: a single binary with embedded SQLite and per-collection API rules. Frontend endpoints moved to /content/*; /api/* is now reserved for PocketBase's own REST/file API.
  • Local development now bind-mounts PocketBase's data directory (pocketbase/pb_data/) instead of using a named Docker volume, so test data can be inspected or swapped directly on the host.
  • articles.content now has an explicit 10000-character cap, instead of relying on an undocumented PocketBase default that silently rejected longer articles.

[1.0.0] - 2026-08-28

Initial release.

Added

  • Strapi CMS with Article and Category content types.
  • Nuxt frontend: blog index, article detail, and category pages.
  • Docker Compose stack: PostgreSQL, Caddy reverse proxy, and the app services.
  • Project documentation, license, and .gitignore; docs for the stack, dev workflow, production deployment, and generating .env secrets.
  • Editorial-magazine restyle of the frontend, with the CorralitoComing seal as site logo and favicon (every size).
  • Contact address and official social-brand links in the footer.
  • Author name and publication time shown on articles.
  • Responsive layout for phone, tablet, and desktop.
  • Landing page content and a dedicated courses page.
  • A language switcher supporting English, Italian, Spanish, and French (later removed — see Removed, below).

Changed

  • Renamed the site to CorralitoComing and switched the interface to English (later reverted to Italian-only, see Removed).
  • Simplified the home page and navigation down to a single "read the latest article" link.
  • The CMS admin panel is served under /admin on the public domain; every Strapi plugin path is routed there, not just /admin.

Removed

  • The English/Italian/Spanish/French language switcher — reverted to an Italian-only interface, relying on the visitor's browser to translate the page instead.

Fixed

  • ACME DNS resolution failures in the Caddy container.

Security

  • ops/ (holds VPS credentials) added to .gitignore — never committed.