Skip to content
CoverKit CoverKit v0.1.13

Changelog

All notable changes to CoverKit will be documented in this file.

  • improved: CoverKit templates list shows a Use Cases column listing each enabled use case for the template
  • improved: added find_active_template_ids() so custom use cases can output one result per active template assignment
  • improved: template editor shows guidance for site-wide use cases (only one template can enable them) and warns with a link when another template already holds the active assignment
  • fixed: HTML entities in template layer text and mapped field values (e.g. apostrophes) now render correctly in generated images without double-decoding bound fields
  • added: register a use case with label only — class defaults to base Use_Case behavior when omitted
  • improved: use case “Match aspect ratio” adjusts canvas proportions without forcing exact output pixel dimensions
  • improved: replaced the native Attributes panel with CoverKit’s layer bindings SmartPanel in the block inspector (Layer {id})
  • improved: bound field values apply during image generation alongside use-case sidebar mappings; sidebar mappings override bindings when both target the same layer attribute
  • added: native WordPress block bindings on template layers — bind text, image, and featured image to CoverKit fields from the layer inspector or use-cases sidebar; requires WordPress 7.0+
  • improved: any screenshot or font failure during generation skips all _cache/generator/ and _cache/generator/elements/ writes for that run, so retries are not blocked by placeholder fallbacks
  • improved: editor and admin image previews send no-cache headers so template and post previews refresh immediately; Open Graph, featured images, and canvas block images still use browser caching
  • improved: layer template block comments omit default typography/border/spacing values (smaller, cleaner saved templates)
  • changed: Open Graph image URLs use GET /wp-json/coverkit/v1/use-case/opengraph/... instead of the removed /opengraph/... route
  • improved: Open Graph, use-case, and template preview image URLs send browser cache headers (Cache-Control, ETag, Last-Modified) and return 304 when the cached file is unchanged; editor previews with reload or field overrides stay uncached
  • improved: generated images are stored under a site-specific cache folder wp-content/cache/coverkit-{id}/ (six-character id derived from your WordPress AUTH_KEY in wp-config.php; no new CoverKit constants)
  • changed: after updating the plugin, clear CoverKit cache from the template editor or settings so images regenerate in the new folder; the old wp-content/cache/coverkit/ directory is not moved or deleted automatically (you may remove it manually to reclaim disk space)
  • fixed: publish sidebar CoverKit previews use the current post title, excerpt, and block content from the editor instead of the saved “Auto Draft” placeholder
  • improved: publish sidebar CoverKit previews include a download button for the full-size generated image
  • improved: publish sidebar preview thumbnails include srcset (1× and 2×) for sharper images on high-DPI screens
  • improved: editor keyboard shortcuts
  • added: post editor Summary panel Use Cases row with per-assignment preview popovers (no download; save draft to preview)
  • changed: publish sidebar preview is split into separate “Show in pre-publish sidebar” and “Show in post-publish sidebar” toggles per use case
  • changed: Minimal use case renamed to Sandbox and expanded to show every built-in setting control and mapping option for testing and extension authors
  • changed: template assignments migrate from Sidebar image and Minimal to Sandbox on plugin update
  • changed: updated editor dependencies to the latest WordPress packages aligned with React 18 after the Gutenberg React 19 revert
  • removed: Sidebar image use case (test-only built-in)
  • changed: editor live previews use a single POST /coverkit/v1/preview endpoint (use-case mode with use_case + assignment, or canvas mode without use_case)
  • removed: POST /coverkit/v1/use-case/preview REST route (use the unified preview endpoint instead)
  • fixed: public image URLs ignore reload=1 unless the request is from an editor or includes a valid REST nonce, so anonymous visitors cannot force expensive re-renders
  • improved: use-case and template preview images cache to predictable paths under wp-content/cache/coverkit/ (e.g. post/{id}/{template}-{use-case}.jpg, coverkit/{template}.png) instead of duplicate files under _cache/generator/derived/
  • fixed: posts list preview thumbnails request a scaled image at coverkit_post_list_preview_width (default 72px) when the viewer can resize; the popover still loads the full-size image
  • improved: scaled REST preview widths generate at target size instead of full canvas then resize
  • improved: templates list Preview column is first (after the checkbox) at 150px wide with matching thumbnails
  • improved: list preview thumbnails use a subtle shadow that lifts slightly on hover (templates and posts lists)
  • improved: templates list Preview column uses the same thumbnail + popover markup as posts list previews, with srcset (1× and 2×) for sharper thumbnails on high-DPI screens
  • improved: posts list preview thumbnails include srcset (1× and 2×) so they stay sharp on high-DPI screens
  • improved: posts list preview popover reserves space with width, height, and min dimensions so it does not jump while the image loads
  • improved: post-bound image cache files include the template ID in the filename (e.g. 5748-opengraph.png) so clearing a template removes only its generated outputs
  • changed: custom REST ?width= requires resize permission (coverkit_user_can_resize_images); public use-case images only allow widths declared on the use case (get_allowed_widths(), default null = canonical size only)
  • improved: uploaded fonts are listed from wp-content/uploads/fonts/coverkit only (no separate font registry in the database); local files override Google fonts when the slug matches
  • improved: Fonts modal (Library/Upload tabs with dividers, 33/66 columns, section spacing, site font guidance, infinite scroll)
  • improved: font picker theme font list shows the unsupported-font help once, with a narrower sidebar and cleaner rows
  • added: upload TTF/OTF fonts from the Font Family picker (stored in wp-content/uploads/fonts)
  • removed: system font stack from the font family picker (planned for a later release)
  • changed: template design block renamed from Shape to Layer (coverkit/layer); existing templates migrate on plugin update
  • improved: plugin upgrades run registered one-time data migrations when you update via the dashboard, automatic updates, or manual upload
  • added: setting to show CoverKit templates under the Media menu instead of a top-level CoverKit menu
  • improved: CoverKit settings always live under WordPress Settings; the top-level CoverKit menu includes a Settings link there when templates are not under Media
  • improved: when templates are under Media, the submenu entry is labeled CoverKit
  • fixed: template sidebar preview URLs keep the REST API host when a preview nonce is added (fixes broken previews when the API root is an absolute URL)
  • fixed: template sidebar preview REST URLs include a wp_rest nonce so admin and editor <img> previews authenticate correctly
  • changed: removed legacy /coverkit/v1/image/... REST route; template previews in the editor and admin use /use-case/sidebar_image/... instead
  • fixed: public Open Graph and featured-image REST routes no longer generate images from draft, private, or password-protected posts for anonymous visitors
  • fixed: /coverkit/v1/template requires edit_posts and returns only template metadata (no public block markup leak)
  • fixed: Site Health Alpha channel check no longer reports “Not supported” on servers where Imagick transparency works (matches current bool return from getImageAlphaChannel)
  • fixed: plugin declares Requires PHP 8.0 so WordPress blocks activation with a clear message on older PHP instead of a fatal Composer error
  • fixed: Save Settings button stays disabled after editing fields until you save or reload
  • fixed: Settings page header links now point to CoverKit documentation and in-plugin support instead of incorrect third-party URLs
  • improved: default dimension presets on first install include Open Graph, Instagram, Pinterest, LinkedIn, X Link Card, and YouTube Thumbnail sizes aligned with common platforms
  • added: Max lines control in the template editor to limit text layers to a set number of lines (truncated in preview and generated images)
  • added: Site Health → Info includes CoverKit checks for Imagick formats, cache, memory, alpha, and resize; heavy render tests run asynchronously on the Status tab with results mirrored in Info
  • changed: minimum PHP version is now 8.0 (Composer dependency aligned with endroid/qr-code 4.8.2)
  • fixed: Test template no longer ships with hardcoded shape IDs that could clash when you duplicate layers
  • improved: default CoverKit, Starter, and Test templates use a white canvas background and clearer layer names in the template editor
  • improved: Starter template is titled “Starter” and orders the welcome text before the logo so it reads as its own preset
  • improved: first-time Freemius activation opens the free connect flow by default (require_license=false) unless you choose license activation explicitly
  • improved: plugin passes WordPress Plugin Check with no reported errors or warnings
  • added: public roadmap at docs.coverkit.com/roadmap (synced from root ROADMAP.md)
  • changed: CoverKit admin screens (templates, settings, examples, and account) now live under a top-level CoverKit menu instead of Media
  • fixed: posts list preview images not loading in the admin (REST cookie auth now receives a wp_rest nonce on the image URL)
  • fixed: featured image REST URLs are publicly accessible on the front end (same anonymous access model as Open Graph images)
  • fixed: use case and Open Graph REST image routes with JPEG/WebP (non-PNG) extensions serve a real file again after format conversion
  • fixed: block editor featured image preview respects featured_image_id on the REST image URL (logged-in editors; mapping and generator no longer fall back to the saved thumbnail)
  • fixed: block editor featured image preview uses the current (unsaved) featured media ID when a valid REST nonce is present, so Remove/Replace updates before save
  • fixed: block editor CoverKit featured image preview refreshes after Remove or Replace (cache-busting query on the preview URL)
  • fixed: block editor featured image preview URLs no longer append a large cache-busting payload; only the featured media ID is sent
  • fixed: block editor featured image preview uses the template canvas dimensions instead of a hardcoded 1200×630 size
  • fixed: posts list preview <img> width/height attributes follow the real output aspect ratio (max width 72px)
  • fixed: duplicate page titles on the documentation site
  • improved: block editor Summary featured image shows the CoverKit generated preview and updates when you change the assigned template or template use case settings
  • improved: classic editor Featured image meta box shows the CoverKit generated preview on post types without the block editor
  • improved: template editor use case preview uses the full canvas image with CSS crop simulation for fixed output sizes (no server-side crop on the preview request)
  • improved: template editor Use Cases sidebar uses a simple two-step navigator (list of use cases, then detail) instead of stacked accordions
  • improved: non-PNG outputs reuse an existing derivative file next to the PNG when present, avoiding repeat Imagick conversion unless you force regeneration
  • added: Featured image use case replaces front-end post thumbnail output with a CoverKit-generated image while keeping the original attachment as mapping input
  • added: optional per-use-case preview column on the posts list for post types you select in the use case settings (one column per template that has the use case enabled; when the same use case is on several templates, each gets its own column with the same use case heading)
  • added: click a posts list preview thumbnail to open a larger image in a native popover (CSS anchor() positions it beside the thumbnail when the browser supports it)
  • added: public documentation site at docs.coverkit.com (built from docs/ on each update)
  • changed: generated image formats (e.g. JPEG, WebP) are no longer restricted by a premium license; format follows the use case assignment like other settings
  • changed: opening the template editor Use Cases sidebar no longer auto-opens the first enabled use case; the list screen stays until you pick one
  • changed: use case REST output_profile now exposes a boolean crop with dimensions only; dimensions_policy and crop_gravity were removed, and fixed-size output cropping is always centered on the server
  • Initial release