Phoenix Blog Template changelog

Latest release v2.0.1 · this is the file that ships inside the package

Changelog — Phoenix Blog Template (Legacy)

All notable changes to this product are documented here. This project follows Semantic Versioning. Breaking changes link to an upgrade note in docs/upgrading.md.

[2.0.1] — 2026-07-10

Added

  • LICENSE file carrying the PhxTemplates Commercial Licence (v2.0) summary with a pointer to the authoritative tier terms.

[2.0.0] — 2026-07-10

Fixed (final release hardening)

  • mix assets.build works on a fresh clone: the EmailJS browser SDK (BSD-3-Clause) is vendored under assets/vendor/, so no npm install is needed.
  • Blog posts now set their own page title and meta description (previously every post fell back to the site-wide defaults).

Security

  • Removed all distributed credentials; secrets now load from the environment. Any key previously shipped in an archive must be treated as compromised and rotated (see the storefront security incident record).
  • Blog create/update/delete controller actions are now admin-gated (previously only new/edit checked the admin email, leaving the write endpoints open to any visitor).
  • The project “delete” LiveView event is now admin-gated (previously any connected visitor could delete projects over the websocket).

Fixed

  • Updating a blog post redirected to /blogs/<title> and crashed; it now redirects to the blog’s id route.
  • The projects list is now a proper LiveView stream container (phx-update="stream"), so admin saves/deletes update the page live.
  • Mailing-list signup was dead: the form dispatched send-mailing-list but the JS listened for mailing-list-email. Event names now match.
  • Malformed markup: unbalanced decorative <section id="skills> / <ul id="blogs> fragments, <h1>/<p> nested inside the header component’s <h1>, duplicate id="experience-1" on list items, duplicate title attributes, stray href={}/target attributes on divs, and a contact textarea that shipped with whitespace content.
  • Canonical <link> now includes the request scheme instead of a bare host.

Changed

  • Standardised setup, formatting (mix format with the LiveView HTML formatter), and the release gate against the shared PHX engineering baseline.
  • Added AGENTS.md / CLAUDE.md agent-readiness guides.
  • Replaced the “John Smith” placeholder persona and lorem-ipsum copy with the redistributable demo persona “Alex Rivera” and real sample copy.
  • Migrated the Gettext backend to the non-deprecated Gettext.Backend API.
  • Test suite made honest and green (164 tests): admin-gated actions are exercised as the admin, access-control tests were added for anonymous and non-admin users, a stale Phoenix-default page test was replaced with real home-page and HTML-structure tests, and assertions now match the shipped layout.

Added

  • SECURITY.md, SUPPORT.md, LEGACY-STATUS.md, and this changelog.
  • README rewritten as a concise install/customize/deploy guide with the legacy notice.