Changelog

Release Notes

Every feature, every improvement, every fix since v1.0.0.

Page 19 of 24 - 710 releases, newest first.

v2.27.4

Author Pages Get Photos and an Archive Layout Fix

  • Author archive pages now show the author's photo next to their name in both Finance and Pets - the header no longer reads as an anonymous text block.
  • Finance archive pages (category, tag, author) stacked the sidebar full-width below the article cards because the layout container had no grid rules; the sidebar is back in its right-hand column. The archive breadcrumb also lost its detached white band, matching single posts.
  • Author archive pages claimed every author was a "Financial Analyst" when no credential was set; the fabricated fallback was removed and only real credentials render.
  • On the Pets homepage, when the newest post was the only one published, the grid below the featured card rendered as a large blank area; a short "more articles on the way" note now fills it.
v2.27.3

Finance Theme: Sans Headings, Breadcrumb Fix, Dark-Mode Readability

  • The default heading font switched from the serif Fraunces to Inter: every heading across the theme now shares one modern sans family. Sites that picked a custom heading font in the Customizer keep their choice.
  • On single posts the breadcrumb sat in a detached band that ended up unreadable behind the colored post header; it now lives inside the header as light, legible text.
  • In dark mode, links inside articles and the table of contents used the light-mode teal and nearly disappeared against the dark background; dark mode now switches them to a bright, readable tone without touching buttons or the hero.
v2.27.2

Finance Theme: Sticky Table of Contents, Author Bio, Tidier Cards

  • The "In This Article" table of contents no longer pushes the article down from the top of the content: it moved into the right sidebar, where it stays visible (sticky) while the reader scrolls through long articles.
  • Article cards were tidied up: date and reading time sit on one muted line separated from the content, and the author appears as an aligned chip with a round photo instead of a loose letter placeholder. The homepage now also loads author photos for its cards.
  • More breathing room between the homepage hero and the "Latest Articles" section.
  • The author box under articles rendered without the author's biography because the router does not pass it; the template now loads the bio itself, so the full author card (photo, name, bio) appears.
v2.27.1

Finance Theme: Design Consistency Pass and Author Byline Fix

  • Every Finance article showed "Staff Writer" as the byline and skipped the author box entirely, even when the post had a real author. The template expected author data in a nested array while the router provides flat fields; the template now reads both, so the correct name, avatar and author box render on every post.
  • The Finance theme received a design consistency pass: the serif display font is now reserved for article headlines while all interface labels use the sans family, the color palette was unified around the theme's navy and gold (the off-brand purple button and blue underlines are gone), the newsletter box no longer blends into the hero, the unused gray band between header and hero was removed, the trending numbers and footer fine print are readable, the author avatar aligns with its name, and archive pages say "1 Article" instead of "1.00 Articles".
  • Hardcoded newsletter and footer texts that promised "market analysis and investment tips" were replaced with neutral wording that fits any finance site built on the theme.
v2.27.0

Logo Variants: Dark-Mode and Retina Logos, Uploaded from the Panel

  • Settings → Branding now accepts three optional logo variants alongside your main logo: a dark-mode logo and 2x (retina) versions of both. When the visitor switches to dark mode the logo swaps instantly - no page reload - and high-density screens automatically receive the sharper file. If you never upload a dark logo, nothing changes: the light logo is used everywhere, exactly as before.
  • Themes with permanently dark areas (like the Pets footer) automatically prefer the dark-mode logo there when one is uploaded, so a dark-text logo no longer disappears into a dark background.
  • The Finance homepage never listed articles on any installation: the home route loaded the template without passing it data, so the "Latest Articles" section always claimed the site was empty. The template now queries published posts itself, with pagination.
  • A sweep of rough edges reported on fresh installs: the tagline no longer duplicates next to the logo in the Finance header, raw emoji icons were removed from category chips and lists in both Finance and Pets, a literal "NULL" tag and a "0.00 views" line no longer render in the Finance sidebar, empty tag boxes hide themselves, the featured-post category badge no longer overlaps the title in Pets, and legal pages regained a readable header in all themes.
v2.26.1

Theme Honesty: Placeholder Stats Removed, Fresh-Install Language Fixed

  • The Finance theme homepage shipped with hard-coded placeholder claims - invented reader counts, satisfaction percentages and a fake "expert analysts" figure. All of it is gone: the hero now speaks with your site name and tagline, and the stats strip only appears once it has real numbers from your own database to show.
  • Fresh installs now seed the site language from the setup wizard. Previously the language row was never written, so every new site quietly fell back to Turkish in the footer and legal pages - even when everything else was in English.
  • Finance and Pets headers printed the logo and the site name side by side, doubling the brand. With a logo set, the text is now kept for screen readers only; without a logo, the text brand still shows.
  • The Pets homepage listed every category - including empty ones and the seeded "Uncategorized" - each with a "0" badge. Category lists now show only categories that actually have published posts, without count badges.
v2.26.0

Zero-Setup Scheduling: Posts Publish On Time Without a Server Cron

  • Scheduled posts and the content queue no longer depend on a server cron job. A built-in scheduler keeps a "next job due" timestamp and, when that moment arrives, runs the publishing engine right after a page response has been delivered to the visitor - so a post scheduled for 14:37 goes live on the first visit at or after 14:37, and the visitor never waits for it. On hosts that cannot detach the response, the work is handed to a lightweight background request instead.
  • A real cron job is still first-class: when one is configured it takes over completely and the visitor-triggered scheduler switches itself off, adding zero overhead. It can also be disabled explicitly with the JEK_DISABLE_PSEUDO_CRON constant.
  • The old fallback rolled a dice on every request (a 1% chance), which meant late posts on quiet sites and wasted database work on busy ones. The new scheduler is deterministic: on a normal request it reads one or two tiny files and does nothing else - no database queries, no guesswork.
v2.25.0

First-Publish Journey: Redesigned Welcome Guide

  • The dashboard welcome guide was rebuilt as a slim one-line journey rail: a circular progress ring, five connected step dots and a single call-to-action for whatever comes next. It takes a fraction of the space of the old checklist and reads at a glance.
  • The five steps now follow the real order of setting up a site: site identity (name and tagline), logo, first category, first published post, and securing your admin password. Every step updates live as you complete it anywhere in the admin, and each links straight to the right screen.
  • "Pick a theme" and "connect an AI provider" are no longer setup steps - keeping the theme you chose during installation is a perfectly good choice, and AI is optional.
v2.24.2

Featured Image Path Fix in Theme Templates

  • A handful of theme templates (Recipes cards and pages, Starter posts, Pets error page) printed the featured image path exactly as stored in the database. Relative paths then resolved against the site root and returned 404, so those images never showed. All of these now resolve through the central image helper, which builds the correct uploads URL and serves the best available format.
v2.24.1

Logo Aspect Ratio & Accessibility Fixes

  • Site logos in the Health and Travel themes now declare their real pixel dimensions instead of fixed placeholder values, so uploaded logos of any shape render at the correct aspect ratio without distortion or layout-shift warnings.
v2.24.0

Setup Wizard 2.0: WordPress Migration at Scale & Smart Recovery

  • Resumable WordPress migration: progress is saved on the server after every batch - if your browser closes or the connection drops mid-migration, reopening the wizard offers to continue exactly where it left off.
  • Same-server fast path: when WordPress lives on the same hosting account, images are copied directly from disk instead of downloaded over HTTP - large media libraries migrate in a fraction of the time.
  • Smarter server pre-check: disk space, memory limit, upload size and next-gen image support are now verified up front, with plain-language guidance for anything that needs attention - required items block, optional ones just warn.
  • Full WordPress fidelity: pending, private and scheduled posts keep their status, comment reply threads are preserved, comment author links are carried over, and your site logo is localized automatically.
  • Wizard actions are protected with a per-session token, and the legacy parameter that allowed re-running installation on an already-installed site has been removed.
  • In-place migrations (same domain) now migrate images correctly: previously same-domain image URLs were skipped as "already local", and removing the old WordPress files afterwards broke every image in your content.
  • Large sites no longer risk server timeouts: imports run in time-budgeted batches with keyset pagination, and comments are imported in batches too - sites with tens of thousands of posts and comments migrate reliably on shared hosting.
  • Tag and category names containing commas are no longer split into separate terms, and long tag lists are no longer truncated.
  • Your existing .htaccess is backed up before installation replaces it, featured images resolve from WordPress metadata instead of unreliable legacy URLs, and stale responsive image attributes pointing at the old site are cleaned up.
  • The setup wizard now speaks your language end to end - every server-side message is available in English and Turkish, and unrecoverable server errors return a readable explanation instead of a blank response.
v2.23.1

Managed-Install Indicator Hardening

  • Centrally-managed installations without the license enforcement stack no longer show a dead-end "Update Available" banner and sidebar badge - the managed-install marker is now honored everywhere the update UI is rendered.
v2.23.0

Commerce Core: Updates, License Portability, Plan Upgrades & Support

  • License portability from the customer panel: see every site bound to your license, remove one to free the slot, add a new domain, and activate there - moving a license between sites takes a minute and needs no support ticket.
  • Theme and plugin updates now flow through the same signed channel as core: RSA-signed manifest covers every package, one-click theme/plugin updates work in the admin panel, and a publish pipeline ships them (package → verified upload → catalog).
  • Plan upgrades from the customer panel: pay only the difference, your license key stays the same, and your site limit rises the moment payment completes - no re-activation on your sites.
  • Support hardening: ticket confirmation emails to customers, staff notifications on replies, customer file attachments, priority support wired to your plan (Pro+ can open urgent tickets), and contact-form messages now land in the support queue instead of a write-only table.
  • Core update notes in the admin panel now show the real release changelog instead of a generic package label.
  • Update access tier is now read from the license record, so plan upgrades take effect on the update channel instantly.
  • License seat operations no longer depend on the execution context - the customer panel, admin, and API all use the same database seam (previously the panel path could fail fatally).
  • Support tables are now guaranteed with self-healing schema (including legacy installs), so the customer portal cannot hit a missing-table error.
v2.22.0

Site-Wide SEO Hardening

  • Archive pages (category, tag, author, search) now generate their own unique titles, meta descriptions, and Open Graph tags - no more duplicate-title clusters across archives, on every theme, with no theme changes required.
  • Optional tag archives: a new SEO setting turns /tag/ pages into real, sitemap-listed archives (thin tags stay auto-noindexed). Off by default, matching modern crawl-budget guidance.
  • Feeds now declare a WebSub hub, so feed readers and discovery services get real-time update pushes; uploaded images receive an automatic humanized alt text when none is provided.
  • The first large content image on each page is now promoted to eager loading with high fetch priority - a direct LCP (Core Web Vitals) win on image-led pages.
  • Meta descriptions no longer cut words in half: automatic descriptions now end on word boundaries with clean punctuation.
  • Retired Google/Bing sitemap-ping calls were removed from the publish path (they only added seconds of dead waiting), and duplicate IndexNow submissions were deduplicated to a single ping per publish.
  • Sitemap accuracy: real last-modified dates in the index, paginated post sitemaps are announced above 50k URLs, and video sitemaps join the index when video posts exist.
  • Structured data output is hardened: post content is now escaped everywhere a schema is written, so no article can break the schema block.
  • Open Graph URLs on archive pages pointed to the homepage; they now match the canonical URL. og:locale now always agrees with the html lang attribute.
  • On subdirectory installs the og:image check failed silently and social cards shipped without an image; the base path is now resolved correctly.
  • Non-existent category and author URLs returned an empty page with HTTP 200 (soft-404); they now return a real 404. Duplicate Recipe/FAQ schema emissions are prevented page-wide.
v2.21.2

Stories: Consistent Emoji Art, Reaction Switching & Live Reaction Stream

  • Reactions now use embedded SVG emoji art (Twemoji) instead of OS emojis - the same crisp, modern look on every device and browser, with no external requests.
  • You can now change your reaction: tap a different emoji and the previous one is replaced, with counts adjusted correctly behind the scenes.
  • Earlier reactions are now visible to every viewer as a subtle ambient stream - tiny emojis float up the story while it plays, proportional to how many reactions the slide collected.
  • The Statistics page was redesigned: KPI tiles on top, per-slide view bars, CTR column, emoji-by-emoji reaction breakdowns, inline poll result bars, and a visual completion meter per story.
v2.21.1

Instagram-Style Story Reactions

  • Story reactions were redesigned in Instagram's quick-reaction language: six bare emojis (❤️ 😂 😮 😢 🔥 👏) with a springy pop on tap and a shower of emojis floating up the story - no button chrome, no grey chips.
v2.21.0

Stories v1.1 - Auto-Stories, Polls, Reactions & Analytics

  • Auto-stories: when you publish a post, a story is created automatically from its featured image, title, and link - and retires on its own after a configurable lifetime. Your story strip stays fresh with zero manual work.
  • Poll slides: ask a question with 2–4 answers; visitors tap to vote and instantly see live percentage bars. One vote per visitor, no login required.
  • Emoji reactions (🔥 ❤️ 👏) on every slide - a single tap, cookie-free, one reaction per slide, with a satisfying burst animation.
  • Statistics tab: per-slide views with a 7-day column, link clicks with CTR, reactions, poll result breakdowns, and a completion rate showing how many viewers reach the last slide.
v2.20.2

Stories Cache Fix & Cleaner Admin

  • The Stories admin was decluttered: slide editing is now collapsed behind an Edit toggle, add-slide tools are grouped into tidy accordions, and settings use aligned rows with inline inputs.
  • The Stories viewer script is now served with a server-cache bypass, so viewer fixes reach visitors immediately after an update instead of being pinned to a stale cached copy.
  • Closing the viewer is hardened at the style level as well - the close button, Escape, and swipe-down work even if a theme stylesheet interferes.
v2.20.1

Stories Viewer Fixes & Inline Links

  • The story viewer close button (and Escape / swipe-down) now reliably closes the overlay.
  • Slide links are now clickable text instead of a separate button: the caption or card text itself opens the link, and inline links can be placed on any word with [visible text](url) syntax.
  • The story-age indicator in the viewer header now shows explicit units (e.g. "3 h"), so it can no longer be mistaken for the slide duration.
v2.20.0

Stories - Instagram-Style Stories for Your Site

  • New Stories plugin: a tappable story strip with a full-screen viewer - image, video (MP4/WebM), and text-card slides with auto-advancing progress bars, swipe/keyboard navigation, and hold-to-pause. Mobile-first, dependency-free, and zero page weight when no story is live.
  • Every slide can carry a caption, a custom duration, and a call-to-action link with its own label - turn announcements into traffic.
  • Scheduling and auto-expiry: stories go live and retire on their own; permanent "Highlight" stories pin to the end of the strip. View counts are tracked per story, cookie-free.
  • Placement is yours: choose the strip position (below header, top of content, top of page, above footer, or a custom CSS selector) and target pages from settings - saved per theme, works on every theme without touching theme files.
  • Appearance controls with live preview: circle or vertical-card shape, three sizes, classic gradient / solid / no ring, alignment, optional strip heading, and automatic gray rings for already-watched stories.
v2.19.4

License Enforcement Gap-Closing

  • The managed-install marker is now cryptographically signed and bound to its domain. Legitimate managed installs are unaffected.
v2.19.3

License Enforcement & EULA Hardening

  • Licence verification records which distribution a copy came from, so an unauthorised redistribution of a licensed copy can be identified. Legitimate installations are unaffected.
  • The End User License Agreement (EULA) was strengthened with explicit clauses on embedded copy-tracking, its evidentiary value, liquidated damages, and reverse-engineering/rebranding bans; checkout now records EULA acceptance.
v2.19.2

Install Integrity Hardening

  • The install-integrity subsystem was strengthened so unauthorized modification or redistribution of a licensed copy is detected and traceable more reliably. Legitimate installs are unaffected.
v2.19.1

Traffic & Distribution: Web Push Repair, Single IndexNow Key and Outreach Pacing

  • The weekly opportunity limit in the backlink workspace is now actually enforced: once the week's quota is used, new additions are paused with a clear message - keeping outreach deliberate, exactly as the screen promises.
  • Traffic Health now includes a Web Push row: service-worker reachability, subscriber count and the last send at a glance.
  • Web Push now works end-to-end. The public endpoints the browser needs (service worker, key, subscribe) were never wired into the router, so enabling push could not deliver a single notification. They are now first-class routes, subscriptions are validated before being stored, and sending respects a time budget so a large subscriber list can never stall publishing.
  • One IndexNow key per site. The plugin and the core search pinger each generated their own key, leaving two key files in the site root and duplicate submissions. Both layers now share a single key; changing or regenerating it updates everything and removes the stale key file.
  • Saving a setting after a test or an error no longer shows a generic "Saved." - the real result (test outcome, error detail) is now displayed.
  • If VAPID keys could not be generated during activation, Web Push stayed permanently broken with no way to recover; the settings screen now regenerates them automatically and reports failures clearly.
v2.19.0

Social Auto-Publish: Instagram Stories, Discord, Evergreen Re-sharing and Reliability

  • Instagram Stories. Every new post can now also be shared as a 9:16 story a few minutes after the feed post - the image is prepared automatically from the featured image. On by default, one toggle in settings.
  • Discord channel publishing. Zero-friction: paste a channel webhook URL and every new post lands in your community as a rich embed (title, description, image, link). No app registration, no OAuth.
  • Evergreen re-sharing. Opt-in: older evergreen posts are periodically re-shared to your text channels for steady archive traffic - age threshold and daily cap are configurable, visual channels are excluded, and the same post is never repeated within the window.
  • Failed-item recovery. The queue screen now lets you retry or delete failed items (one or all) and shows a 7-day per-platform success-rate table.
  • Adding a new token-based platform no longer requires editing the admin screen: connection forms are generated from the platform registry.
  • Facebook Page connections now exchange for a long-lived token and refresh themselves - previously the token silently died within hours and the account broke on first publish.
  • The queue is now claimed atomically per item, so overlapping schedulers can never double-publish; stuck items self-recover after 30 minutes, and web-cron runs respect a time budget.
  • Pinterest "Diagnose" results were never written to the log (a status value the table did not accept was silently dropped).
  • Expired connections are now labeled as expired with a clear reconnect signal instead of a generic error.
  • The X/Twitter authorization no longer requests a media permission the adapter never uses.
v2.18.34

Admin Raw-Key Repair: 249 Missing Translations Restored

  • Several admin pages showed raw translation keys instead of text (e.g. "admin_blog_posts.th_title") - in both languages. 249 missing dictionary entries were authored in Turkish and English across the blog posts, licenses, email templates, order detail, invoices, backups and login screens; a new linter check now blocks any future use of an undefined key.
  • The theme catalog page and the sidebar's First-Install Package label were hardcoded in Turkish; they now follow the admin language.
  • The invoices screen crashed on load: its overdue-count query referenced a column that never existed (due_at → due_date).
v2.18.33

Customer Portal Fully Bilingual + a Language-Leak Shield

  • A new internal language-leak linter guards every future change: any new user-facing string that is not born as a TR/EN pair is caught before release, so this class of bug cannot silently return.
  • Turkish text no longer leaks into the English customer portal (and vice versa). Every remaining single-language page was made properly bilingual: security settings, email verification, forgot/reset password, checkout and its success/cancel pages, support tickets, downloads and order details.
  • The setup wizard now speaks English. The first screen a new buyer sees was almost entirely Turkish; it is now fully bilingual with a TR/EN switcher, follows the browser language by default, and all of its error messages are translated too.
v2.18.32

Site Name Signal Completed Across every theme

  • Every theme's homepage now marks the site name as an H1 heading - completing all four signals Google documents for choosing the site name shown in search results, so Google stops falling back to the bare domain. The heading renders with zero visual change; inner pages keep their content H1. (Personal shipped in the previous release; the remaining 13 themes are covered now.)
  • The Minimalist theme's header brand was hardcoded to a specific site name; it now follows the Site Name setting like every other theme.
  • The Finance theme showed no brand at all when no logo was uploaded, and its homepage detection could mislabel search or paginated pages; both were corrected.
  • The Recipes theme rendered its brand as an H1 on every page, giving articles two H1s; the brand is an H1 on the homepage only now.
v2.18.31

Personal Theme: Site Name Signal Completed for Google (Homepage H1)

  • Google could fall back to showing your domain instead of your site name in search results. The Personal theme's homepage had no H1 heading - one of the four signals Google documents for choosing a site name (WebSite structured data, og:site_name, title, and a prominent heading). The header brand now renders as an H1 on the homepage only, with identical visual styling; inner pages keep their content H1.
v2.18.30

Buying Goes Live: Pricing-Page Checkout and a Discount Campaign Manager

  • The pricing page now sells. Every plan's button opens the secure checkout with that plan preselected; signed-in customers get their email and name prefilled, and the checkout language follows the site language.
  • Discount campaign manager. Define campaigns in the admin - percentage or fixed amount, date windows, redemption limits, per-plan restrictions and special-day presets (New Year, Black Friday, and more). Campaigns sync to the payment provider automatically; the pricing page shows a campaign banner and can apply the code at checkout without the customer typing anything.
  • Plan prices defined in code had drifted from the public pricing page; they are aligned again.

Get your site live

The setup wizard gets a site live in about 30 minutes. See the prices and the free edition.

View Pricing
  • Setup and live in 30 minutes
  • 15 ready-made themes
  • AVIF/WebP image optimization
  • Automatic SEO - Sitemap, Schema.org
  • Cookieless built-in analytics (ZeroTrack)

Be the first to know

New features, release notes and CMS guides. We send a couple of emails a month.