Changelog

Release Notes

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

Page 11 of 20 — 576 releases, newest first.

v2.65.0

Update Channel Restored, and a Real Path from Free to Paid

  • Güncellemeler screen: components your plan covers but your installation does not have can now be downloaded one by one. Coming from the free edition, premium themes and plugins were never on disk, and the channel only ever offered updates for what was already installed — so a paid plan delivered nothing until the whole package was reinstalled by hand.
  • Customer portal: a free licence now shows the paid plans, and once a paid licence exists the site can be moved onto it in one click. A domain belongs to one licence at a time, so the new licence previously could not be added while the free one still held the site; the move does both steps at once and does not spend a slot from the 30-day move allowance.
  • A licence upgraded in place from the free edition now receives a newly issued key. The key format itself marks a licence as free, so raising only the plan column would have left the customer paying for a plan the update channel still treated as free.
  • Updates could be listed but never downloaded. The key used to verify the signed update manifest was rotated on the server and the matching key never reached the product, so every install refused each package with a verification error while the panel still advertised the update. The current key now ships with the product; core, theme and plugin downloads work again. This is the single most important reason to install 2.65.0.
v2.64.1

Security Fix: Contact Notification Email Headers

  • The subject a visitor types into the contact form went into the notification email header as-is. A crafted subject could therefore add headers of its own — enough to have the site send mail to addresses the owner never chose, from the site's own domain. Every value that reaches a mail header is now stripped of line breaks and encoded, on both the SMTP and PHP mail paths, and recipient addresses are validated before use. Sites running 2.64.0 with the new contact notification should update.
  • The AI draft screen now requires an administrator, matching the other content screens. It previously accepted any signed-in account, so an editor or author could generate content with the site's own API key.
  • Replies to a contact notification now go to the person who wrote the message. The reply-to address was being set through a method the mailer did not have, so the call quietly did nothing.
  • A site name containing characters that look like a pattern reference no longer corrupts the header when the brand name is printed next to a square logo.
v2.64.0

A Setup Wizard Worth The First Impression — And A Contact Form That Delivers

  • The setup wizard was rebuilt around the first impression: a welcome that says what will happen, the four steps shown up front, the three ways to start side by side on one row, system checks in two columns, and motion that points at what matters. It respects reduced-motion settings and works the same on a phone.
  • The contact form now brings its own appearance. It used to inherit whatever the theme happened to provide, which on most themes was nothing — raw browser fields with labels beside them. Themes that style the form themselves are left untouched.
  • The wizard asks for the administrator name properly instead of silently filling in "Admin", and offers only the themes that are actually inside the package you are installing.
  • The setup wizard would not start. A single unescaped apostrophe in a Turkish label broke the whole page script, so the wizard opened with empty labels and a spinner that never stopped. Every download since 2.60.0 carried it. The wizard now parses in both languages and a release check keeps it that way.
  • Contact messages were being lost. On some installations the messages table had never been created — it was only built when a plugin was activated or an administrator happened to open the messages page — so submissions vanished while the visitor was told "message received". The table is now created the moment a message needs to be stored.
  • No email ever went out for a contact message. The message sat in the panel and the site owner heard nothing. Owners now receive a notification with the sender set as reply-to, so a reply is one click away.
  • A contact message could disappear silently. Four separate anti-spam paths dropped the message and still answered "sent". Nothing is discarded any more: a suspicious message is stored under Spam with the reason attached, so a false alarm can be recovered instead of lost.
  • The spam filter was tuned for comments and flagged ordinary contact messages — a plain message could land in Spam and never reach the owner. Contact submissions now only count as spam on decisive signals, and lesser suspicion is recorded as a note instead of blocking the message.
  • A stray search box appeared next to the logo on desktop headers. The in-menu search guarantee was modifying the page on load; it now only appears when the mobile menu opens and is removed when it closes.
  • An uploaded brand logo could overflow the header at its natural size. Every theme now caps the header logo, and a square logo (an icon rather than a wordmark) is shown with the site name beside it instead of leaving the brand nameless.
  • Related articles showed an initial instead of the author photo, while the same card showed the photo everywhere else.
  • On the finance theme, the newsletter box in category and author pages stretched down the whole page, and the author header was hard to read on its coloured band.
v2.63.5

The Search Sits At The Top Of Every Mobile Menu

  • Where a theme already puts a search inside its mobile menu, it is now moved to the top and given the same full width as everywhere else. The travel theme kept it at the very bottom, below every link, where it was easy to miss. All fourteen themes now open the menu the same way: search first, then the links.
v2.63.4

Search Always Inside The Mobile Menu

  • The mobile menu now always contains a search field. The search icon in the header disappears on narrow screens in different ways from theme to theme - one hides it at a breakpoint, another runs out of room, a third has it switched off in the theme settings. Rather than chase each theme, the menu itself now guarantees it: if the menu has no search of its own, one is added at the top. Themes that already put a search there keep theirs.
v2.63.3

Search On Mobile, In Every Theme

  • The search button was missing from the mobile header in the finance theme. Its buttons sat inside the navigation element, and the theme hides that element on small screens, so the search and day/night buttons went with it. They now sit outside it and stay visible.
  • The personal and trends themes had no search on phones at all: the header search box is hidden on small screens and nothing replaced it. Both now carry a search field at the top of the mobile menu, the way the pets theme already did.
  • The touch-target rule no longer resizes custom switches. The day/night control in the trends theme is a pill-shaped switch, and a 40px minimum turned it into a black circle.
v2.63.2

A Readable Mobile Menu In Dark Mode

  • In dark mode the mobile menu showed dark text on a dark panel, so the links were almost invisible. The shared mobile menu pinned its colours to light values for every theme, and nothing set the matching dark ones. The menu now reads the theme you are actually in, and follows it even if you switch the theme while the menu is open.
  • The order of the header buttons on phones and tablets is now day/night, then search, then the menu button on the far right.
v2.63.1

Mobile Header, Dark Documentation, Readable Turkish

  • On phones and tablets the search and day/night buttons now sit on the right, next to the menu button, in that order. They used to be pushed up against the logo while the menu button stood alone at the far edge. The layout is the same in all fourteen themes.
  • Documentation pages follow dark mode again. They were asking for colours that were never defined; a colour the browser cannot resolve makes it drop the whole line, so the backgrounds stayed white with no error anywhere.
  • Turkish text that had been stored through the wrong character set, showing accented letters as pairs of unrelated symbols, has been repaired across the site.
v2.63.0

Empty Screens, Dark Logo And Instant Refresh

  • On the Turkish site every page address is now Turkish: the cookie policy moved from /tr/cookie-policy to /tr/cerez-politikasi, with the old address redirected so existing links keep working.
  • Language alternate links now describe the page you are actually on. Documentation sub-pages were all announcing the documentation index instead of themselves, which made search engines discard the annotation for a third of the site.
  • An admin page could stop rendering halfway through, leaving everything below the greeting blank. A single empty date, image or e-mail column coming from the database was enough to do it. Every display helper now tolerates empty values, so one missing field can no longer take down a whole screen.
  • The dark mode logo you upload under Settings → General → Branding is now the logo that appears in dark mode. Some themes were guessing it from the light logo's filename instead of reading your setting, which showed an unrelated file or a broken image.
  • Uploading a logo now takes effect immediately. The address of the file carries a stamp derived from the file itself, and saving settings clears the CDN cache as well, so you no longer wait for the old copy to expire.
  • Publishing or editing a post also refreshes the CDN copy of your home page, feed and sitemap.
  • File sizes of zero are shown as "0 B" instead of producing a warning.
v2.62.5

Update Confirmation Shows The Version You Just Installed

  • The confirmation message after a core update now shows the version that was installed.
  • Theme and plugin updates also name the component's new version in the confirmation message.
v2.62.4

Reliable Rollback For One-Click Updates

  • The backup taken before a core update now covers every file that update changes, so restoring it returns the site to exactly its previous state.
  • Version information is included in the backup. After a rollback the admin panel and the update service report the same version.
  • Your media is never placed in an update backup, so backups stay small and your files are untouched.
v2.62.3

Security Follow-Up: Environment Detection And Content Visibility

  • A site decides whether it is running locally by looking at the server itself, never at the address a visitor sends. Local development is unaffected; set the JEK_ENV environment variable if you want to pin the mode.
  • Private network address matching was tightened, so lookalike external addresses are not treated as local.
  • Posts marked private are now hidden not only on their own page but also in archives, search, related and featured lists, the sitemap and the RSS/Atom/JSON feeds. This matters for sites migrated from WordPress, where private posts arrive as published. Administrators and editors still see everything in the panel, and an author still sees their own.
  • SVG files in a WordPress package are scanned as content during import; files carrying scripts or external references are not accepted. Static SVG logos import normally.
v2.62.2

Security Release: Stricter Input Validation And Reliable Throttling

  • Environment detection is decided by the server itself rather than by anything a visitor sends, so an installed site always runs in production mode.
  • Rate limiting on login, API and upload paths is now accurate under concurrent traffic.
  • Restoring a backup only accepts a .zip inside your own backups directory. Any other path is refused.
  • A WordPress package import writes only recognised media files. Anything else in the package is skipped and counted, and never lands in your uploads folder.
  • On an already-installed site, the setup wizard's remaining steps — including the WordPress cleanup — are tied to the browser session that performed the installation.
  • The support endpoint gives the same answer for every licence key it does not accept, and is rate limited.
  • The contact form links a message to a customer account only when the sender is signed in as that customer; everything else is filed as a guest request.
  • Language alternate links are escaped on output and built from a sanitised page name.
  • Newsletter click tracking verifies a signature before redirecting, so tracking links always lead where they say they do.
  • The newsletter queue worker only runs with the configured cron secret. Running it from a real cron job is unchanged.
  • Outgoing mail requires an encrypted connection: if TLS cannot be negotiated the send is aborted, and the newsletter mailer verifies the server certificate.
v2.62.1

Security Release: Tighter Role Boundaries And A Leaner Installation Package

  • The installation package is leaner: distribution-side components that a site owner never runs are no longer part of it.
  • Admin screens that affect the whole site — the ad manager, banner editor and comment import — require an administrator account.
  • Authors can edit, trash or delete only their own posts and their own media. Bulk actions skip anything that belongs to someone else and tell you how many items were skipped.
  • The newsletter subscriber list and campaign sending are administrator-only.
  • The order confirmation page shows an order only to the customer it belongs to.
  • Invoice PDFs live in a directory that is closed to the web and carry a random filename. They remain downloadable from your customer portal, where ownership is checked.
  • A licence that has been revoked or suspended cannot download the installation package.
  • A post marked private is not served to visitors on its own page. Administrators and editors still see it.
  • The example environment file ships with obvious placeholders, so a fresh installation always generates its own signing keys.
  • Theme stylesheet and script addresses now carry a stamp derived from the file itself. Before this, a corrected theme file could sit on the server for months while browsers and the CDN kept serving the old copy for up to a year.
  • Signing in on jekcms.com now updates the header immediately instead of leaving the "Sign In" button in place.
v2.62.0

Move From WordPress With One File: The jekcms Migrator Plugin

  • A WordPress plugin that packs your whole site into one file. Install "jekcms Migrator" on your WordPress site, press Start export, download the .zip -- that is the entire WordPress side. No database host, user or password, and no server-to-server MySQL connection, which most shared hosting blocks anyway. The export runs in batches and saves its progress, so sites with thousands of posts finish without hitting PHP time limits.
  • The package carries posts, pages and drafts, the category tree with its parent-child structure, tags, authors with their bios, approved comments, menus, media files, SEO titles and descriptions from Yoast, Rank Math or All in One SEO, and a redirect map from every old URL to its new address.
  • Two ways to bring the package in: the setup wizard has a third scenario ("Import a WordPress package") for brand-new installs, and an existing site takes it from Admin panel -> Import -> WordPress package. Both use the same import engine, so both apply exactly the same rules.
  • Imported images are copied into your own uploads folder and the addresses inside the content are rewritten to those local copies -- including the scaled variants WordPress writes into post bodies. Your images keep working after the old site goes offline.
  • Old WordPress URLs are installed as 301 redirects during the import, so links in search results and on other sites keep working.
  • The plugin is in the Downloads section of your customer portal, in English and Turkish.
v2.61.0

Google Console Grows Up: Connect With One Click -- No Cloud Console -- and Real Performance Charts

  • Connect with your Google account in one click -- like the big-name SEO plugins. Press "Connect with Google", sign in, approve; done. No Google Cloud project, no API enabling, no client ID/secret. The flow runs through jekcms's central OAuth relay: tokens are handed to your site server-to-server with a one-time code and never appear in a browser URL. The old "your own Cloud app" method remains as an advanced option.
  • Search Console now shows real charts and breakdowns: a clicks-and-impressions performance chart over the whole period, separate CTR and average-position trend charts, plus device and country breakdown tables -- alongside the existing top queries and top pages.
  • Analytics gained a daily users-and-sessions chart for the selected period.
  • The indexing-coverage scan tested page URLs with the redirecting /page/ prefix, so static pages were wrongly flagged as errors; it now checks the canonical /slug address.
v2.60.5

Content Wizard Tuned Like Clockwork: A Bulletproof AI Prompt, Multi-Part Imports, and a Working "Start Fresh"

  • The copy-paste AI prompt now works like clockwork on ChatGPT, Claude and Gemini alike: hard JSON-validity rules (single-string escapes, plain quotes, first/last character contract) plus a chunking protocol for long batches -- the AI closes each part as valid JSON on its own and continues with only the remaining articles.
  • The single-draft AI Content generator was upgraded from its v1 prompt to the wizard's quality standard: zero-fabrication rule, banned AI-tell phrases, honest handling of volatile figures, and the site language as the default -- with a larger response budget so long drafts no longer get cut off.
  • The wizard's "Start fresh" button appeared to do nothing: it reloaded the page and the browser silently restored the old form values. It now performs a clean reset via a fresh navigation -- saved parameters are wiped and the wizard truly starts over.
  • Importing the AI's answer in multiple parts overwrote the earlier batch: only the last part got scheduled. Imported items now accumulate across parts, the input box clears for the next part, and the calendar step covers every article.
  • The AI Content page rendered the model's raw HTML straight into the admin preview. The preview now passes through a strict sanitizer (tag whitelist, event handlers and script URLs stripped).
v2.60.4

Single-Post Publishing Hardened: Clean Structured Data, and Scheduled Posts That Fire Every Publish Signal

  • The editor's SERP preview and pixel meter now measure the full rendered title -- including the theme's " | Site Name" suffix -- matching what Google actually truncates.
  • The permalink bar and SEO snippet preview now show the real canonical URL (/slug) instead of the redirecting /post/ prefix, and the SEO analyzer no longer marks empty FAQ rows as an applied FAQ schema.
  • Hidden "enable" fields in the editor submitted even while invisible, so every save quietly wrote empty Product/Event/Review/Course/Recipe/LocalBusiness objects into the post's schema data -- and picking a type without filling its fields could emit an incomplete schema node on the live page (a Search Console error waiting to happen). Blocks are now saved only for the selected type when they carry real content, and the live output also skips all-empty legacy blocks.
  • Selecting the Recipe or Local Business schema type showed no fields until the post was saved and reloaded; both panels now appear instantly, and the live JSON-LD preview covers them too.
  • Scheduled publishing ran outside the content quality gate and stamped a fake 400-3000 view count on every calendar-published post. All scheduler entry points now converge on one gated engine: PublishPolicy decides, the recorded publish date is the planned time, and view counters stay untouched.
  • Posts published by the calendar went out silently -- no social auto-share, newsletter, push or search-engine ping ever fired. The scheduler now runs the same post_published pipeline as a manual publish.
  • A post marked as scheduled without a date could hang in the queue forever; it is now date-stamped on save and goes live on the next scheduler pass.
v2.60.3

Deep SEO Audit Pass: Correct Page Schemas, One Canonical URL per Post, and a News Sitemap That Respects Publish Time

  • Static pages (About, Contact...) no longer declare themselves as blog articles in structured data: the misleading BlogPosting node is gone and the WebPage node gained a description. Posts keep their full Article graph untouched.
  • More tracking parameters are now stripped with a 301 (gclid, msclkid, twclid, igshid, mc_eid and friends), and UTM parameters are caught anywhere in the query string -- fewer duplicate URLs reach the index.
  • Uppercase or otherwise-cased URL variants of a post used to render as a 200 page pointing the canonical at the wrong variant -- a duplicate-content opening. Any request whose path differs from the stored slug now 301-redirects to the single canonical URL, in every theme.
  • The Google News sitemap used the creation date instead of the publish date: scheduled posts could miss the 48-hour news window or report the wrong publication_date. It now keys on the actual publish time, and the keywords list is truly capped at five.
v2.60.2

Traffic & Distribution Untangled: One Flat Tab Bar Instead of Nested Menus, and Three Publisher Cards per Row

  • The Traffic & Distribution screen dropped its inner module sidebar: modules are now a single horizontal tab bar, ending the confusing nested navigation.
  • Publisher cards in News Publishers now lay out three per row (two on narrow screens), so the catalogue scans much faster.
v2.60.1

Traffic & Social, Sharpened: Full-Text Feeds Repaired, Fresh 2026 Backlink and Publisher Sources, and Far Less Text to Wade Through

  • New verified backlink sources in the Authority Builder: #JournoRequest tracking (X/Bluesky), the AllTop curated directory, product testimonial outreach, Product Hunt and Indie Hackers for tech sites, and the WalletHub expert panel for finance sites.
  • New publisher channels in News Publishers: Refind (curated link digests) and Techmeme (the tech industry news river), each with honest, step-by-step guidance.
  • Much less text to wade through: publisher cards now show a two-line summary with full details folded away, backlink source cards fold their "why & how" paragraphs, and the Social Connections screen gained a status strip with a "connected channels only" filter.
  • The News Publishers readiness checklist now performs real HTTP checks on your RSS feed and sitemaps (cached for 10 minutes) instead of always showing green.
  • Critical: the main feed generator was silently failing on every request and falling back to a minimal RSS without full article content -- breaking the full-text requirement of platforms like NewsBreak and SmartNews. Full-text feeds are restored, and the "full content in feed" switch now defaults to on.
  • Saving Traffic or Social settings on installs where the plugin tables were never created used to fail (silently or with a server error); both plugins now create their own tables on demand.
  • The Hashnode documentation link in News Publishers pointed to a page that no longer exists.
v2.60.0

Cloud Backups Arrive: A Tabbed Backup Center, Truly Complete Backups, and an Import That Survives Every Broken CSV

  • Cloud backup: send backups to S3-compatible storage (AWS S3, Cloudflare R2, Backblaze B2, Wasabi, MinIO) or an FTP/FTPS server -- with a one-click connection test, encrypted credential storage, per-backup "send to cloud" buttons and an option to auto-upload the daily backup. Step-by-step setup guides for each provider are built into the page.
  • The Backups screen is now a tabbed center: Backups, Cloud Backup and Schedule. Creating a backup shows a modern toast notification and the new backup appears right in the history list -- no more hunting at the bottom of the page.
  • Import safety options: "skip existing content" (re-running the same CSV never creates duplicates) and an optional old-site address that rewrites internal links to your new domain.
  • Full backups are now truly full: themes and plugins are included alongside the database and media, and restore puts them back safely. Automatic maintenance keeps cleaning old auto-backups per your retention setting.
  • The importer now handles real-world files: semicolon-separated Excel exports, Turkish Windows-1254 encoding, rows with missing or extra columns (repaired and reported instead of silently dropped), and huge CSVs are streamed without exhausting memory. Wrong files get a clear upfront error listing the missing columns.
  • The import button locks while running with a progress note, so an impatient double-click can no longer import everything twice. The setup wizard's finish screen now offers a direct "Import Content" shortcut.
  • Admin profile photos showed as broken images in the user list, user editing and the top bar when the avatar was stored with an absolute uploads path -- the admin now resolves avatars exactly like the site front end.
  • Error messages on admin pages could silently vanish: the shared admin header overwrote the page's error variable while rendering flash notices. Import errors (wrong file, security token) are now actually visible.
  • Custom S3 endpoints with a port number (e.g. MinIO) lost the port and the upload went to the wrong server.
v2.59.3

One Tidy General Tab: Media and Social Move In, and the API Tab No Longer Crashes on Fresh Installs

  • Settings -> General now hosts seven sub-tabs: Site Info, Branding, Localization, Reading, Discussion, Media and Social Media. The sidebar got two entries shorter; old links redirect automatically and saving returns you to the same sub-tab.
  • Settings -> API & Automation could crash halfway with a server error on installs where the AI tables were never created (the setup wizard did not install them). The tables now ship with the installer, are self-created on first visit, and the page renders safely even if creation fails.
  • Daily background maintenance now also repairs the AI tables on existing installs, so the fix reaches every site without any manual step.
v2.59.2

Tidier Settings and Serious Spam Defense: General Now Has Sub-Tabs, and Bot Floods Can No Longer Bloat Your Database

  • Settings -> General is now organized into sub-tabs: Site Info, Branding, Localization, Reading and Discussion. Reading and Discussion moved out of the sidebar into General -- fewer clicks, less clutter; old links redirect automatically.
  • Flood guard: comments, the contact form and newsletter signups now have hourly and daily per-IP caps plus a site-wide hourly ceiling. Requests over the cap are silently dropped without ever touching the database -- a bot army can no longer pump millions of rows into your site. Limits are adjustable under Comments -> Spam Protection.
  • Newsletter hardening: a honeypot field catches bots, blacklisted addresses are filtered, and any single email address can receive at most 3 subscription emails per day -- so nobody can weaponize your signup form to mail-bomb a victim.
  • The spam filter got sharper: it now also scores bot-like browser signatures, missing user agents and shortened URLs (bit.ly and friends), on top of the existing link, keyword and timing checks.
  • Definite spam is no longer stored: spam comments used to be written to the database and pile up -- now they are rejected outright, with only a compact trace kept in a self-pruning log (30-day retention, hard row cap). The contact form now runs through the same spam engine too.
  • Automatic maintenance now also clears spam comments older than 30 days and stale rate-limit counter files.
  • Database maintenance cleanup was silently doing nothing on MariaDB servers (the table checks always failed), so old logs and view records never got purged -- cleanup now actually runs.
  • The logo and social-image generators read the site name from a field that now lives on another sub-tab; they fall back to your saved site name instead of a generic placeholder.
v2.59.1

Settings, Audited: Maintenance Mode, Static Homepage, Comment Rules, Media Sizes and Cache Controls Now Actually Work

  • Static homepage: Settings -> Reading can now show a published page as the homepage, with a page picker; switch back to latest posts anytime.
  • A master "Comments" switch: turn commenting off site-wide and both the comment blocks and the submission endpoint respect it.
  • Maintenance mode is real now: visitors get a proper 503 maintenance page (theme template when available) while signed-in admins keep browsing the site.
  • Comment rules are wired end to end: moderation on/off decides approved vs pending, "must log in to comment" is enforced on submit, and the default comment status applies to newly created posts.
  • Media settings drive real processing: max image size, JPEG quality, thumbnail/medium/large dimensions and the WebP/AVIF conversion switches now control uploads (verified with real uploads).
  • Cache controls are honest: the toggle and lifetime now set the Cache-Control header on visitor pages, and the lazy-load switch truly adds or removes lazy loading (LCP promotion preserved).
  • The feed "full content" switch works across RSS, Atom and JSON feeds; the timezone setting is now applied to date handling.
  • Dead settings that controlled nothing were removed: HTML minify and defer toggles, comments-per-page, time format, and the unused Google OAuth / n8n / ElevenLabs API fields.
  • Comment submission could crash with a server error at the spam-check step because the spam filter was never loaded on that path -- submissions now always reach the spam check.
  • Changes made on the Settings screen were missing from Settings History; every save from the form is now recorded with old and new values.
  • Settings whose stored row lived under a different group could silently fall back to defaults (e.g. cache lifetime); readers are now group-agnostic.
v2.59.0

Every Theme Is Now Modular: Drag-and-Drop Sections, Menu Designs and Real Color Controls Across every theme

  • The modular layout engine now covers every theme. Every homepage is built from reorderable cards in Customize → Homepage: drag to reorder, toggle sections on or off, and tune each one (post counts, titles, category lists) from its gear panel.
  • New universal sections in the engine: category spotlights, opinion row, edition strip, video row, CTA band, photo gallery strip, plus sidebar widgets for popular posts, trending, search, social links, an about box and a free info box.
  • A Menu tab in the customizer for every converted theme: pick between menu designs (classic, centered, slim and theme-specific variants), toggle sticky behavior, search and the light/dark switch.
  • Sidebar control where the theme has one: choose whether it shows on the homepage and post pages, pick left/right placement, and manage the widget stack with the same cards.
  • Color and typography controls now bind to each theme's real CSS variables with defaults that match the current look exactly — changing a color changes the site, and not changing anything changes nothing.
  • Themes that declared menu locations but never rendered them now consume them: primary menus you build in Appearance → Menus finally drive the header in News, Finance, Lifestyle and Recipes, and footer menus render as footer columns.
  • Turkish sites get a Turkish storefront on News and Entertainment: section titles, dates, comment forms and newsletter copy now follow the site language instead of being hard-coded English.
  • Dead customizer fields that controlled nothing (fake tickers, chart colors, unused archive filters) were removed across themes — every remaining control does something.
  • Finance: the Related Posts section always came back empty — it now queries real related content by category and tags.
  • News: the comment form silently attached comments to the wrong article (the last related post on the page). Comments now always land on the article you are reading.
  • Crypto: trending and article vote counters showed fabricated numbers; they now display the real vote totals from the voting API.
  • Lifestyle: menu items built in the admin now resolve page and category URLs correctly instead of printing raw stored links.
v2.58.0

Branding, Done Right: Generated Logos Publish for Real, OG Images, SERP-Safe Favicons

  • Social share (OG) image module under Settings → General → Branding: upload your own 1200×630 image or generate one from four professional templates (dark gradient, light minimal, color band, monogram) in your brand color — with live preview and one-click apply.
  • Generated favicons now also produce real PNG files (48px + 180px Apple touch icon). Google's SERP crawler does not read SVG/data-URI favicons; the PNG link is emitted first so your icon shows up in search results.
  • The automatic logo generator was rebuilt: rounded monogram marks, balanced typography, two-letter initials, duotone and pill styles, and two new palettes (slate, rose). Same six styles, distinctly more professional output.
  • Settings → General was redesigned in the theme customizer's card language: grouped cards with clear descriptions, two-column field rows, pill source toggles and round color swatches.
  • Organization/Person schema now falls back to your site logo when no schema logo is set — search engines get a logo either way.
  • Generated logos and favicons never reached the live site — they lived only as admin-side SVG settings while themes read the URL fields. On save, generated assets are now written to real files under uploads/branding and the URL fields are updated; the logo, favicon, OG image and schema all pick them up.
  • The Health and Minimalist themes hard-coded favicon links in their header, overriding whatever favicon you uploaded. Removed — the favicon you set in Settings now always wins.
  • The footer description text (Settings → General → Site Info) now actually renders under the footer logo on the Health theme.
  • Footer customizer on themes that manage their footer via the Theme Customizer (e.g. Health) no longer shows a dead-end notice — it takes you straight to the right Footer section.
v2.57.5

Health Theme: The Footer Menu Location Now Actually Renders in the Footer

  • On the Health theme, a menu assigned to the Footer location never appeared — the footer columns were fixed. When the footer menu has items, it now replaces the "For You" column, titled with your menu's name; when empty, the footer keeps its current layout exactly.
v2.57.4

Menu Manager Redesigned: The Customizer's Card Language, Applied to Menus

  • The Menus screen now speaks the same visual language as the theme customizer: menu items are drag-handle cards showing the title and a muted path, with a rotating chevron opening each item's settings; the menu list uses count badges and calm hover states; the add-item panels became clean scrollable pickers. Everything reads clearly in dark mode.
  • Admin copy on this screen was tightened to short, direct statements.
v2.57.3

Menu Manager Repaired: No More Phantom Items, Instant Frontend Sync, One Save That Saves Everything

  • The menu manager silently re-created sample items ("Home, Recipes, About, Contact" in English, with categories nested under Recipes) every time the page was opened while a menu was empty — deleted menus kept coming back and the skeleton did not match the active theme or site language. That auto-seeding is gone; an empty menu simply falls back to the theme's own navigation, and the explicit "Fill Default Items" button remains for those who want a starter set built from real categories.
  • Menu changes now reach the site immediately: every menu save clears the navigation cache. Previously the frontend could keep serving the old menu for up to half an hour, so the admin and the site disagreed.
  • Menu name, display location and items are now one form with one save — pressing the items' save button used to silently discard a just-changed display location, which snapped back to "Primary" after refresh.

Go live today

Setup, content management, SEO and image optimization — all in one platform. Get started in 30 minutes.

View Pricing
  • Setup and live in 30 minutes
  • 14 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 & CMS guides — a couple of emails a month, no spam.