Changelog

Release Notes

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

Page 23 of 24 - 710 releases, newest first.

v2.12.0

One Universal Key, Multiple Sites - Manage Domains From Your Dashboard

  • Site management in your account - one license = one key + N site slots. Register each site's domain (e.g. siteadi.com) under My Licenses, up to your plan's limit. Adding a site beyond the limit is blocked
  • Strict activation - a site only activates if its domain is pre-registered for that license; an unregistered domain is rejected with a clear message. You control exactly which sites use your license
  • Upgrade path - move to a higher plan for more sites; your key stays the same
v2.11.0

Simpler Pricing - Same Everything, Only Site Count Differs

  • Every plan now includes the exact same features and support - all 14+ themes, all SEO & automation tools, priority support, lifetime updates. The only difference between plans is how many sites you can run
  • Clear tiers: Personal $29 / 1 site · Standard $79 / 3 · Professional $149 / 10 · Unlimited $349 / ∞. The confusing dual "Agency $299 / Enterprise $599" tiers were replaced by one Unlimited plan
  • Pricing data was inconsistent across the site, checkout and license server (Agency was 50 domains in one place, unlimited in another, $299 vs $599). Now a single consistent model end-to-end
v2.10.0

New Plugin: Google Console (Analytics + Search Console + AdSense)

  • Google Console plugin - Search Console (clicks, impressions, queries, URL inspection and one-click index submission), Analytics GA4 (traffic and channels) and AdSense (earnings) on one screen, through a single Google sign-in
  • Tag insertion - GA4, Tag Manager and AdSense tags are placed on your site from the panel, with no theme file to edit
  • Built to keep running - access tokens are stored encrypted, responses are cached so you do not burn through Google's quotas, each API reports its own status, and an expired connection says "reconnect" instead of failing quietly
v2.9.0

Infrastructure Hardening - Security, Performance & SEO

  • Payment webhooks now fail closed (Stripe + iyzico): an order is marked paid only on a valid signed webhook, and the paid amount is verified against the order total
  • Admin payment/customer/order pages now require admin role; maintenance scripts locked to CLI; session cookie set to SameSite=Lax (fixes being logged out when returning from external links)
  • Faster page loads - plugin scan cached per request, composite DB indexes, and N+1 query batching on list pages. SEO: correct archive titles, paginated-page noindex, dynamic html lang
  • Analytics plugin (ZeroTrack) and Smart Backup now create their database tables on first use, fixing a 404/500 on fresh installs
v2.8.3

Hero Trimmed to a Hook + Features Grid Expanded

  • Hero copy trimmed to a hook - the 8-vendor laundry list ("Analytics (Plausible). SEO schema (Rank Math)...") was too long. Replaced with a sharp hook: "Not plugins. Core." + a single subtitle quantifying the savings (20+ features, ~$624/yr). Same message, half the words, double the impact
  • Features grid expanded from 14 to 20 cards - added 6 cards for built-in capabilities that were previously hidden: Social Publisher (Buffer/Hootsuite - 18+ networks auto-publish), Instant Indexer (IndexMeNow - IndexNow + WebSub + Web Push), Newsletter (Mailchimp - campaigns + subscribers + digest), AI Image Generator (Canva - Gemini-driven post covers), AI Bulk Publisher (ContentBot - n8n + bulk queue), and they collectively replace another ~$390/yr in subscriptions
v2.8.2

Hero Copy Forced from Code - DB Override Bypass

  • Hero subtitle was empty on production - load_marketing_translations() pulls hero_subtitle from the marketing_translations table when present, which still held a stale pre-v2.8.1 entry on production (the 8-vendor copy never displayed). Fix: after merging defaults+DB layers, header.php now force-overrides hero_title and hero_subtitle from the code defaults. Marketing-investment copy is a release-time concern, not a CMS admin concern
v2.8.1

A Homepage That Names What jekcms Replaces

  • The homepage says what you actually get - instead of an abstract feature list, it names the tools jekcms replaces (analytics, SEO, backup, security, two-factor login, redirects, image optimisation, caching) so you can compare against what you pay for today.
v2.8.0

Performance Suite - Redirect Manager + Image Studio + Critical CSS, Built-In

  • Redirect Manager (NEW) - a panel screen where you add, edit and delete 301, 302, 307, 308 and 410 redirects. The lookup runs before the page is built, so a redirect costs no extra page load. Each rule shows a hit counter and the date it was last used, so you can see which old addresses people still open.
  • 404 logger + Orphan 404s tab - every 404 hit is logged with referrer + UA. The admin sees URLs with 3+ hits in the last 30 days and can create a 301 with one click + a target URL field. Solving SEO recovery becomes a feed scroll
  • 404 records stay clean - the log table repairs itself on first use, and panel, API and analytics requests are skipped so your own traffic never shows up as a broken link.
  • Image Studio - the media optimisation screen now covers what a paid image plugin does: convert your whole library in batches, generate responsive sizes from 320 to 1920 pixels, produce tall Pinterest images and stamp your domain as a watermark.
  • Critical CSS Studio - the performance tools now have their own screen: inline the styles the first screen needs, defer the rest of the JavaScript, add preload hints and read the Core Web Vitals suggestions in one place.
  • Three new feature cards - Redirect Manager, Image Studio and Critical CSS Studio join the feature list on the website.
v2.7.1

TOTP 2FA - Surfaced + Coverage Tracker in Security Center

  • Security Center → 2FA Status tab - lists all admin/editor/author users, their 2FA enabled state (ENABLED / NOT ENABLED pill), role, last-login timestamp. "Enable Now" button for the current user (jumps to Settings). For other users: instruction that they must enable from their own profile (TOTP is a personal credential)
  • 5th KPI card: 2FA Coverage - percentage of admin/editor/author users with TOTP enabled. Color codes: green ≥80%, neutral 40-80%, red <40%. Sub-label shows raw count (e.g. "3 / 5 users")
  • About TOTP card - documents the setup flow (Settings → Two-Factor Authentication → Initialize → scan QR → confirm), login flow, recovery path (DB-level unlock if authenticator is lost). Explicitly positions jekcms's TOTP as a replacement for WP 2FA + Wordfence Login Security (~$50/yr combined)
  • features.php 11th card: TOTP 2FA - RFC 6238, Google Authenticator/Authy/1Password compatible
v2.7.0

Security Center - WAF Dashboard + File Integrity Monitor, Built-In

  • Security Center admin page - a single tabbed dashboard for WAF/login attempts, security events, and file integrity. It surfaces protections that were already running silently - attack detection, the login-attempt log and the file integrity check - so you can watch attempts as they happen. Replaces Wordfence Premium ($119/yr)
  • WAF tab - recent login attempts (last 30), top attackers by failed-login count (last 7d), blocked IPs table with manual block/unblock, one-click "Block this attacker" from the top-attackers list. KPIs at the top: failed logins (24h), unique IPs (7d), blocked count, FIM status
  • Security Events tab - parses logs/security.log - where blocked injection, cross-site scripting and path-traversal attempts are recorded - and shows a timeline with the address, the message and the context. The 30 most recent events are listed.
  • File Integrity tab - shows the install fingerprint, a verified-or-changed status pill, the last tamper report and a "Scan now" button that re-checks every core file. A short card tells you what to do if something has changed.
  • Self-healing blocked_ips table - created automatically on first visit to the page. Idempotent: ON DUPLICATE KEY UPDATE preserves existing blocks. CSRF-protected admin operations throughout
  • Sidebar link - new "Security Center" entry directly below Backups in the admin nav. Shield icon. Standard active-state highlighting
v2.6.0

Smart Backup - Scheduled Daily Backups, Built-In

  • Smart Backup scheduled cron - turn on daily auto-backups in the admin (Backups → Smart Backup Schedule card). Pick the hour (default 03:00, low-traffic window). Cron runs BackupManager::scheduledRun() which is idempotent (one backup per day, even if cron fires multiple times). Replaces UpdraftPlus Premium ($70/yr)
  • Retention policy - configurable 7-365 days. Auto-backups older than the cutoff are deleted automatically after the daily run. Manual backups are never auto-deleted. Storage stays bounded
  • Pure-PHP backups - no mysqldump dependency (Hostinger and shared hosts often disable it). Streaming row-by-row dump handles large post tables without exhausting memory. Output is a single ZIP with db.sql + uploads/ + manifest.json
  • External sync hint - the schedule card documents the recommended rclone pattern for syncing the backups/ folder to S3, Google Drive, or Dropbox. Native cloud SDK support is on the v2.6.x roadmap
v2.5.0

Schema Studio - 13 Schema.org Types, Built-In

  • Schema Studio plugin family - 13 Schema.org types, all driven from the post editor with form-based UI. The full set: Article, BlogPosting, NewsArticle, TechArticle, ScholarlyArticle, Report, FAQPage, HowTo, Product, Event, Review, Course, Recipe (new), and LocalBusiness (new). Replaces Rank Math Pro's schema-builder module ($59/yr) - no subscription, no add-ons
  • Recipe schema - food bloggers can now ship Google Rich Recipe cards: prep/cook/total time (ISO 8601), yield, category, cuisine, calories, ingredient list, step-by-step instructions, aggregate rating. Drives 30-40% CTR uplift on recipe-intent queries
  • LocalBusiness schema - drives Google Maps + local-pack ranking. 18 business subtypes (Restaurant, Store, MedicalBusiness, Dentist, BeautySalon, TravelAgency, …). Full PostalAddress + GeoCoordinates + opening hours + price range + aggregate rating
  • CSV-style data entry - ingredients, instructions and opening-hours all accept one item per line in a textarea. No fragile JavaScript arrays, no clicking +/- buttons; copy-paste works directly from your notes
  • Schema preview + Google Rich Results Test link - the editor shows the live JSON-LD payload AND a one-click handoff to Google's validator. Zero guesswork
v2.4.0

ZeroTrack Analytics - Privacy-First, Cookie-Free, Built-In

  • ZeroTrack Analytics plugin - a built-in, privacy-first replacement for Google Analytics, Plausible and Matomo. Zero cookies. Visitor data never leaves your server. KVKK/GDPR-compliant by design: IP addresses are SHA-256 hashed with a daily-rotated salt, making cross-day correlation mathematically impossible. Auto-activated on install
  • Privacy dashboard in admin → ZeroTrack: page views, unique visitors, sessions, bounce rate, daily trend chart, top pages, referrers, countries, devices, UTM sources. Date range selector (today / 7d / 30d / 90d)
  • Smart filtering out of the box - respects browsers' Do-Not-Track header; excludes logged-in admins; filters Googlebot, GPTBot, ClaudeBot, headless Chrome and 20+ other automation user-agents; configurable IP and path exclusions
  • Reverse-proxy aware - picks up the real visitor IP behind Cloudflare and LiteSpeed (no double-counting your CDN). Country detection via Cloudflare CF-IPCountry header - no third-party GeoIP database needed
  • Self-cleaning - raw pageview rows are deleted after a configurable retention window (default 90 days). Daily aggregates are kept forever for long-term trend analysis with tiny storage footprint
v2.3.18

Sharper Homepage Hero - A Concrete Hook

  • The hero now says what jekcms actually is - the vague "Smart Next-Gen CMS" line was replaced with a concrete, provable hook: everything you would normally add to WordPress (SEO, internal linking, AVIF media, bulk import, AI publishing) is already in the core, self-hosted, with no plugin stack to buy or maintain. One clear message instead of a buzzword
v2.3.17

Newsletter Email: Branded Dark Header

  • Email design now has a real branded identity - the previous version rendered too plain in clients that strip CSS backgrounds. The header is now a solid dark band with the brand wordmark and an accent eyebrow, plus a thin accent rule under it, a card frame, and a tinted footer band. Backgrounds use both inline CSS and bgcolor attributes so the design survives in Gmail/Outlook. Auto-applied to system templates via a schema bump
v2.3.16

Redesigned Newsletter Email Templates

  • Professional, brand-consistent email templates - the newsletter emails (confirmation, welcome, campaign, unsubscribe, new-post) were replaced with a polished, English, email-safe design: a clean white card on a soft background, branded header with an accent eyebrow, strong typographic hierarchy, a proper rounded brand CTA button, and a complete footer (unsubscribe, website, copyright). Table-based + inline CSS for reliable rendering across email clients; all placeholders preserved
  • Auto-applied across all installs via a plugin schema-version bump - system templates refresh automatically on the next load, while any template you customized is left untouched
v2.3.15

Blog Editor: Featured Post & Empty-Content Fix

  • Blog post editor opened empty for the featured post - the editor treated ?id=0 (the featured post, which carries id 0) as "new post" because of a id > 0 check, so it never loaded it. It now loads any post when an id is present (0 included); a truly new post is one with no id parameter. Additionally, if a row's body is empty (legacy posts whose content lived only in the static blog data file), the editor pre-fills the form from that source by slug/id for review - saving persists it into the database (display-only, non-destructive, never overwrites existing edits)
v2.3.14

Plugin System Restored on the Main Install (Newsletter Now Lists)

  • Newsletter (and all plugins) now appear in the plugin manager - the main install's bootstrap (cloned long ago from an older codebase) was entirely missing the plugin-loader block, so the plugin registrar never ran and no plugin could register itself. The block was restored, identical to the canonical source; the registrar now runs (with the self-healing plugin-table schema), so Newsletter registers automatically and is listed/activatable
v2.3.13

Marketing Blog Editor Now Reachable in Admin

  • Blog posts are editable again - the bilingual marketing blog (the EN/TR posts shown on jekcms.com/blog) has its own admin editor that reads the same table the public blog uses, but it had no link in the admin menu, so it looked like the posts weren't manageable (the CMS Posts page only lists the separate site-content table). A "Blog Posts (jekcms.com)" entry was added to the admin sidebar - the existing posts are now listed and editable
v2.3.12

Wizard Network Error, Profiles & Plugin Registration Fixed

  • "Network error" on Generate fixed - the wizard's generate step was missing on most installs, so the button failed with a network error. It now ships with every install and works on every site.
  • Plugins now register on cloned installs - on installs cloned from an older database the plugins table could be missing newer columns, which made plugin registration fail silently - so the Newsletter plugin never appeared in the plugin manager. The scanner now self-heals the table schema, so Newsletter (and any new plugin) registers and is visible/activatable
v2.3.11

Root Admin Fixes - Content Fixer, Newsletter Link, Wizard Keys

  • Content Fixer 404 fixed - the SEO Optimizer's Content/Heading Fixer page existed in the canonical source but was missing from the main install's admin, returning 404. It is now present
  • Newsletter admin link corrected - the Newsletter plugin manifest pointed its admin page to a non-existent path; corrected so the dashboard opens from the plugin manager (the sidebar entry still requires the plugin to be activated)
  • Wizard keys fixed on the main site too - the previous translation-key parity fix covered demo sites but missed the main install; cq_assistant_* keys are now mirrored there as well, so the JSON Generation Wizard no longer shows raw keys
v2.3.10

Content Queue Wizard - Raw Keys Fixed on All Sites

  • JSON Generation Wizard now reads properly on every site - the content-queue assistant translation keys (cq_assistant_*) existed only on a couple of sites, so other sites showed raw keys like "cq_assistant_title" instead of labels. All sites now carry the full key set, mirrored byte-for-byte from the canonical source
v2.3.9

Newsletter Signup Live on the Marketing Site

  • Newsletter subscription now works on jekcms.com - the footer "Subscribe" form was built but silently failed when the subscriber table did not exist. The handler now self-creates the table (idempotent, identical schema to the Newsletter plugin, so the plugin admin reads the same subscribers). Homepage stat figures also unified site-wide
v2.3.8

Sub-Page SEO Audit - Documentation Title Fixed

  • Documentation title is now descriptive & branded - the docs was a bare "Documentation"; it is now "jekcms Documentation | Setup, Admin Guide, REST API & Automation" (and category/page docs titles now carry the brand). Stronger, unique titles for search</li> <li>Full sub-page meta/SEO audit: every marketing sub-page verified to have a unique, bilingual (EN/TR) meta title and description, valid canonical + hreflang (en/tr/x-default) + Open Graph; no missing, empty or duplicate meta found</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-7"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.7</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">Accurate WordPress-Alternative Page (Verified Features Only)</h2> <div class="cl-group"> <div class="cl-section-label cl-section-improved">Improved</div> <ul class="cl-items"> <li><strong>Stronger, honest "why jekcms vs WordPress" page</strong> - now built strictly from verified features: it maps the paid WordPress plugins jekcms replaces in its core (SEO/Yoast, internal linking/LinkWhisper, broken-link detection, AVIF media/ShortPixel, security/Wordfence, payments/WooCommerce), plus jekcms-only JSON bulk import and n8n+Gemini AI automation. Modern, readable, theme-consistent table; long-tail keyword focused; FAQ with FAQPage structured data</li> </ul> </div> <div class="cl-group"> <div class="cl-section-label cl-section-fixed">Fixed</div> <ul class="cl-items"> <li><strong>Removed an inaccurate capability claim</strong> - a "multi-site / fleet management" line was wrongly added to the comparison page, structured data and llms.txt. jekcms has no such product feature; it has been removed everywhere and replaced with verified, real capabilities only</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-6"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.6</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">No Orphan Pages - Full Internal Linking</h2> <div class="cl-group"> <div class="cl-section-label cl-section-fixed">Fixed</div> <ul class="cl-items"> <li><strong>No orphan pages</strong> - every public marketing page is now reachable via the footer + sitemap + clean URL with EN/TR variants. The "Report Piracy" page was orphaned (no link anywhere) and is now footer-linked and crawlable; the WordPress-alternative page was already footer-linked (verified)</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-5"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.5</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">AI-Search Visibility & WordPress-Alternative Positioning</h2> <div class="cl-group"> <div class="cl-section-label cl-section-added">Added</div> <ul class="cl-items"> <li><strong>WordPress Alternative comparison page</strong> - a new, honest <code>/wordpress-alternative</code> (TR: <code>/tr/wordpress-alternatifi</code>) page with a factual jekcms-vs-WordPress table and FAQ (FAQPage structured data), sitemap + hreflang + footer-linked</li> <li><strong>llms.txt</strong> - a machine-readable summary at <code>/llms.txt</code> so AI assistants can accurately describe jekcms as a self-hosted CMS / WordPress alternative</li> </ul> </div> <div class="cl-group"> <div class="cl-section-label cl-section-improved">Improved</div> <ul class="cl-items"> <li><strong>Discoverable in AI search</strong> - AI answer/search engines (ChatGPT, Perplexity, Gemini, Claude, Copilot) are now explicitly allowed (server-level block removed for them; named robots groups added). Low-value SEO-scraper bots stay blocked</li> <li><strong>Clearer entity for search & AI</strong> - structured data now classifies jekcms as a Content Management System with a precise CMS / WordPress-alternative description and feature list; site meta sharpened to say "self-hosted CMS / WordPress alternative" (factual, no keyword stuffing)</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-4"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.4</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">Marketing-Site SEO Hardening</h2> <div class="cl-group"> <div class="cl-section-label cl-section-improved">Improved</div> <ul class="cl-items"> <li><strong>No duplicate page URLs</strong> - direct <code>.php</code> hits (e.g. <code>/features.php</code>) now 301-redirect to the clean URL (<code>/features</code>), so each page has a single indexable address and a single canonical</li> <li><strong>Single redirect hop</strong> - <code>http://www</code> now goes straight to <code>https://</code> non-www in one 301 instead of two chained redirects (faster, stronger SEO signal)</li> <li>Audited & confirmed correct: error pages return real 404 (no soft-404, noindex), dynamic robots.txt with environment-aware sitemap, bilingual sitemap with hreflang, self-referencing canonical + en/tr/x-default hreflang, <code>?lang=tr</code> → <code>/tr/…</code> 301</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-3"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.3</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">Article Rendering & Internal-Link Integrity Fixes</h2> <div class="cl-group"> <div class="cl-section-label cl-section-fixed">Fixed</div> <ul class="cl-items"> <li><strong>Broken internal links repaired at the source</strong> - The auto internal linker could run over raw Markdown and inject a link inside a Markdown link, which the renderer then turned into corrupted, half-visible anchor markup. Markdown links/images are now protected, so internal linking can never mangle content again. The link cleaner was also hardened to fully remove any pre-existing corrupted/leaked link debris - re-running the internal-link scan on an affected site now self-heals old content</li> <li><strong>Checklists render properly</strong> - Markdown task lists (<code>- [ ]</code> / <code>- [x]</code>) now show real checkbox glyphs instead of literal "[ ]" text</li> <li><strong>Tables are styled</strong> - Markdown tables in articles now render with borders, padding and header styling instead of columns running together</li> <li><strong>No more double bullets</strong> - list items showed both a default bullet and a custom marker; the duplicate is gone</li> <li><strong>Related posts fixed</strong> - the related section rendered twice, once as full-width stacked images; the broken duplicate was removed, leaving the clean card grid</li> <li><strong>Featured image aspect ratio</strong> - single-post cover images now use a proper 16:9 frame instead of a cropped near-square</li> <li><strong>Table of contents shows accented characters correctly</strong> - the on-page contents list double-escaped HTML entities, showing things like "G&uuml;ncel" instead of "Güncel"; titles are now decoded before display (anchors stay in sync)</li> <li><strong>Front-end fixes now go live immediately</strong> - deploys purge the page cache, so a fix is no longer masked by up-to-5-minutes of stale cached HTML</li> </ul> </div> </div> </div> <div class="cl-entry" id="v2-3-2"> <!-- Left: sticky meta --> <div class="cl-meta"> <span class="cl-badge">v2.3.2</span> <time class="cl-date" datetime="2026-05-19">19 May 2026</time> </div> <!-- Right: content --> <div class="cl-body"> <h2 class="cl-body-title">JSON Wizard Rename & Calendar Visibility Fix</h2> <div class="cl-group"> <div class="cl-section-label cl-section-improved">Improved</div> <ul class="cl-items"> <li><strong>"Content Assistant" renamed to "JSON Generation Wizard"</strong> - name now reflects what it actually does: builds a ready-to-import JSON + prompt</li> <li><strong>"Continue below" marker is now built-in</strong> - typing <code>{devam}</code> in a post renders a centred "content continues below" button that smooth-scrolls to the next section. It now lives in the core renderer (theme-independent), so theme resets can no longer wipe it</li> <li>Checklist fix also covers articles already stored as HTML, not just Markdown</li> </ul> </div> <div class="cl-group"> <div class="cl-section-label cl-section-fixed">Fixed</div> <ul class="cl-items"> <li><strong>Content calendar fixed - schedule is visible again</strong> - On some installs the whole calendar silently came back empty: the underlying query referenced a column that older content-queue tables never had, so it failed and showed nothing. The query is now schema-independent and self-healing, and the month view also shows every scheduled item regardless of its state (draft / approved / in-progress / done), colour-coded by status</li> <li>Calendar hover preview used the wrong image field in one branch - corrected</li> </ul> </div> </div> </div> </div> <nav class="cl-pager" aria-label="Changelog pages"> <a class="cl-pager-btn" rel="prev" href="/changelog?page=22">← Newer</a> <span class="cl-pager-pos">23 / 24</span> <a class="cl-pager-btn" rel="next" href="/changelog?page=24">Older →</a> </nav> </div> </section> <!-- CTA Section --> <section class="cta"><div class="container"><div class="cta-inner"><div class="cta-left"><a href="/" class="cta-logo-link"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 882 250" class="site-logo" style="height:26px;width:auto;display:block;" aria-label="jekcms" role="img"><path fill="currentColor" d="M6.48215 8.24357L167.595 8.10861L167.512 162.193L167.477 210.101C167.48 213.355 167.882 237.21 166.989 238.373C153.012 238.799 138.505 238.489 124.451 238.475L52.3131 238.454C40.5223 238.448 17.5353 237.714 6.48826 238.725C6.04649 191.112 6.03411 143.495 6.45111 95.8804L6.31368 41.5049C6.26572 31.0067 5.875 18.5036 6.48215 8.24357ZM47.122 213.243C55.2466 214.349 58.5712 214.812 66.8347 214.175C83.8145 211.464 95.5927 200.338 98.5824 182.927C100.568 171.363 98.8839 158.601 99.4527 146.853C99.7496 122.573 99.0068 97.8742 99.5038 73.6483L95.624 69.8267C90.2723 69.4959 85.2575 69.5523 79.9069 69.5846C76.7112 69.8672 75.8812 71.1424 73.5709 73.5076L73.6627 141.077C73.6968 152.899 73.9643 164.759 73.4008 176.564C72.7208 190.808 61.5927 190.243 50.7272 190.137L48.6262 190.113C48.57 197.67 47.4669 205.595 47.122 213.243ZM89.375 59.065C98.3036 57.4528 104.22 48.8817 102.568 39.953C100.916 31.0243 92.3244 25.1425 83.4111 26.8377C74.5563 28.5218 68.7264 37.0518 70.3679 45.922C72.0094 54.7922 80.5049 60.6667 89.375 59.065Z"/><path fill="currentColor" d="M741.317 73.9003C742.933 73.6988 747.083 74.1291 748.78 74.3513C764.421 76.3995 775.932 88.6139 779.135 103.771C779.66 106.296 779.991 108.858 780.124 111.433C780.443 117.796 781.358 161.97 779.431 164.707C778.736 165.695 777.525 166.178 776.367 166.336C772.958 166.803 763.8 167.407 761.169 165.264C760.007 164.318 759.487 162.564 759.285 161.128C758.709 157.035 759.171 152.404 759.227 148.262C759.381 136.803 760.299 122.884 759.12 111.674C758.551 106.273 756.931 100.875 752.528 97.3653C748.919 94.4885 744.2 93.4247 739.672 93.9527C733.148 94.7136 725.737 98.3022 722.816 104.518C719.854 110.82 721.518 145.843 721.499 155.204C721.495 157.356 721.913 162.593 720.535 164.28C719.248 165.855 717.002 166.384 715.067 166.578C711.35 166.951 704.696 167.348 701.692 164.903C699.401 161.432 700.507 152.101 700.564 147.685L700.677 122.056C700.634 108.555 699.155 93.2349 681.078 93.8758C650.271 94.968 664.007 134.607 661.572 154.358C660.855 160.179 663.334 167.064 653.685 166.576C649.394 166.359 640.821 168.068 640.502 162.205C640.102 152.504 640.332 142.662 640.396 132.907C640.467 116.947 640.453 100.987 640.356 85.0272C640.364 74.754 641.601 74.9184 651.33 75.2046C653.527 78.6887 654.967 81.3787 656.843 85.0595C674.65 68.3648 696.06 71.0637 712.677 87.6554C713.265 86.9051 713.872 86.1703 714.497 85.4517C721.587 77.3763 730.997 74.5343 741.317 73.9003Z"/><path fill="currentColor" d="M367.158 74.3069C369.439 73.9129 373.379 73.9541 375.648 74.05C393.313 74.7968 408.399 87.0419 413.603 103.816C416.396 112.82 415.929 120.029 415.557 129.216C411.055 128.64 402.522 128.847 397.72 128.858L367.156 128.976C361.671 129.016 354.942 129.321 349.614 128.996C353.357 142.009 361.46 149.959 375.77 149.173C386.822 148.566 390.83 145.078 397.967 137.169L402.075 139.241C404.931 140.59 408.299 142.081 410.921 143.806C412.101 144.582 413.542 146.067 413.724 147.51C413.903 148.923 413.228 149.933 412.378 150.988C404.547 160.721 393.094 166.495 380.756 167.864C368.285 169.246 354.968 166.149 345.062 158.249C335.491 150.615 330.089 139.673 328.696 127.623C327.205 114.311 330.085 100.098 338.513 89.4593C342.759 84.099 348.139 79.9763 354.413 77.3068C358.65 75.5044 362.621 74.8089 367.158 74.3069ZM375.927 111.1C381.087 111.174 389.763 111.507 394.671 110.85C389.347 98.931 384.738 92.1266 370.195 93.2324C358.281 94.8763 354.228 100.257 350.364 110.915C358.636 111.266 367.597 111.108 375.927 111.1Z"/><path fill="currentColor" d="M445.975 28.545C449.437 28.4572 459.201 27.3396 461.653 29.675C464.921 32.7879 463.101 88.4393 463.15 96.3636C463.169 99.3386 462.464 108.746 464.493 110.749C469.555 110.158 491.819 80.9969 497.954 76.8258C500.906 74.8184 527.767 73.4561 520.861 80.9098C509.053 93.6532 497.078 107.366 484.792 119.624C492.945 128.867 502.424 138.077 511.154 146.857C515.965 152.009 521.124 157.126 526.089 162.156L524.666 166.45L502.46 166.439C496.323 160.895 470.353 130.932 464.502 130.414C461.77 132.669 464.761 158.361 462.948 163.129C461.075 168.056 448.328 166.771 444.824 165.746C440.998 164.627 442.423 145.761 442.407 141.597L442.367 89.0476L442.39 48.6096C442.405 43.0957 441.521 36.2217 443.029 30.905C443.42 29.5259 444.731 29.0535 445.975 28.545Z"/><path fill="currentColor" d="M579.939 73.8908C593.883 74.3834 605.916 78.7696 615.482 89.3172C621.823 96.3091 607.941 103.145 603.277 106.543C598.988 101.58 593.62 96.3516 587.001 94.9229C548.651 86.6453 545.118 147.515 582.1 148.376C591.414 148.593 596.456 143.336 603.616 138.981C605.039 139.161 605.259 139.807 606.505 140.992C610.297 144.9 614.074 148.43 617.91 152.48C608.575 161.627 597.252 167.372 584.105 168.161C571.923 168.941 559.941 164.786 550.852 156.632C541.642 148.475 536.087 136.961 535.431 124.67C534.434 107.272 540.953 90.0634 556.146 80.6065C564.165 75.6144 570.712 74.4148 579.939 73.8908Z"/><path fill="currentColor" d="M830.353 74.2796C840.943 73.73 851.713 75.124 860.887 80.7241C869.115 85.7467 857.803 95.0526 854.636 99.3666C848.552 95.3533 843.405 92.3455 835.716 92.5248C832.362 92.603 829.678 93.1966 827.332 95.6947C825.871 97.2499 824.892 99.4582 825.054 101.559C825.709 110.093 844.096 110.634 850.533 113.122C854.886 114.582 858.672 116.578 862.097 119.755C872.832 129.71 873.14 147.142 863.076 157.677C855.482 165.625 846.22 167.803 835.667 168.181C835.216 168.181 834.765 168.169 834.314 168.145C820.636 167.368 811.273 162.782 802.248 152.64C806.437 148.794 808.286 145.127 813.613 141.272C822.676 143.727 827.458 150.947 839.023 149.309C845.596 148.378 850.611 143.781 849.301 136.638C846.922 128.924 830.964 127.843 824.626 125.998C794.107 117.111 799.174 78.8157 830.353 74.2796Z"/><path fill="currentColor" d="M286.639 75.5655C290.014 75.4115 302.257 73.9318 302.966 78.2085C303.839 83.4768 303.622 89.9178 303.61 95.3148L303.581 119.653L303.61 156.058C303.62 181.08 304.82 203.7 273.994 210.022C268.975 210.778 262.563 209.921 257.493 209.319C257.739 203.416 258.596 197.415 258.837 191.134C263.235 191.54 271.283 190.832 275.408 189.24C279.055 187.833 280.987 184.443 281.672 180.696C283.589 170.22 282.696 157.088 282.819 146.296C283.003 130.231 282.723 114.614 282.806 98.5266C282.836 92.6342 281.985 83.3204 283.655 77.4755C283.958 76.4171 285.587 75.9899 286.639 75.5655Z"/><path fill="currentColor" d="M290.405 34.7513C297.829 33.2354 305.084 38.0005 306.648 45.4205C308.213 52.8404 303.502 60.1336 296.099 61.75C288.625 63.3821 281.252 58.6109 279.672 51.1195C278.092 43.6281 282.909 36.2818 290.405 34.7513Z"/></svg></a><h2 class="cta-title">Get your site live</h2><p class="cta-desc">The setup wizard gets a site live in about 30 minutes. See the prices and the free edition.</p><a href="/pricing" class="btn btn-primary cta-btn">View Pricing <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a></div><div class="cta-right"><ul class="cta-checklist"><li class="cta-check-item"><svg class="cta-check-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>Setup and live in 30 minutes</li><li class="cta-check-item"><svg class="cta-check-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>15 ready-made themes</li><li class="cta-check-item"><svg class="cta-check-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>AVIF/WebP image optimization</li><li class="cta-check-item"><svg class="cta-check-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>Automatic SEO - Sitemap, Schema.org</li><li class="cta-check-item"><svg class="cta-check-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg>Cookieless built-in analytics (ZeroTrack)</li></ul></div></div></div></section> <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication","@id":"https://jekcms.com/#software","name":"jekcms","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.168.2","datePublished":"2026-10-17","releaseNotes":"https://jekcms.com/changelog?page=23","url":"https://jekcms.com/","publisher":{"@id":"https://jekcms.com/#organization"},"inLanguage":"en-US"},{"@type":"ItemList","name":"jekcms release history - page 23","itemListOrder":"https://schema.org/ItemListOrderDescending","numberOfItems":15,"itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"SoftwareApplication","name":"jekcms 2.12.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.12.0","datePublished":"2026-05-31","releaseNotes":"One Universal Key, Multiple Sites - Manage Domains From Your Dashboard","url":"https://jekcms.com/changelog?page=23#v2.12.0"}},{"@type":"ListItem","position":2,"item":{"@type":"SoftwareApplication","name":"jekcms 2.11.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.11.0","datePublished":"2026-05-30","releaseNotes":"Simpler Pricing - Same Everything, Only Site Count Differs","url":"https://jekcms.com/changelog?page=23#v2.11.0"}},{"@type":"ListItem","position":3,"item":{"@type":"SoftwareApplication","name":"jekcms 2.10.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.10.0","datePublished":"2026-05-29","releaseNotes":"New Plugin: Google Console (Analytics + Search Console + AdSense)","url":"https://jekcms.com/changelog?page=23#v2.10.0"}},{"@type":"ListItem","position":4,"item":{"@type":"SoftwareApplication","name":"jekcms 2.9.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.9.0","datePublished":"2026-05-29","releaseNotes":"Infrastructure Hardening - Security, Performance & SEO","url":"https://jekcms.com/changelog?page=23#v2.9.0"}},{"@type":"ListItem","position":5,"item":{"@type":"SoftwareApplication","name":"jekcms 2.8.3","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.8.3","datePublished":"2026-05-28","releaseNotes":"Hero Trimmed to a Hook + Features Grid Expanded","url":"https://jekcms.com/changelog?page=23#v2.8.3"}},{"@type":"ListItem","position":6,"item":{"@type":"SoftwareApplication","name":"jekcms 2.8.2","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.8.2","datePublished":"2026-05-28","releaseNotes":"Hero Copy Forced from Code - DB Override Bypass","url":"https://jekcms.com/changelog?page=23#v2.8.2"}},{"@type":"ListItem","position":7,"item":{"@type":"SoftwareApplication","name":"jekcms 2.8.1","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.8.1","datePublished":"2026-05-28","releaseNotes":"A Homepage That Names What jekcms Replaces","url":"https://jekcms.com/changelog?page=23#v2.8.1"}},{"@type":"ListItem","position":8,"item":{"@type":"SoftwareApplication","name":"jekcms 2.8.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.8.0","datePublished":"2026-05-28","releaseNotes":"Performance Suite - Redirect Manager + Image Studio + Critical CSS, Built-In","url":"https://jekcms.com/changelog?page=23#v2.8.0"}},{"@type":"ListItem","position":9,"item":{"@type":"SoftwareApplication","name":"jekcms 2.7.1","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.7.1","datePublished":"2026-05-28","releaseNotes":"TOTP 2FA - Surfaced + Coverage Tracker in Security Center","url":"https://jekcms.com/changelog?page=23#v2.7.1"}},{"@type":"ListItem","position":10,"item":{"@type":"SoftwareApplication","name":"jekcms 2.7.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.7.0","datePublished":"2026-05-28","releaseNotes":"Security Center - WAF Dashboard + File Integrity Monitor, Built-In","url":"https://jekcms.com/changelog?page=23#v2.7.0"}},{"@type":"ListItem","position":11,"item":{"@type":"SoftwareApplication","name":"jekcms 2.6.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.6.0","datePublished":"2026-05-28","releaseNotes":"Smart Backup - Scheduled Daily Backups, Built-In","url":"https://jekcms.com/changelog?page=23#v2.6.0"}},{"@type":"ListItem","position":12,"item":{"@type":"SoftwareApplication","name":"jekcms 2.5.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.5.0","datePublished":"2026-05-28","releaseNotes":"Schema Studio - 13 Schema.org Types, Built-In","url":"https://jekcms.com/changelog?page=23#v2.5.0"}},{"@type":"ListItem","position":13,"item":{"@type":"SoftwareApplication","name":"jekcms 2.4.0","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.4.0","datePublished":"2026-05-28","releaseNotes":"ZeroTrack Analytics - Privacy-First, Cookie-Free, Built-In","url":"https://jekcms.com/changelog?page=23#v2.4.0"}},{"@type":"ListItem","position":14,"item":{"@type":"SoftwareApplication","name":"jekcms 2.3.18","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.3.18","datePublished":"2026-05-19","releaseNotes":"Sharper Homepage Hero - A Concrete Hook","url":"https://jekcms.com/changelog?page=23#v2.3.18"}},{"@type":"ListItem","position":15,"item":{"@type":"SoftwareApplication","name":"jekcms 2.3.17","applicationCategory":"WebApplication","operatingSystem":"Linux, PHP 8+","softwareVersion":"2.3.17","datePublished":"2026-05-19","releaseNotes":"Newsletter Email: Branded Dark Header","url":"https://jekcms.com/changelog?page=23#v2.3.17"}}]}]}</script> </main> <!-- Auth Modal (giriş yapmış müşteriye gerek yok - header Dashboard gösterir) --> <style> .auth-modal-container { max-width: 860px; display: flex; overflow: hidden; border-radius: 16px; background: #0f1117; border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 24px 80px rgba(0,0,0,0.6); position: relative; } .auth-modal-content { padding: 0; } .am-left { width: 360px; flex-shrink: 0; background: #0a0c18; position: relative; overflow: hidden; min-height: 520px; display: flex; align-items: flex-end; padding: 2.5rem; } .am-left canvas { position: absolute; inset: 0; width: 100%; height: 100%; } .am-left-body { position: relative; z-index: 1; } .am-left-logo { height: 28px; width: auto; filter: brightness(0) invert(1); opacity: 0.9; display: block; margin-bottom: 1rem; } .am-left-tagline { color: rgba(255,255,255,0.5); font-size: 0.8rem; line-height: 1.6; max-width: 220px; } .am-right { flex: 1; min-width: 0; padding: 2.25rem; overflow-y: auto; max-height: 90vh; position: relative; scrollbar-width: thin; scrollbar-color: #2a2d45 transparent; } .am-right::-webkit-scrollbar { width: 4px; } .am-right::-webkit-scrollbar-track { background: transparent; } .am-right::-webkit-scrollbar-thumb { background: #2a2d45; border-radius: 99px; } .am-right::-webkit-scrollbar-thumb:hover { background: #3d4163; } .am-header-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; } .am-header-row h2 { margin: 0; font-size: 1.5rem; font-weight: 700; color: #f1f5f9; letter-spacing: -0.3px; } .am-header-row p { margin: 0.25rem 0 0; font-size: 0.875rem; color: #64748b; } .am-brand-logo { height: 22px; width: auto; opacity: 0.09; filter: brightness(0) invert(1); flex-shrink: 0; margin-top: 4px; } /* Google girişi BİRİNCİL yol: formun ÜSTÜNDE, tam genişlik, tanınır beyaz Google düğmesi. Eskiden formun ALTINDAydı - kayıt sekmesi uzun olduğu için ekranın dışında kalıyor, kullanıcı Google seçeneğini hiç görmüyordu. */ .am-social-btns { display: flex; flex-direction: column; gap: 0.5rem; margin: 0 0 0.25rem; } .am-social-btn { display: flex; align-items: center; justify-content: center; gap: 0.7rem; width: 100%; padding: 0 1rem; height: 46px; background: #ffffff; border: 1px solid #ffffff; border-radius: 10px; color: #1f2328; font-size: 0.9rem; font-weight: 600; letter-spacing: -0.1px; cursor: pointer; transition: transform 0.12s ease, box-shadow 0.15s ease, background-color 0.15s; font-family: inherit; } .am-social-btn:hover { background: #f3f4f6; box-shadow: 0 6px 18px rgba(0,0,0,0.35); transform: translateY(-1px); } .am-social-btn:active { transform: translateY(0); } .am-social-btn svg { flex-shrink: 0; width: 18px; height: 18px; } .auth-modal-close { position: absolute; top: 1rem; right: 1rem; z-index: 10; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: rgba(255,255,255,0.5); cursor: pointer; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; transition: background 0.15s, color 0.15s; padding: 0; } .auth-modal-close:hover { background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.85); } @media (max-width: 700px) { .am-left { display: none; } .am-right { max-height: 95vh; padding: 1.75rem; } .auth-modal-container { max-width: 460px; } } /* ── Dark overrides: inputs, labels, dividers ── */ .am-right .auth-tabs { border-bottom-color: #1e2235; } .am-right .auth-tab { color: #4b5563; } .am-right .auth-tab:hover { color: #94a3b8; } .am-right .auth-tab.active { color: #3B82F6; } .am-right .auth-tab-indicator { background-color: #3B82F6; } .am-right .auth-form-group label { color: #94a3b8; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; } .am-right .auth-form-group input { background: #161829; border: 1px solid #2a2d45; color: #e2e8f0; border-radius: 10px; } .am-right .auth-form-group input:focus { border-color: #3B82F6; box-shadow: 0 0 0 3px rgba(59,130,246,0.15); } .am-right .auth-form-group input::placeholder { color: #475569; } .am-right .auth-form-group.has-error input { border-color: #ef4444; } .am-right .auth-password-toggle { color: #475569; } .am-right .auth-password-toggle:hover { color: #94a3b8; } .am-right .auth-divider { margin: 1rem 0; } .am-right .auth-divider::before, .am-right .auth-divider::after { background-color: #1e2235; } .am-right .auth-divider span { color: #4b5563; } .am-right .auth-checkbox > span:last-child { color: #64748b; } .am-right .auth-checkbox-mark { border-color: #2a2d45; background: #161829; } .am-right .auth-legal-note { color: #64748b; border-color: #1e2235; } .am-right .auth-forgot-link { color: #3B82F6; } .am-right .auth-forgot-link:hover { color: #60A5FA; } .am-right .auth-form-error { border-radius: 8px; } .am-right .auth-submit-btn { border-radius: 10px; } .am-right .auth-switch-text { color: #4b5563; } .am-right .auth-switch-btn { color: #3B82F6; } .am-right .auth-switch-btn:hover { color: #60A5FA; } /* ── Yoğunluk: kayıt formu 4 alan + onay + yasal not olduğu için tek ekrana sığmıyordu; alan aralıkları ve yasal not sıkılaştırıldı. ── */ .am-right .auth-form-group { margin-bottom: 0.85rem; } .am-right .auth-form-group label { margin-bottom: 0.35rem; display: block; } .am-right .auth-form-group input { padding: 0.7rem 0.85rem; font-size: 0.9rem; } .am-right .auth-form-options { margin: 0.35rem 0 0.75rem; } .am-right .auth-legal-note { font-size: 0.72rem; line-height: 1.5; margin-top: 0.5rem; padding-top: 0.5rem; } .am-right .auth-password-strength { margin-top: 0.4rem; } .am-right .auth-submit-btn { height: 46px; font-weight: 600; } .am-right .auth-switch-text { margin-top: 1rem; font-size: 0.85rem; } /* Sol panel: boş bir görsel yerine ürün vaatleri */ .am-left-perks { list-style: none; margin: 1.25rem 0 0; padding: 0; } .am-left-perks li { display: flex; align-items: flex-start; gap: 0.55rem; color: rgba(255,255,255,0.62); font-size: 0.8rem; line-height: 1.5; margin-bottom: 0.6rem; } .am-left-perks svg { flex-shrink: 0; margin-top: 2px; color: rgba(255,255,255,0.42); } </style> <!-- Auth Modal --> <div class="auth-modal" id="authModal" role="dialog" aria-modal="true" aria-labelledby="authModalTitle"> <div class="auth-modal-backdrop" data-auth-close></div> <div class="auth-modal-container"> <!-- Close Button --> <button class="auth-modal-close" data-auth-close aria-label="Close"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> <!-- Left Visual Panel --> <div class="am-left"> <canvas id="amCanvas"></canvas> <div class="am-left-body"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 882 250" class="am-left-logo" style="height:40px;width:auto;display:block;" aria-label="jekcms" role="img"><path fill="currentColor" d="M6.48215 8.24357L167.595 8.10861L167.512 162.193L167.477 210.101C167.48 213.355 167.882 237.21 166.989 238.373C153.012 238.799 138.505 238.489 124.451 238.475L52.3131 238.454C40.5223 238.448 17.5353 237.714 6.48826 238.725C6.04649 191.112 6.03411 143.495 6.45111 95.8804L6.31368 41.5049C6.26572 31.0067 5.875 18.5036 6.48215 8.24357ZM47.122 213.243C55.2466 214.349 58.5712 214.812 66.8347 214.175C83.8145 211.464 95.5927 200.338 98.5824 182.927C100.568 171.363 98.8839 158.601 99.4527 146.853C99.7496 122.573 99.0068 97.8742 99.5038 73.6483L95.624 69.8267C90.2723 69.4959 85.2575 69.5523 79.9069 69.5846C76.7112 69.8672 75.8812 71.1424 73.5709 73.5076L73.6627 141.077C73.6968 152.899 73.9643 164.759 73.4008 176.564C72.7208 190.808 61.5927 190.243 50.7272 190.137L48.6262 190.113C48.57 197.67 47.4669 205.595 47.122 213.243ZM89.375 59.065C98.3036 57.4528 104.22 48.8817 102.568 39.953C100.916 31.0243 92.3244 25.1425 83.4111 26.8377C74.5563 28.5218 68.7264 37.0518 70.3679 45.922C72.0094 54.7922 80.5049 60.6667 89.375 59.065Z"/><path fill="currentColor" d="M741.317 73.9003C742.933 73.6988 747.083 74.1291 748.78 74.3513C764.421 76.3995 775.932 88.6139 779.135 103.771C779.66 106.296 779.991 108.858 780.124 111.433C780.443 117.796 781.358 161.97 779.431 164.707C778.736 165.695 777.525 166.178 776.367 166.336C772.958 166.803 763.8 167.407 761.169 165.264C760.007 164.318 759.487 162.564 759.285 161.128C758.709 157.035 759.171 152.404 759.227 148.262C759.381 136.803 760.299 122.884 759.12 111.674C758.551 106.273 756.931 100.875 752.528 97.3653C748.919 94.4885 744.2 93.4247 739.672 93.9527C733.148 94.7136 725.737 98.3022 722.816 104.518C719.854 110.82 721.518 145.843 721.499 155.204C721.495 157.356 721.913 162.593 720.535 164.28C719.248 165.855 717.002 166.384 715.067 166.578C711.35 166.951 704.696 167.348 701.692 164.903C699.401 161.432 700.507 152.101 700.564 147.685L700.677 122.056C700.634 108.555 699.155 93.2349 681.078 93.8758C650.271 94.968 664.007 134.607 661.572 154.358C660.855 160.179 663.334 167.064 653.685 166.576C649.394 166.359 640.821 168.068 640.502 162.205C640.102 152.504 640.332 142.662 640.396 132.907C640.467 116.947 640.453 100.987 640.356 85.0272C640.364 74.754 641.601 74.9184 651.33 75.2046C653.527 78.6887 654.967 81.3787 656.843 85.0595C674.65 68.3648 696.06 71.0637 712.677 87.6554C713.265 86.9051 713.872 86.1703 714.497 85.4517C721.587 77.3763 730.997 74.5343 741.317 73.9003Z"/><path fill="currentColor" d="M367.158 74.3069C369.439 73.9129 373.379 73.9541 375.648 74.05C393.313 74.7968 408.399 87.0419 413.603 103.816C416.396 112.82 415.929 120.029 415.557 129.216C411.055 128.64 402.522 128.847 397.72 128.858L367.156 128.976C361.671 129.016 354.942 129.321 349.614 128.996C353.357 142.009 361.46 149.959 375.77 149.173C386.822 148.566 390.83 145.078 397.967 137.169L402.075 139.241C404.931 140.59 408.299 142.081 410.921 143.806C412.101 144.582 413.542 146.067 413.724 147.51C413.903 148.923 413.228 149.933 412.378 150.988C404.547 160.721 393.094 166.495 380.756 167.864C368.285 169.246 354.968 166.149 345.062 158.249C335.491 150.615 330.089 139.673 328.696 127.623C327.205 114.311 330.085 100.098 338.513 89.4593C342.759 84.099 348.139 79.9763 354.413 77.3068C358.65 75.5044 362.621 74.8089 367.158 74.3069ZM375.927 111.1C381.087 111.174 389.763 111.507 394.671 110.85C389.347 98.931 384.738 92.1266 370.195 93.2324C358.281 94.8763 354.228 100.257 350.364 110.915C358.636 111.266 367.597 111.108 375.927 111.1Z"/><path fill="currentColor" d="M445.975 28.545C449.437 28.4572 459.201 27.3396 461.653 29.675C464.921 32.7879 463.101 88.4393 463.15 96.3636C463.169 99.3386 462.464 108.746 464.493 110.749C469.555 110.158 491.819 80.9969 497.954 76.8258C500.906 74.8184 527.767 73.4561 520.861 80.9098C509.053 93.6532 497.078 107.366 484.792 119.624C492.945 128.867 502.424 138.077 511.154 146.857C515.965 152.009 521.124 157.126 526.089 162.156L524.666 166.45L502.46 166.439C496.323 160.895 470.353 130.932 464.502 130.414C461.77 132.669 464.761 158.361 462.948 163.129C461.075 168.056 448.328 166.771 444.824 165.746C440.998 164.627 442.423 145.761 442.407 141.597L442.367 89.0476L442.39 48.6096C442.405 43.0957 441.521 36.2217 443.029 30.905C443.42 29.5259 444.731 29.0535 445.975 28.545Z"/><path fill="currentColor" d="M579.939 73.8908C593.883 74.3834 605.916 78.7696 615.482 89.3172C621.823 96.3091 607.941 103.145 603.277 106.543C598.988 101.58 593.62 96.3516 587.001 94.9229C548.651 86.6453 545.118 147.515 582.1 148.376C591.414 148.593 596.456 143.336 603.616 138.981C605.039 139.161 605.259 139.807 606.505 140.992C610.297 144.9 614.074 148.43 617.91 152.48C608.575 161.627 597.252 167.372 584.105 168.161C571.923 168.941 559.941 164.786 550.852 156.632C541.642 148.475 536.087 136.961 535.431 124.67C534.434 107.272 540.953 90.0634 556.146 80.6065C564.165 75.6144 570.712 74.4148 579.939 73.8908Z"/><path fill="currentColor" d="M830.353 74.2796C840.943 73.73 851.713 75.124 860.887 80.7241C869.115 85.7467 857.803 95.0526 854.636 99.3666C848.552 95.3533 843.405 92.3455 835.716 92.5248C832.362 92.603 829.678 93.1966 827.332 95.6947C825.871 97.2499 824.892 99.4582 825.054 101.559C825.709 110.093 844.096 110.634 850.533 113.122C854.886 114.582 858.672 116.578 862.097 119.755C872.832 129.71 873.14 147.142 863.076 157.677C855.482 165.625 846.22 167.803 835.667 168.181C835.216 168.181 834.765 168.169 834.314 168.145C820.636 167.368 811.273 162.782 802.248 152.64C806.437 148.794 808.286 145.127 813.613 141.272C822.676 143.727 827.458 150.947 839.023 149.309C845.596 148.378 850.611 143.781 849.301 136.638C846.922 128.924 830.964 127.843 824.626 125.998C794.107 117.111 799.174 78.8157 830.353 74.2796Z"/><path fill="currentColor" d="M286.639 75.5655C290.014 75.4115 302.257 73.9318 302.966 78.2085C303.839 83.4768 303.622 89.9178 303.61 95.3148L303.581 119.653L303.61 156.058C303.62 181.08 304.82 203.7 273.994 210.022C268.975 210.778 262.563 209.921 257.493 209.319C257.739 203.416 258.596 197.415 258.837 191.134C263.235 191.54 271.283 190.832 275.408 189.24C279.055 187.833 280.987 184.443 281.672 180.696C283.589 170.22 282.696 157.088 282.819 146.296C283.003 130.231 282.723 114.614 282.806 98.5266C282.836 92.6342 281.985 83.3204 283.655 77.4755C283.958 76.4171 285.587 75.9899 286.639 75.5655Z"/><path fill="currentColor" d="M290.405 34.7513C297.829 33.2354 305.084 38.0005 306.648 45.4205C308.213 52.8404 303.502 60.1336 296.099 61.75C288.625 63.3821 281.252 58.6109 279.672 51.1195C278.092 43.6281 282.909 36.2818 290.405 34.7513Z"/></svg> <p class="am-left-tagline">Next-generation, smart CMS.</p> <ul class="am-left-perks"> <li> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <polyline points="20 6 9 17 4 12"></polyline> </svg> <span>Publish in minutes - no setup marathon</span> </li> <li> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <polyline points="20 6 9 17 4 12"></polyline> </svg> <span>Annual license, updates and support included</span> </li> <li> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> <polyline points="20 6 9 17 4 12"></polyline> </svg> <span>Your content stays on your own server</span> </li> </ul> </div> </div> <!-- Right Form Panel --> <div class="am-right"> <!-- Tabs --> <div class="auth-tabs"> <button class="auth-tab active" data-tab="login">Sign In</button> <button class="auth-tab" data-tab="register">Sign Up</button> <div class="auth-tab-indicator"></div> </div> <!-- Login Panel --> <div class="auth-panel active" id="loginPanel"> <div class="am-header-row"> <div> <h2 id="authModalTitle">Welcome Back</h2> <p>Sign in to your account</p> </div> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 882 250" class="am-brand-logo" style="height:26px;width:auto;display:block;" aria-label="jekcms" role="img" aria-hidden="true"><path fill="currentColor" d="M6.48215 8.24357L167.595 8.10861L167.512 162.193L167.477 210.101C167.48 213.355 167.882 237.21 166.989 238.373C153.012 238.799 138.505 238.489 124.451 238.475L52.3131 238.454C40.5223 238.448 17.5353 237.714 6.48826 238.725C6.04649 191.112 6.03411 143.495 6.45111 95.8804L6.31368 41.5049C6.26572 31.0067 5.875 18.5036 6.48215 8.24357ZM47.122 213.243C55.2466 214.349 58.5712 214.812 66.8347 214.175C83.8145 211.464 95.5927 200.338 98.5824 182.927C100.568 171.363 98.8839 158.601 99.4527 146.853C99.7496 122.573 99.0068 97.8742 99.5038 73.6483L95.624 69.8267C90.2723 69.4959 85.2575 69.5523 79.9069 69.5846C76.7112 69.8672 75.8812 71.1424 73.5709 73.5076L73.6627 141.077C73.6968 152.899 73.9643 164.759 73.4008 176.564C72.7208 190.808 61.5927 190.243 50.7272 190.137L48.6262 190.113C48.57 197.67 47.4669 205.595 47.122 213.243ZM89.375 59.065C98.3036 57.4528 104.22 48.8817 102.568 39.953C100.916 31.0243 92.3244 25.1425 83.4111 26.8377C74.5563 28.5218 68.7264 37.0518 70.3679 45.922C72.0094 54.7922 80.5049 60.6667 89.375 59.065Z"/><path fill="currentColor" d="M741.317 73.9003C742.933 73.6988 747.083 74.1291 748.78 74.3513C764.421 76.3995 775.932 88.6139 779.135 103.771C779.66 106.296 779.991 108.858 780.124 111.433C780.443 117.796 781.358 161.97 779.431 164.707C778.736 165.695 777.525 166.178 776.367 166.336C772.958 166.803 763.8 167.407 761.169 165.264C760.007 164.318 759.487 162.564 759.285 161.128C758.709 157.035 759.171 152.404 759.227 148.262C759.381 136.803 760.299 122.884 759.12 111.674C758.551 106.273 756.931 100.875 752.528 97.3653C748.919 94.4885 744.2 93.4247 739.672 93.9527C733.148 94.7136 725.737 98.3022 722.816 104.518C719.854 110.82 721.518 145.843 721.499 155.204C721.495 157.356 721.913 162.593 720.535 164.28C719.248 165.855 717.002 166.384 715.067 166.578C711.35 166.951 704.696 167.348 701.692 164.903C699.401 161.432 700.507 152.101 700.564 147.685L700.677 122.056C700.634 108.555 699.155 93.2349 681.078 93.8758C650.271 94.968 664.007 134.607 661.572 154.358C660.855 160.179 663.334 167.064 653.685 166.576C649.394 166.359 640.821 168.068 640.502 162.205C640.102 152.504 640.332 142.662 640.396 132.907C640.467 116.947 640.453 100.987 640.356 85.0272C640.364 74.754 641.601 74.9184 651.33 75.2046C653.527 78.6887 654.967 81.3787 656.843 85.0595C674.65 68.3648 696.06 71.0637 712.677 87.6554C713.265 86.9051 713.872 86.1703 714.497 85.4517C721.587 77.3763 730.997 74.5343 741.317 73.9003Z"/><path fill="currentColor" d="M367.158 74.3069C369.439 73.9129 373.379 73.9541 375.648 74.05C393.313 74.7968 408.399 87.0419 413.603 103.816C416.396 112.82 415.929 120.029 415.557 129.216C411.055 128.64 402.522 128.847 397.72 128.858L367.156 128.976C361.671 129.016 354.942 129.321 349.614 128.996C353.357 142.009 361.46 149.959 375.77 149.173C386.822 148.566 390.83 145.078 397.967 137.169L402.075 139.241C404.931 140.59 408.299 142.081 410.921 143.806C412.101 144.582 413.542 146.067 413.724 147.51C413.903 148.923 413.228 149.933 412.378 150.988C404.547 160.721 393.094 166.495 380.756 167.864C368.285 169.246 354.968 166.149 345.062 158.249C335.491 150.615 330.089 139.673 328.696 127.623C327.205 114.311 330.085 100.098 338.513 89.4593C342.759 84.099 348.139 79.9763 354.413 77.3068C358.65 75.5044 362.621 74.8089 367.158 74.3069ZM375.927 111.1C381.087 111.174 389.763 111.507 394.671 110.85C389.347 98.931 384.738 92.1266 370.195 93.2324C358.281 94.8763 354.228 100.257 350.364 110.915C358.636 111.266 367.597 111.108 375.927 111.1Z"/><path fill="currentColor" d="M445.975 28.545C449.437 28.4572 459.201 27.3396 461.653 29.675C464.921 32.7879 463.101 88.4393 463.15 96.3636C463.169 99.3386 462.464 108.746 464.493 110.749C469.555 110.158 491.819 80.9969 497.954 76.8258C500.906 74.8184 527.767 73.4561 520.861 80.9098C509.053 93.6532 497.078 107.366 484.792 119.624C492.945 128.867 502.424 138.077 511.154 146.857C515.965 152.009 521.124 157.126 526.089 162.156L524.666 166.45L502.46 166.439C496.323 160.895 470.353 130.932 464.502 130.414C461.77 132.669 464.761 158.361 462.948 163.129C461.075 168.056 448.328 166.771 444.824 165.746C440.998 164.627 442.423 145.761 442.407 141.597L442.367 89.0476L442.39 48.6096C442.405 43.0957 441.521 36.2217 443.029 30.905C443.42 29.5259 444.731 29.0535 445.975 28.545Z"/><path fill="currentColor" d="M579.939 73.8908C593.883 74.3834 605.916 78.7696 615.482 89.3172C621.823 96.3091 607.941 103.145 603.277 106.543C598.988 101.58 593.62 96.3516 587.001 94.9229C548.651 86.6453 545.118 147.515 582.1 148.376C591.414 148.593 596.456 143.336 603.616 138.981C605.039 139.161 605.259 139.807 606.505 140.992C610.297 144.9 614.074 148.43 617.91 152.48C608.575 161.627 597.252 167.372 584.105 168.161C571.923 168.941 559.941 164.786 550.852 156.632C541.642 148.475 536.087 136.961 535.431 124.67C534.434 107.272 540.953 90.0634 556.146 80.6065C564.165 75.6144 570.712 74.4148 579.939 73.8908Z"/><path fill="currentColor" d="M830.353 74.2796C840.943 73.73 851.713 75.124 860.887 80.7241C869.115 85.7467 857.803 95.0526 854.636 99.3666C848.552 95.3533 843.405 92.3455 835.716 92.5248C832.362 92.603 829.678 93.1966 827.332 95.6947C825.871 97.2499 824.892 99.4582 825.054 101.559C825.709 110.093 844.096 110.634 850.533 113.122C854.886 114.582 858.672 116.578 862.097 119.755C872.832 129.71 873.14 147.142 863.076 157.677C855.482 165.625 846.22 167.803 835.667 168.181C835.216 168.181 834.765 168.169 834.314 168.145C820.636 167.368 811.273 162.782 802.248 152.64C806.437 148.794 808.286 145.127 813.613 141.272C822.676 143.727 827.458 150.947 839.023 149.309C845.596 148.378 850.611 143.781 849.301 136.638C846.922 128.924 830.964 127.843 824.626 125.998C794.107 117.111 799.174 78.8157 830.353 74.2796Z"/><path fill="currentColor" d="M286.639 75.5655C290.014 75.4115 302.257 73.9318 302.966 78.2085C303.839 83.4768 303.622 89.9178 303.61 95.3148L303.581 119.653L303.61 156.058C303.62 181.08 304.82 203.7 273.994 210.022C268.975 210.778 262.563 209.921 257.493 209.319C257.739 203.416 258.596 197.415 258.837 191.134C263.235 191.54 271.283 190.832 275.408 189.24C279.055 187.833 280.987 184.443 281.672 180.696C283.589 170.22 282.696 157.088 282.819 146.296C283.003 130.231 282.723 114.614 282.806 98.5266C282.836 92.6342 281.985 83.3204 283.655 77.4755C283.958 76.4171 285.587 75.9899 286.639 75.5655Z"/><path fill="currentColor" d="M290.405 34.7513C297.829 33.2354 305.084 38.0005 306.648 45.4205C308.213 52.8404 303.502 60.1336 296.099 61.75C288.625 63.3821 281.252 58.6109 279.672 51.1195C278.092 43.6281 282.909 36.2818 290.405 34.7513Z"/></svg> </div> <div class="am-social-btns"> <button type="button" class="am-social-btn" id="googleLoginBtn" data-provider="google"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"> <path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z"/> <path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23z"/> <path fill="#FBBC05" d="M5.84 14.1a6.6 6.6 0 0 1 0-4.2V7.06H2.18a11 11 0 0 0 0 9.88l3.66-2.84z"/> <path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84C6.71 7.31 9.14 5.38 12 5.38z"/> </svg> <span>Continue with Google</span> </button> </div> <div class="auth-divider"> <span>or continue with email</span> </div> <!-- Login Form --> <form class="auth-form" id="loginForm" method="post" novalidate> <div class="auth-form-group"> <label for="loginEmail">Email Address</label> <input type="email" id="loginEmail" name="email" placeholder="you@example.com" autocomplete="email" required > <span class="auth-field-error"></span> </div> <div class="auth-form-group"> <label for="loginPassword">Password</label> <div class="auth-password-wrapper"> <input type="password" id="loginPassword" name="password" placeholder="Enter your password" autocomplete="current-password" required > <button type="button" class="auth-password-toggle" aria-label="Toggle password visibility"> <svg class="eye-open" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path> <circle cx="12" cy="12" r="3"></circle> </svg> <svg class="eye-closed" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none;"> <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg> </button> </div> <span class="auth-field-error"></span> </div> <div class="auth-form-options" style="justify-content:flex-end;"> <a href="/customer/forgot-password.php" class="auth-forgot-link">Forgot password?</a> </div> <div class="auth-form-error" id="loginFormError"></div> <button type="submit" class="auth-submit-btn"> <span class="auth-btn-text">Sign In</span> <span class="auth-btn-loader"></span> </button> </form> <p class="auth-switch-text"> Don't have an account? <button type="button" class="auth-switch-btn" data-switch="register">Sign Up</button> </p> </div> <!-- Register Panel --> <div class="auth-panel" id="registerPanel"> <div class="am-header-row"> <div> <h2>Create Account</h2> <p>Create a free account to get the free edition or buy a license</p> </div> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 882 250" class="am-brand-logo" style="height:26px;width:auto;display:block;" aria-label="jekcms" role="img" aria-hidden="true"><path fill="currentColor" d="M6.48215 8.24357L167.595 8.10861L167.512 162.193L167.477 210.101C167.48 213.355 167.882 237.21 166.989 238.373C153.012 238.799 138.505 238.489 124.451 238.475L52.3131 238.454C40.5223 238.448 17.5353 237.714 6.48826 238.725C6.04649 191.112 6.03411 143.495 6.45111 95.8804L6.31368 41.5049C6.26572 31.0067 5.875 18.5036 6.48215 8.24357ZM47.122 213.243C55.2466 214.349 58.5712 214.812 66.8347 214.175C83.8145 211.464 95.5927 200.338 98.5824 182.927C100.568 171.363 98.8839 158.601 99.4527 146.853C99.7496 122.573 99.0068 97.8742 99.5038 73.6483L95.624 69.8267C90.2723 69.4959 85.2575 69.5523 79.9069 69.5846C76.7112 69.8672 75.8812 71.1424 73.5709 73.5076L73.6627 141.077C73.6968 152.899 73.9643 164.759 73.4008 176.564C72.7208 190.808 61.5927 190.243 50.7272 190.137L48.6262 190.113C48.57 197.67 47.4669 205.595 47.122 213.243ZM89.375 59.065C98.3036 57.4528 104.22 48.8817 102.568 39.953C100.916 31.0243 92.3244 25.1425 83.4111 26.8377C74.5563 28.5218 68.7264 37.0518 70.3679 45.922C72.0094 54.7922 80.5049 60.6667 89.375 59.065Z"/><path fill="currentColor" d="M741.317 73.9003C742.933 73.6988 747.083 74.1291 748.78 74.3513C764.421 76.3995 775.932 88.6139 779.135 103.771C779.66 106.296 779.991 108.858 780.124 111.433C780.443 117.796 781.358 161.97 779.431 164.707C778.736 165.695 777.525 166.178 776.367 166.336C772.958 166.803 763.8 167.407 761.169 165.264C760.007 164.318 759.487 162.564 759.285 161.128C758.709 157.035 759.171 152.404 759.227 148.262C759.381 136.803 760.299 122.884 759.12 111.674C758.551 106.273 756.931 100.875 752.528 97.3653C748.919 94.4885 744.2 93.4247 739.672 93.9527C733.148 94.7136 725.737 98.3022 722.816 104.518C719.854 110.82 721.518 145.843 721.499 155.204C721.495 157.356 721.913 162.593 720.535 164.28C719.248 165.855 717.002 166.384 715.067 166.578C711.35 166.951 704.696 167.348 701.692 164.903C699.401 161.432 700.507 152.101 700.564 147.685L700.677 122.056C700.634 108.555 699.155 93.2349 681.078 93.8758C650.271 94.968 664.007 134.607 661.572 154.358C660.855 160.179 663.334 167.064 653.685 166.576C649.394 166.359 640.821 168.068 640.502 162.205C640.102 152.504 640.332 142.662 640.396 132.907C640.467 116.947 640.453 100.987 640.356 85.0272C640.364 74.754 641.601 74.9184 651.33 75.2046C653.527 78.6887 654.967 81.3787 656.843 85.0595C674.65 68.3648 696.06 71.0637 712.677 87.6554C713.265 86.9051 713.872 86.1703 714.497 85.4517C721.587 77.3763 730.997 74.5343 741.317 73.9003Z"/><path fill="currentColor" d="M367.158 74.3069C369.439 73.9129 373.379 73.9541 375.648 74.05C393.313 74.7968 408.399 87.0419 413.603 103.816C416.396 112.82 415.929 120.029 415.557 129.216C411.055 128.64 402.522 128.847 397.72 128.858L367.156 128.976C361.671 129.016 354.942 129.321 349.614 128.996C353.357 142.009 361.46 149.959 375.77 149.173C386.822 148.566 390.83 145.078 397.967 137.169L402.075 139.241C404.931 140.59 408.299 142.081 410.921 143.806C412.101 144.582 413.542 146.067 413.724 147.51C413.903 148.923 413.228 149.933 412.378 150.988C404.547 160.721 393.094 166.495 380.756 167.864C368.285 169.246 354.968 166.149 345.062 158.249C335.491 150.615 330.089 139.673 328.696 127.623C327.205 114.311 330.085 100.098 338.513 89.4593C342.759 84.099 348.139 79.9763 354.413 77.3068C358.65 75.5044 362.621 74.8089 367.158 74.3069ZM375.927 111.1C381.087 111.174 389.763 111.507 394.671 110.85C389.347 98.931 384.738 92.1266 370.195 93.2324C358.281 94.8763 354.228 100.257 350.364 110.915C358.636 111.266 367.597 111.108 375.927 111.1Z"/><path fill="currentColor" d="M445.975 28.545C449.437 28.4572 459.201 27.3396 461.653 29.675C464.921 32.7879 463.101 88.4393 463.15 96.3636C463.169 99.3386 462.464 108.746 464.493 110.749C469.555 110.158 491.819 80.9969 497.954 76.8258C500.906 74.8184 527.767 73.4561 520.861 80.9098C509.053 93.6532 497.078 107.366 484.792 119.624C492.945 128.867 502.424 138.077 511.154 146.857C515.965 152.009 521.124 157.126 526.089 162.156L524.666 166.45L502.46 166.439C496.323 160.895 470.353 130.932 464.502 130.414C461.77 132.669 464.761 158.361 462.948 163.129C461.075 168.056 448.328 166.771 444.824 165.746C440.998 164.627 442.423 145.761 442.407 141.597L442.367 89.0476L442.39 48.6096C442.405 43.0957 441.521 36.2217 443.029 30.905C443.42 29.5259 444.731 29.0535 445.975 28.545Z"/><path fill="currentColor" d="M579.939 73.8908C593.883 74.3834 605.916 78.7696 615.482 89.3172C621.823 96.3091 607.941 103.145 603.277 106.543C598.988 101.58 593.62 96.3516 587.001 94.9229C548.651 86.6453 545.118 147.515 582.1 148.376C591.414 148.593 596.456 143.336 603.616 138.981C605.039 139.161 605.259 139.807 606.505 140.992C610.297 144.9 614.074 148.43 617.91 152.48C608.575 161.627 597.252 167.372 584.105 168.161C571.923 168.941 559.941 164.786 550.852 156.632C541.642 148.475 536.087 136.961 535.431 124.67C534.434 107.272 540.953 90.0634 556.146 80.6065C564.165 75.6144 570.712 74.4148 579.939 73.8908Z"/><path fill="currentColor" d="M830.353 74.2796C840.943 73.73 851.713 75.124 860.887 80.7241C869.115 85.7467 857.803 95.0526 854.636 99.3666C848.552 95.3533 843.405 92.3455 835.716 92.5248C832.362 92.603 829.678 93.1966 827.332 95.6947C825.871 97.2499 824.892 99.4582 825.054 101.559C825.709 110.093 844.096 110.634 850.533 113.122C854.886 114.582 858.672 116.578 862.097 119.755C872.832 129.71 873.14 147.142 863.076 157.677C855.482 165.625 846.22 167.803 835.667 168.181C835.216 168.181 834.765 168.169 834.314 168.145C820.636 167.368 811.273 162.782 802.248 152.64C806.437 148.794 808.286 145.127 813.613 141.272C822.676 143.727 827.458 150.947 839.023 149.309C845.596 148.378 850.611 143.781 849.301 136.638C846.922 128.924 830.964 127.843 824.626 125.998C794.107 117.111 799.174 78.8157 830.353 74.2796Z"/><path fill="currentColor" d="M286.639 75.5655C290.014 75.4115 302.257 73.9318 302.966 78.2085C303.839 83.4768 303.622 89.9178 303.61 95.3148L303.581 119.653L303.61 156.058C303.62 181.08 304.82 203.7 273.994 210.022C268.975 210.778 262.563 209.921 257.493 209.319C257.739 203.416 258.596 197.415 258.837 191.134C263.235 191.54 271.283 190.832 275.408 189.24C279.055 187.833 280.987 184.443 281.672 180.696C283.589 170.22 282.696 157.088 282.819 146.296C283.003 130.231 282.723 114.614 282.806 98.5266C282.836 92.6342 281.985 83.3204 283.655 77.4755C283.958 76.4171 285.587 75.9899 286.639 75.5655Z"/><path fill="currentColor" d="M290.405 34.7513C297.829 33.2354 305.084 38.0005 306.648 45.4205C308.213 52.8404 303.502 60.1336 296.099 61.75C288.625 63.3821 281.252 58.6109 279.672 51.1195C278.092 43.6281 282.909 36.2818 290.405 34.7513Z"/></svg> </div> <div class="am-social-btns"> <button type="button" class="am-social-btn" id="googleRegisterBtn" data-provider="google"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"> <path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z"/> <path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23z"/> <path fill="#FBBC05" d="M5.84 14.1a6.6 6.6 0 0 1 0-4.2V7.06H2.18a11 11 0 0 0 0 9.88l3.66-2.84z"/> <path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84C6.71 7.31 9.14 5.38 12 5.38z"/> </svg> <span>Sign up with Google</span> </button> </div> <div class="auth-divider"> <span>or continue with email</span> </div> <!-- Register Form --> <form class="auth-form" id="registerForm" method="post" novalidate> <div class="auth-form-group"> <label for="registerName">Full Name</label> <input type="text" id="registerName" name="name" placeholder="John Doe" autocomplete="name" required > <span class="auth-field-error"></span> </div> <div class="auth-form-group"> <label for="registerEmail">Email Address</label> <input type="email" id="registerEmail" name="email" placeholder="you@example.com" autocomplete="email" required > <span class="auth-field-error"></span> </div> <div class="auth-form-group"> <label for="registerPassword">Password</label> <div class="auth-password-wrapper"> <input type="password" id="registerPassword" name="password" placeholder="Enter your password" autocomplete="new-password" required minlength="8" > <button type="button" class="auth-password-toggle" aria-label="Toggle password visibility"> <svg class="eye-open" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path> <circle cx="12" cy="12" r="3"></circle> </svg> <svg class="eye-closed" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none;"> <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg> </button> </div> <div class="auth-password-strength"> <div class="auth-strength-bar"> <div class="auth-strength-fill"></div> </div> <span class="auth-strength-text"></span> </div> <span class="auth-field-error"></span> </div> <div class="auth-form-group"> <label for="registerPasswordConfirm">Confirm Password</label> <div class="auth-password-wrapper"> <input type="password" id="registerPasswordConfirm" name="password_confirm" placeholder="Confirm your password" autocomplete="new-password" required > <button type="button" class="auth-password-toggle" aria-label="Toggle password visibility"> <svg class="eye-open" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path> <circle cx="12" cy="12" r="3"></circle> </svg> <svg class="eye-closed" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none;"> <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path> <line x1="1" y1="1" x2="23" y2="23"></line> </svg> </button> </div> <span class="auth-field-error"></span> </div> <div class="auth-form-options"> <label class="auth-checkbox"> <input type="checkbox" name="terms" value="1" required> <span class="auth-checkbox-mark"></span> <span> I agree to the <a href="/terms" target="_blank">Terms of Service</a>, <a href="/privacy" target="_blank">Privacy Policy</a> and <a href="/refund" target="_blank">Refund Policy</a> </span> </label> <p class="auth-legal-note">By creating an account you confirm that you have read and accepted these policies. jekcms licenses are non-refundable digital products - the no-refund policy applies upon license activation.</p> </div> <div class="auth-form-error" id="registerFormError"></div> <button type="submit" class="auth-submit-btn"> <span class="auth-btn-text">Create Account</span> <span class="auth-btn-loader"></span> </button> </form> <p class="auth-switch-text"> Already have an account? <button type="button" class="auth-switch-btn" data-switch="login">Sign In</button> </p> </div> </div> </div> </div> <!-- Auth Modal Translations for JS --> <script> window.AUTH_TRANSLATIONS = {"login_title":"Welcome Back","login_subtitle":"Sign in to your account","register_title":"Create Account","register_subtitle":"Create a free account to get the free edition or buy a license","tab_login":"Sign In","tab_register":"Sign Up","google_login":"Continue with Google","google_register":"Sign up with Google","or_divider":"or continue with email","name_label":"Full Name","name_placeholder":"John Doe","email_label":"Email Address","email_placeholder":"you@example.com","password_label":"Password","password_placeholder":"Enter your password","password_confirm_label":"Confirm Password","password_confirm_placeholder":"Confirm your password","remember_me":"Remember me","forgot_password":"Forgot password?","btn_login":"Sign In","btn_register":"Create Account","terms_agree":"I agree to the","terms_link":"Terms of Service","privacy_link":"Privacy Policy","and":"and","refund_link":"Refund Policy","legal_note":"By creating an account you confirm that you have read and accepted these policies. jekcms licenses are non-refundable digital products - the no-refund policy applies upon license activation.","no_account":"Don't have an account?","has_account":"Already have an account?","login_success":"Login successful! Redirecting...","register_success":"Account created! Please check your email.","error_email_required":"Email is required","error_password_required":"Password is required","error_name_required":"Name is required","error_password_mismatch":"Passwords do not match","error_invalid_email":"Please enter a valid email","error_password_weak":"Password must be at least 8 characters","error_terms_required":"Please accept the terms to continue","password_strength":"Password strength","strength_weak":"Weak","strength_medium":"Medium","strength_strong":"Strong","perk_1":"Publish in minutes - no setup marathon","perk_2":"Annual license, updates and support included","perk_3":"Your content stays on your own server","left_tagline":"Next-generation, smart CMS."}; window.AUTH_LANG = 'en'; // Alt-klasör kurulumlarında (örn. localhost/jekcms) /api/auth yolunun doğru // çözülmesi için site kök öneki - auth.js bunu kullanır. window.JEK_SITE_BASE = ''; (function(){ var c=document.getElementById('amCanvas'); if(!c)return; var ctx=c.getContext('2d'); var ps=[]; function resize(){ c.width=c.offsetWidth; c.height=c.offsetHeight; } resize(); // Sürekli resize olayında geometri okuma reflow üretmesin: debounce + rAF. var rzT; window.addEventListener('resize',function(){ clearTimeout(rzT); rzT=setTimeout(function(){ requestAnimationFrame(resize); },150); }); for(var i=0;i<55;i++){ ps.push({x:Math.random()*c.width,y:Math.random()*c.height,v:Math.random()*0.25+0.05,o:Math.random()*0.35+0.1,r:Math.random()*1.5+0.5}); } function draw(){ ctx.clearRect(0,0,c.width,c.height); ps.forEach(function(p){ p.y-=p.v; if(p.y<0){p.y=c.height;p.x=Math.random()*c.width;} ctx.beginPath();ctx.arc(p.x,p.y,p.r,0,Math.PI*2); ctx.fillStyle='rgba(255,255,255,'+p.o+')';ctx.fill(); }); requestAnimationFrame(draw); } draw(); })(); </script> <!-- Newsletter signup band --> <section class="nl-band" aria-labelledby="nlBandTitle"> <div class="container nl-band-inner"> <div class="nl-band-copy"> <h2 id="nlBandTitle" class="nl-band-title">Be the first to know</h2> <p class="nl-band-sub">New features, release notes and CMS guides. We send a couple of emails a month.</p> </div> <form class="nl-band-form" id="nlBandForm" method="post" novalidate> <input type="hidden" name="csrf_token" value=""> <input type="hidden" name="lang" value="en"> <input type="text" name="website" class="nl-hp" tabindex="-1" autocomplete="off" aria-hidden="true"> <div class="nl-band-row"> <input type="text" name="name" required autocomplete="name" maxlength="120" placeholder="Your name" aria-label="Your name" class="nl-band-input"> <input type="email" name="email" required placeholder="Your email address" aria-label="Your email address" class="nl-band-input"> <button type="submit" class="nl-band-btn"> <span class="nl-band-btn-text">Subscribe</span> <svg class="nl-band-btn-spin" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true" style="display:none;"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg> </button> </div> <p class="nl-band-msg" id="nlBandMsg" role="status" aria-live="polite"></p> <p class="nl-band-legal" style="font-size:12px;opacity:.8;margin:8px 0 0;line-height:1.5"> By pressing "Subscribe" you agree to receive emails from jekcms with product news and release notes. Your subscription starts when you confirm the link we send to your inbox. You can unsubscribe at any time with the link in every email. Details: <a href="/privacy">Privacy Policy</a>. </p> </form> </div> </section> <!-- Footer --> <footer class="footer"> <div class="container"> <div class="footer-grid"> <!-- Brand Column (35%) --> <div class="footer-brand"> <a href="/" class="logo"> <img src="/assets/images/logo-dikey.svg" alt="jekcms" class="site-logo" width="60" height="60" style="height:60px;width:auto;display:block;"> </a> <!-- jekcms-footer-build:v6-autodeploy --> <p class="footer-tagline">Next-Generation, Smart CMS</p> <p class="footer-description">Premium themes, plugins and modules come with the licence, so you do not pay extra for them.</p> <div class="social-links"> <a href="https://x.com/jekcms" class="social-link" aria-label="X (Twitter)" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> </a> <a href="https://github.com/jekcms" class="social-link" aria-label="GitHub" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg> </a> <a href="https://linkedin.com/company/jekcms" class="social-link" aria-label="LinkedIn" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> </a> <a href="https://www.youtube.com/@jekcms" class="social-link" aria-label="YouTube" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg> </a> <a href="https://t.me/+A696gOYbtlg0MjQ0" class="social-link" aria-label="Telegram" target="_blank" rel="noopener"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg> </a> </div> </div> <!-- Links Columns (65%) --> <div class="footer-links-wrapper"> <!-- Product --> <div class="footer-links"> <h3>Product</h3> <ul> <li><a href="/features">Features</a></li> <li><a href="/wordpress-alternative">WordPress Alternative</a></li> <li><a href="/pricing">Pricing</a></li> <li><a href="/demos">Demo</a></li> <li><a href="/changelog">Changelog</a></li> </ul> </div> <!-- Support --> <div class="footer-links"> <h3>Support</h3> <ul> <li><a href="/help">Help Center</a></li> <li><a href="/api-reference">API Reference</a></li> <li><a href="/docs">Documentation</a></li> </ul> </div> <!-- Company --> <div class="footer-links"> <h3>Company</h3> <ul> <li><a href="/about">About</a></li> <li><a href="/blog">Blog</a></li> <li><a href="/security">Security</a></li> <li><a href="/trust">Trust Center</a></li> <li><a href="/press">Press Kit</a></li> <li><a href="/contact">Contact</a></li> <li><a href="/legal-notice" rel="nofollow">Legal notice</a></li> </ul> </div> <!-- Legal --> <div class="footer-links"> <h3>Legal</h3> <ul> <li><a href="/privacy">Privacy Policy</a></li> <li><a href="/terms">Terms of Service</a></li> <li><a href="/cookie-policy">Cookie Policy</a></li> <li><a href="/kvkk">KVKK</a></li> <li><a href="/refund">Refund Policy</a></li> <li><a href="/eula">License Agreement (EULA)</a></li> <li><a href="/report-piracy">Report Piracy</a></li> </ul> </div> </div> </div> <div class="footer-bottom"> <div class="footer-bottom-content"> <p class="footer-copyright"> © 2026 jekcms. All rights reserved. </p> <p class="footer-subsidiary"> jekcms is an <a href="https://alfadizayn.com" target="_blank" rel="noopener">ALFA Dizayn</a> brand. </p> </div> </div> </div> </footer> <!-- Newsletter band handler --> <script> (function () { var f = document.getElementById('nlBandForm'); if (!f) return; var msg = document.getElementById('nlBandMsg'); var btn = f.querySelector('.nl-band-btn'); var spin = f.querySelector('.nl-band-btn-spin'); var txt = f.querySelector('.nl-band-btn-text'); var base = ""; var T = { invalid: "Please enter a valid email.", network: "Network error. Try again." }; f.addEventListener('submit', function (e) { e.preventDefault(); msg.textContent = ''; msg.className = 'nl-band-msg'; var email = (f.email.value || '').trim(); if (!email || !/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) { msg.textContent = T.invalid; msg.classList.add('is-err'); return; } btn.disabled = true; spin.style.display = 'inline'; txt.style.opacity = '.6'; // Anonim sayfa oturumsuz servis edilir (CDN önbelleği); token gönderim // anında alınır - böylece önbelleklenmiş HTML'de paylaşılan bir token // taşınmaz. // Token HER gönderimde taze alınır: gömülü değer başka bir oturum // deposundan (eski PHPSESSID kalıntısı) ya da CDN'lenmiş sayfadan // gelmiş olabilir - "doluysa atla" kısayolu bu iki durumda formu // sessizce kırıyordu (denetim 2026-08-22). var tokenField = f.querySelector('input[name="csrf_token"]'); var ready = fetch(base + '/marketing-includes/ajax/csrf.php', { credentials: 'same-origin' }) .then(function (r) { return r.json(); }) .then(function (d) { if (tokenField && d && d.token) { tokenField.value = d.token; } }); ready.then(function () { return fetch(base + '/marketing-includes/ajax/newsletter-handler.php', { method: 'POST', body: new FormData(f), credentials: 'same-origin' }) .then(function (r) { return r.json(); }) .then(function (d) { btn.disabled = false; spin.style.display = 'none'; txt.style.opacity = '1'; msg.textContent = d.message || ''; msg.classList.add(d.success ? 'is-ok' : 'is-err'); if (d.success) { f.email.value = ''; } }) .catch(function () { btn.disabled = false; spin.style.display = 'none'; txt.style.opacity = '1'; msg.textContent = T.network; msg.classList.add('is-err'); }); }); }); })(); </script> <!-- Scripts --> <script defer src="/marketing-assets/js/main.js?v=1789638723"></script> <script defer src="/marketing-assets/js/auth.js?v=1789638723"></script> <script data-jek-mobile-nav-standard data-jek-panel="#nav-menu" src="https://jekcms.com/assets/js/mobile-nav-standard.js?v=1784551804" defer></script> </body> </html>