Celil Uyanıkoğlu
Computer engineer · creator of jekcms
Computer engineer with 25+ years in IT. He builds jekcms and runs his own network of content sites on it - every guide published here is tried on those live installs first.
63 posts · writing since 2025
Posts (page 2 of 3 · 63 posts total)
Building a Dental Clinic Website Step by Step
Dental clinic sites need service pages, doctor profiles, and a before/after gallery -- none of which need a dedicated database table in jekcms. Here's
Media Management: AVIF, WebP and Thumbnail Generation
jekcms converts every uploaded image to AVIF (quality 60) and WebP (quality 82), creates four sizes and prints a picture tag that lets the browser pic
Dark Mode Implementation: A Complete CSS Guide
A practical walkthrough of building dark mode with CSS custom properties, localStorage persistence, smooth transitions, and image handling. Includes a
Keyboard Shortcuts and Practical Tips for the jekcms Admin Panel
The shortcuts that save the most time in the panel: Ctrl+K search, find and replace in the editor, undo in the theme customiser and bulk selection in
Automated Backups and Disaster Recovery Strategy
A practical backup system using mysqldump, cron, and offsite rotation: plus the disaster recovery plan we actually tested by destroying a staging serv
Rate Limiting and Brute Force Protection in jekcms
How jekcms tracks failed login attempts and automatically blocks abusive IPs to stop brute force attacks: no Redis, memcached, or external dependency
Building a Portfolio Site with the Personal Theme
The jekcms Personal theme is an author-led personal blog theme. You can build a simple portfolio with it by putting your projects in a category and te
jekcms 1.5.3: Auto-Seed Settings, Core Web Vitals, Update System & SEO Hardening
1.5.3 is a focused reliability release: settings that seed themselves on first load, first-image LCP eager loading and CLS dimensions across every the
Multilingual SEO: The hreflang and Canonical Strategy We Rebuilt After an 87-Page Failure
All 87 of our docs pages declared the same two hreflang URLs, so Google ignored the lot. The path-derived fix, localized TR slugs, x-default and ?lang
jekcms Doesn't Have Shortcodes: Here's What You Get Instead
jekcms has no [shortcode] parser, no ShortcodeParser class, and no bracket syntax anywhere in the editor. That's a deliberate gap, not a missing featu
jekcms Webhook Security: HMAC Signing and Verification in PHP
A practical guide to webhook security in jekcms: how the built-in HMAC-SHA256 signature check works, why hash_equals matters, and how to add optional
Image Lazy Loading and CLS Prevention: A Practical Performance Guide
How jekcms handles image performance: native lazy loading, automatic width/height and fetchpriority for the LCP image via an output filter, and automa
Building a Restaurant Website with jekcms
A practical guide to building a restaurant site with jekcms using what actually ships: standard posts and settings, real schema output, and theme-leve
jekcms v1.5.0: Duplicate Prevention, Smart Thumbnails & Admin Tools
Version 1.5.0 adds automatic duplicate post detection across all API webhooks, a built-in duplicate finder tool in the admin panel, and intelligent fe
jekcms v1.4.0: SEO Overhaul, Content Optimizer, Breadcrumbs & Table of Contents
Version 1.4.0 is a SEO-focused release: standardized meta/Open Graph/Schema.org output, automatic breadcrumbs and table of contents, a dictionary-base
Introducing the Theme Customizer: Restyle Your Site Without Touching a File
The Theme Customizer is jekcms's schema-driven styling panel: the active theme declares its options, the customizer renders the matching form (colors,
jekcms v1.4.0: What to Check After You Upgrade
1.4.0 doesn't introduce breaking changes to your theme code or content: it's a SEO- and content-tooling release. Here's the practical checklist for co
Automating Content With n8n and the jekcms Publish API
jekcms's publish API connects to n8n with just a handful of workflow nodes: handling media uploads, setting categories, and following your publishing
SEO Audit Findings: The Errors That Keep Coming Back on My 14 jekcms Sites
Repeated audits of my own 14-site jekcms fleet keep finding the same things: empty legal pages, soft-404s, broken hreflang, spammy auto-links. Here ar
AVIF Conversion in jekcms: How the Pipeline Actually Works
jekcms converts uploaded images to AVIF and WebP and creates four sizes. What the server needs, the quality settings, how the browser picks the right
jekcms Theme File Structure: Why We Chose This Architecture
Which files a jekcms theme contains, which template each page loads, and why we use plain PHP instead of a template engine.
Running jekcms on Shared Hosting: A Realistic Performance Guide from 14 Live Sites
All 14 of my jekcms sites run on shared hosting behind Cloudflare: the biggest has 2,300+ posts. What actually matters for speed, first-hand.
Content Security Policy in jekcms: What It Sends and How to Tighten It
What the CSP header jekcms sends by default restricts, what it deliberately leaves open, and how to narrow the policy step by step on your own site.
Migrating 3,000 Posts from WordPress: What I Learned
I moved around 3,000 posts from my own WordPress sites into jekcms. The SQL-to-CSV import flow, plus what actually hurt: encoding, images, slugs.
How jekcms Hit a 97 Mobile PageSpeed Score on Shared Hosting
A real 97 mobile PageSpeed score on shared hosting. Which jekcms mechanisms move LCP, CLS and TBT, and which numbers I refuse to invent.