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
-
LICENSEfile 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.buildworks on a fresh clone: the EmailJS browser SDK (BSD-3-Clause) is vendored underassets/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/editchecked 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-listbut the JS listened formailing-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>, duplicateid="experience-1"on list items, duplicatetitleattributes, strayhref={}/targetattributes ondivs, and a contacttextareathat shipped with whitespace content. -
Canonical
<link>now includes the request scheme instead of a bare host.
Changed
-
Standardised setup, formatting (
mix formatwith the LiveView HTML formatter), and the release gate against the shared PHX engineering baseline. -
Added
AGENTS.md/CLAUDE.mdagent-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.BackendAPI. - 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.