Web development

choice of platform

Why Kadence?

GOLD AWARD

Unleash the power of WordPress using Gutenberg
without the need for page builders

  • lightning-fast performance
  • separate mobile layouts
  • dynamic custom field integration
  • ecommerce enhanced (Shopkit)

It is the best of both worlds. Legacy or Old school WordPress is bloated using page managers. A coded language is often an ivory-tower website which only the developer will be able to modify and contain hidden long-term development costs.

I could try to persuade you otherwise … Laravel, a powerful server-side MVC PHP-framework. PHP is one of the world’s most popular programming languages for web development. It is both flexible and scalable…
To do so, would be in my interest …

No threat of an existential crisis such as third-party theme no longer updated, with page manager not opening after latest WordPress core update.

Ease of use

Intuitive workspace, no struggling with conflicting code.

Build speed, Performance

Very quick to build site, lightweight, nimble code which is cross browser friendly.

Design consistency

Pixel-perfect sections that co-exist with other blocks well, having no styling issues.

Plugin compatibility

Seamless integration and harmony, no conflicts or clashes as in most page builders.

Page load speed, Bloat factor

Feather-light, essentials only. No heavyweight scripts, no jQuery, no unnecessary styles and code.

Updates and maintenance

Automated, reliable updates, well-maintained.

Support, Community

Excellent support by a friendly, dedicated and knowledgeable team. A private Facebook group with expert designers to assist.

Cost

We have a Kadence lifetime license for unlimited sites which is cost effective and includes a host of plugins and code of an entire well-integrated ecosystem which is future proof with no annual subscriptions.

Future-proof Gutenberg compatibility

No issues with WordPress core updates, fast loads. Peace of mind.

WordPress still powers 40% of all sites on the web
WooCommerce is used on 30% of all ecommerce sites
(It is the most popular ecommerce platform in the world)
Fact checker

Once decided on WordPress at your platform, there are two roads available. A traditional page builder or the modern native block approach.

  • not just a theme
    Kadence is not just a “theme” or a “blocks” plugin. It’s an entire ECOSYSTEM of products to help build effective websites quickly.
    All Kadence products perfectly optimized for lightning-fast speed, performance, and SEO.
  • niches
    Kadence is particularly good and well-integrated for membership sites, eCommerce, online courses, business websites, non-profit and fundraising, blogs and podcasts. Furthermore, it meshes well with advanced custom fields (dynamic data).
  • looking ahead
    You don’t need to use bloated third-party page builders
    WordPress has made it perfectly clear that the future of WordPress is all in blocks.
    The future of WordPress is blocks.
  • very popular
    A shift from popular page editors (Elementor) to Gutenberg | Kadence blocks as this approach is fast becoming very popular worldwide for a number of well-founded reasons including security, performance and offering different layouts for tablets and mobile devices.

While Elementor is used by over ten million+ websites, the ENTIRE WordPress community of developers and designers is committed to the new Gutenberg system. Both have their own strengths and cater to different user needs.

Fact checker
less is more

Modernization ?

adding to Kadence ecosystem

Limit additional functionality to a maximum of 20% to keep bloat down to a minimum. (add sub-domains for membership content, etc.)

The Kadence ecosystem is designed for optimal performance.

Keep the number of third-party (non-Kadence) plugins required to a minimum *.


LESS IS MORE

  • Full membership site stack+
    (with AI chatbot and associated ticketing system, restricted content using tags, digital sovereignty)
    Useful for restricting access to future content such as online workshops, online courses, etc.
    Main recommended components of stack are: FluentCRM, wpFusion and ThriveDesk
    (extensive integration)
  • Web 3 and WeB 4+
    block chain, secure login, token gating and AI

* The technical reason to keep code core-centric: Kadence core plugins are well maintained and their code excludes jQuery which adversely affects performance. Security, performance, maintenance, php errors, etc. will develop over time with third-party code, especially if not well-maintained. Although corrections, refactoring can be done on a regular basis to rectify these issues, best practise dictates that third-party code be kept to a minimum from the beginning to avoid potential future issues. This is advice from a seasoned developer.
+ When your website needs go beyond the basics—whether for performance, SEO, or advanced functionality—we structure your project using multiple optimized backends while delivering a seamless, unified front-end experience.

Performance

The performance difference between Elementor and Kadence (particularly Kadence Blocks and Kadence Theme) is significant, especially if you’re focused on page speed, lightweight output, and core web vitals.

Here’s a detailed comparison:

⚡ Performance Comparison: Elementor vs Kadence

Feature

Elementor

Kadence (Theme + Blocks)

Page Speed (Out of the Box)

❌ Heavier due to extra DOM wrappers, CSS, JS

✅ Lightweight, minimal extra markup

Core Web Vitals

🚫 Often struggles, especially with LCP and CLS

✅ Generally passes without much tweaking

DOM Output

❌ Adds many wrapper <div>s

✅ Clean, semantic HTML

JavaScript/CSS Loading

❌ Loads global scripts even when unused

✅ Loads only what’s needed (modular)

Asset Size

❌ 500–700KB+ extra assets per page

✅ Often <100KB extra assets per page

FCP (First Contentful Paint)

⚠️ Slower due to rendering overhead

✅ Fast — optimized for speed

Custom Code Control

⚠️ Limited inside the visual builder

✅ Cleaner integration with custom PHP/JS

Integration with caching/CDN

✅ Good, with plugins

✅ Excellent, very compatible

🧪 Test Case Summary (Real-world Example) – Simple Homepage Test:

Metric

Elementor

Kadence

Page Load Time

~3.5s

~1.3s

Total Requests

~60

~25

Page Size

~1.2MB

~450KB

Google PSI Score

60–75

90–100

(Depending on hosting, images, caching, etc.)

Use Kadence if you want:

  • A fast, lean WordPress site.
  • Better Google PageSpeed/Core Web Vitals scores.
  • More control over code, fewer dependencies.
  • Gutenberg-native workflows.

Security

Here’s a detailed Elementor vs Kadence security comparison, focusing on architecture, update history, and real-world vulnerabilities:

🔐 Security Comparison: Elementor vs Kadence

Feature

Elementor

Kadence (Theme + Blocks)

Plugin Complexity

❌ Large, complex codebase (500K+ lines)

✅ Lightweight, smaller attack surface

Known Vulnerabilities

⚠️ Multiple in past (XSS, privilege escalation)

✅ Very few, mostly low severity

Code Exposure

❌ Many dynamic features (popup builder, theme builder, forms) increase exposure

✅ Fewer dynamic features, more static output

3rd-Party Addon Risks

❌ High — many 3rd-party Elementor add-ons are poorly maintained

✅ Lower — fewer Kadence add-ons exist

Security Practices

✅ Generally secure, with a professional team

✅ Excellent — leaner and more secure-by-design

Security Fix Frequency

⚠️ Fixes are regular due to large surface

✅ Rarely needs security patches

Gutenberg Base

❌ Not native — separate system

✅ Native — built on secure Gutenberg base

Granular Control (Roles)

⚠️ Limited — more powerful, but can expose editors to risky tools

✅ Fewer role-based concerns

🧪 Real-World Security History

Elementor:
Multiple high-severity vulnerabilities in recent years:

🔸 March 2023: Authenticated arbitrary file upload (millions of sites affected).

🔸 May 2022: Privilege escalation via broken access control.

🔸 Repeated issues in Elementor Pro with form widget, custom code widget, etc.

Exposure often stems from powerful dynamic features and rapid update cycles.

Kadence:
No major vulnerabilities publicly disclosed.

Built closer to core WordPress standards (Gutenberg, Customizer).

Smaller codebase = less room for error.

Use Kadence if:

  • You prioritize security, stability, and minimal risk.
  • You want fewer vulnerabilities and a Gutenberg-aligned experience.
  • You prefer fewer moving parts and a conservative, stable stack.

gradient_header

Underline Animated Button

UI and UX excellence. Refactoring design. Mobile Ready.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

View The Mock-up

Roboto 16px 300 caps

Roboto 44.8px 300

View Wireframe
Talk to Me

Button Roboto 16px 400 and text

TAKE THE NEXT STEP

VIEW
TALK
SHARE

MY PORTFOLIO

BRANDING & UI / UX

VIEW PORTFOLIO

BRAND

CRAFTING SOMETHING UNIQUE

Timeless web development- authentic, natural, and beautifully crafted.

INTERNATIONAL


CONTACT

LET’S CHAT

I am based in the Port Alfred, South Africa and am available for web development internationally

email me: ([email protected]) WhatsApp: +27-83-463-7434 or complete the contact form, and we will get back to you within a day.

CONNECT
man in white dress shirt wearing black sunglasses

Need help crafting your site?

Hire Our Expert Today

Leave the stress behind and let our expert developer craft a stunning website tailored just for you.

Talk to Us

Heading

HeadingExcepteur sint occaecat cupidatat.

Explore further

Heading

HeadingExcepteur sint occaecat cupidatat.

Explore further

Heading

HeadingExcepteur sint occaecat cupidatat.

Explore further

Heading

HeadingExcepteur sint occaecat cupidatat.

Explore further

CUSTOM BLOCKS

Handcrafted Websites

An enticing headline with a 
gradient background

To change your gradient colors, go to the “Section” level holding this area and open the
“Custom CSS” section. Change the values in the “linear-gradient” line.

ButtonButton

UI and UX excellence. Refactoring design. Mobile Ready.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

View The Mock-up

Editorial Photography for Weddings, Brands & Creative People

The Art of Visual
Storytelling

View Portfolio

BRAND

CAPTURING MOMENTS THAT MATTER

Timeless web development- authentic, natural, and beautifully crafted.

INTERNATIONAL


Enticing headline to 
engage your readers

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

GET STARTEDLEARN MORE
Scroll on Hover

CUSTOM CSS EXAMPLE

Lorem ipsum dolor

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat

Photo Left

Visit our Virtual Space

July 2025 – Updated

See our Portfolio
Photo Right

CSS Classes and code

gradient-text

glow-text

typing-text

rainbow-hover

three-d-text

wavy-text

outline-text

neon-flicker

SCROLL-BASED TEXT EFFECTS

scroll-fade (Fade-in on Scroll) needs JS in footer (alt AOS plugin class: aos-fade-up )

slide-in-left (Slide-in from Left)

RESPONSIVE TEXT STYLES

responsive-text (Fluid Font Size)

media-responsive (Responsive Font with Media Queries)

TEXT BUTTON EFFECTS

shine-button (Button with Text Shine on Hover)

glow-button (Glow Button with Text Pulse)

underline-sweep (Underline Sweep on Hover)

IMAGE EFFECTS

img-zoom (Hover Zoom Effect)

img-grayscale (Grayscale on Hover)

underline-sweep (Underline Sweep on Hover)

img-overlay (Color Overlay)

img-glow (Image Glow on Hover)

img-blur (Blur on Hover)

img-rounded-shadow (Rounded with Shadow)

img-sepia (Sepia Effect)

img-bright (Brightness)

img-dark (Darkness)

img-contrast (Contrast)

HOVER & TRANSFORM EFFECTS

img-flip (Flip on Hover)

img-rotate (Rotate on Hover)

img-skew (Skew on Hover)

ANIMATED/TRANSITION EFFECTS

img-pulse (Pulse Animation)

img-fadein (Fade In on Load)

BORDERS, FRAMES & SHADOWS

img-border-hover (Border on Hover)

img-drop-shadow (Drop Shadow)

GRADIENT OVERLAY HOVER EFFECT

img-gradient-hover

/* Gradient Text */
.gradient-text {
background: linear-gradient(45deg, #ff6ec4, #7873f5);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* Glow Text */
.glow-text {
color: #fff;
text-shadow: 0 0 5px #fff, 0 0 10px #ff00ff, 0 0 20px #ff00ff;
}
/* 3D Text Shadow */
.text-3d {
color: #fff;
text-shadow: 1px 1px 0 #ccc, 2px 2px 0 #bbb, 3px 3px 0 #aaa;
}
/* Outlined Text */
.outline-text {
color: transparent;
-webkit-text-stroke: 1px #333;
}
/* Rainbow Hover Text */
.rainbow-hover {
background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet);
background-size: 200%;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
transition: background-position 0.6s ease;
}
.rainbow-hover:hover {
background-position: right;
}
/* Typing Animation / .typing-text { font-family: monospace; white-space: nowrap; overflow: hidden; width: 0; border-right: 2px solid; animation: typing 4s steps(30, end) forwards, blink 0.7s step-end infinite; } @keyframes typing { to { width: 100%; } } @keyframes blink { 50% { border-color: transparent; } } / Fluid Font Size */
.responsive-text {
font-size: clamp(1rem, 4vw, 3rem);
}
/* Media Query Font Sizes / .media-responsive { font-size: 18px; } @media (min-width: 768px) { .media-responsive { font-size: 24px; } } @media (min-width: 1200px) { .media-responsive { font-size: 32px; } } / Fade In */
.scroll-fade {
opacity: 0;
transform: translateY(30px);
transition: all 0.6s ease-out;
}
.scroll-fade.visible {
opacity: 1;
transform: translateY(0);
}
/* Slide In Left / .slide-in-left { opacity: 0; transform: translateX(-60px); transition: all 0.7s ease-out; } .slide-in-left.visible { opacity: 1; transform: translateX(0); } / Glowing Button */
.glow-button {
background-color: #111;
color: #0f0;
padding: 10px 20px;
border: none;
border-radius: 6px;
box-shadow: 0 0 10px #0f0;
text-shadow: 0 0 5px #0f0;
animation: pulseGlow 2s infinite alternate;
}
@keyframes pulseGlow {
from { box-shadow: 0 0 10px #0f0; }
to { box-shadow: 0 0 25px #0f0; }
}
/* Shine Hover Button */
.shine-button {
position: relative;
display: inline-block;
color: #fff;
background: #333;
padding: 12px 24px;
overflow: hidden;
border-radius: 4px;
transition: background 0.3s;
}
.shine-button::before {
content: ”;
position: absolute;
top: 0;
left: -75%;
width: 50%;
height: 100%;
background: linear-gradient(120deg, transparent, rgba(255,255,255,0.5), transparent);
transform: skewX(-20deg);
}
.shine-button:hover::before {
left: 125%;
transition: left 0.75s;
}
/* Underline Hover Effect */
.underline-hover {
position: relative;
display: inline-block;
color: #000;
text-decoration: none;
}
.underline-hover::after {
content: ”;
position: absolute;
width: 100%;
height: 2px;
left: 0;
bottom: 0;
background-color: #ff4081;
transform: scaleX(0);
transform-origin: bottom right;
transition: transform 0.3s ease-out;
}
.underline-hover:hover::after {
transform: scaleX(1);
transform-origin: bottom left;
}
.img-zoom {
  transition: transform 0.3s ease;
}
.img-zoom:hover {
  transform: scale(1.1);
}
.img-grayscale {
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}
.img-grayscale:hover {
  filter: grayscale(0%);
}
.img-overlay {
  position: relative;
  overflow: hidden;
}
.img-overlay::after {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.4);
  transition: background 0.3s ease;
}
.img-overlay:hover::after {
  background: rgba(0, 0, 0, 0.1);
}
.img-glow {
  transition: box-shadow 0.3s ease;
}
.img-glow:hover {
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
}
.img-blur {
  transition: filter 0.3s ease;
}
.img-blur:hover {
  filter: blur(2px);
}
.img-rounded-shadow {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.img-sepia {
  filter: sepia(100%);
}
.img-bright {
  filter: brightness(1.4);
}
.img-dark {
  filter: brightness(0.6);
}
.img-contrast {
  filter: contrast(150%);
}
.img-flip {
  transition: transform 0.6s;
  transform-style: preserve-3d;
}
.img-flip:hover {
  transform: rotateY(180deg);
}
.img-rotate {
  transition: transform 0.4s ease;
}
.img-rotate:hover {
  transform: rotate(10deg);
}
.img-skew {
  transition: transform 0.4s ease;
}
.img-skew:hover {
  transform: skewX(10deg);
}
@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

.img-pulse {
  animation: pulse 2s infinite;
}
.img-fadein {
  opacity: 0;
  animation: fadeIn 1s ease-in forwards;
}
@keyframes fadeIn {
  to { opacity: 1; }
}
.img-border-hover {
  transition: border 0.3s ease;
}
.img-border-hover:hover {
  border: 4px solid #007BFF;
}
.img-drop-shadow {
  filter: drop-shadow(0 5px 5px rgba(0,0,0,0.3));
}
.img-gradient-hover {
  position: relative;
  overflow: hidden;
}
.img-gradient-hover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.img-gradient-hover:hover::after {
  opacity: 1;
}
.img-card {
  position: relative;
  overflow: hidden;
  width: 300px;
  height: 200px;
  border-radius: 12px;
}

.img-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

Custom PHP code, plugins, and API integrations allow us to extend and enhance your WordPress site far beyond what’s possible with standard tools. We can add tailored features, connect your site to third-party services, and build advanced content blocks using the modern Gutenberg editor. While Gutenberg is powered by JavaScript, PHP still plays a key role behind the scenes—helping us register custom blocks, manage data, and ensure everything works smoothly. This combination gives you a faster, more flexible website that’s built specifically around your business needs.

Example of a PHP code snippet (API integration) to display exchange rate:

<?php

// [exchange_rate currency="USD"]
add_shortcode('exchange_rate', function($atts) {
    $atts = shortcode_atts(['currency' => 'USD'], $atts);

    $url = "https://api.exchangerate-api.com/v4/latest/{$atts['currency']}";
    $response = wp_remote_get($url);
    if (is_wp_error($response)) return 'Error fetching rate';

    $data = json_decode(wp_remote_retrieve_body($response), true);
    $rate = $data['rates']['ZAR'] ?? null;

    if (!$rate) return 'Rate not available';
    return "1 {$atts['currency']} = " . number_format($rate, 2) . " ZAR";
});

or as a plugin:

Folder Structure:

exchange-rate-php/
│
├── exchange-rate-php.php


exchange-rate-php.php
<?php
/**
 * Plugin Name: Exchange Rate Block (PHP)
 * Description: A shortcode-based plugin that shows the USD to ZAR exchange rate.
 * Version: 1.0
 * Author: Your Name
 */

add_shortcode('exchange_rate', function($atts) {
    $atts = shortcode_atts(['currency' => 'USD'], $atts);

    $url = "https://api.exchangerate-api.com/v4/latest/{$atts['currency']}";
    $response = wp_remote_get($url);
    if (is_wp_error($response)) return 'Error fetching rate';

    $data = json_decode(wp_remote_retrieve_body($response), true);
    $rate = $data['rates']['ZAR'] ?? null;

    if (!$rate) return 'Rate not available';
    return "<p>1 {$atts['currency']} = " . number_format($rate, 2) . " ZAR</p>";
});

Gutenberg | JavaScript First

Editor UI: Completely written in React (JSX).
Block Development: Done using modern JavaScript (ES6+), JSK, and React.
Custom block plugins: Often built with JS build tools.

So, is this a shift from PHP to JavaScript?

Is WordPress abandoning PHP?
No. PHP is still essential.
Is Gutenberg built primarily with JavaScript/React?
Yes.
Do developers now need to learn JavaScript to build for Gutenberg?
Absolutely – especially React and ESNext.
Is this a full rewrite of WordPress in JavaScript?
No. It is a layered evolution, not a full rewrite.

Classic WordPress: PHP-driven, procedural templates, shortcodes.
Modern WordPress with Gutenberg: JavaScript-first editing (React), PHP backend, modular block architecture.

So yes – Gutenberg is a shift from PHP to JavaScript in the editor layer, but PHP remains deeply. It’s similar to the popular PHP framework Laravel, which enables PHP developers to use modern JavaScript on the frontend.
Page builders have served as a bridge between classic WordPress and modern WordPress, helping users overcome the limitations of the old editor when designing websites. Today, the native Gutenberg editor—built with a JavaScript-first approach—offers a more powerful and flexible experience, especially when extended by Kadence.

A React-based editable block in WordPress (typically built with Gutenberg’s block editor) offers much more than just live data updates. Here’s a detailed comparison of what React-based blocks can do versus PHP-based blocks:

1

Interactivity & Live Preview (in editor)

React (JSX/JavaScript-based): Allows real-time interaction while editing. For example, dropdowns, sliders, toggles, etc., update instantly in the editor (like a web app).
PHP: Only renders on the front-end or on saving. Editor view is static or requires serverSideRender for updates.

2

True WYSIWYG (What You See Is What You Get)

React: The block looks the same in the editor as on the front-end (when coded properly).
PHP: Often shows a placeholder or simplified version in the editor (e.g., shortcodes or static markup), especially in Classic Editor.

3

Dynamic Client-side Logic

React: Can pull live data from REST APIs, manipulate it, and update the block instantly in the editor (without reloading).
PHP: Can fetch data from APIs too, but only during render (e.g., on page load or when saving content). No dynamic editor behavior unless you mix it with JS manually.

4

Reusable UI Controls & Gutenberg Integration

React: Uses WordPress’s own React-based component library — buttons, color pickers, toggles, media uploaders, etc.
PHP: Cannot use these directly. You’d need to build your own JS UI or rely on meta boxes, shortcodes, or Advanced Custom Fields (ACF).

5

Editor Performance & Extensibility

React: Blocks are modular, easier to extend with InnerBlocks, reusable components, and state management.
PHP: Logic is tightly coupled to rendering, harder to scale or reuse in the modern block editor.

6

Better UX for End Users

React: Enables non-developers to visually compose and configure complex blocks easily, like charts, forms, live previews, etc.
PHP: Better for static content or server-rendered logic, but not ideal for interactive editing.

7

Backward Compatibility / Simplicity

PHP: Still useful for simple or server-rendered blocks, or when you want to ensure compatibility with classic themes or non-block environments.
React: Best suited for fully block-based (FSE) or modern WordPress themes.

So, does React do more than just live data?

Absolutely. It powers the full visual, interactive editing experience of the modern WordPress block editor, and is essential for building blocks that are:
User-friendly
Dynamic
Reusable
Consistent with Gutenberg standards

Side-by-Side Comparison

Feature

React Block

PHP Block

Live Data in Editor

Yes

No

Interactive UI (dropdowns etc.)

Yes

No

Easy for users (WYSIWYG)

Yes

Limited

Renders on front-end

Yes

Yes

Complex UI Support

Yes (sliders, toggles)

Difficult

Server Load

Higher (more JS)

Low

Dev Complexity

Higher

Simpler

So When to Use Which?

Use Case

Recommended Block Type

Static content, low complexity

PHP

Dynamic content, real-time API, live previews

React

Reusable block for non-tech users

React

Internal tools or admin-only UI

React (or hybrid)

Legacy theme or shortcode support

PHP



Example of a React-Based Gutenberg Exchange Rate Block:

Folder Structure:

exchange-rate-block/
│
├── exchange-rate-block.php
├── block/
│   ├── index.js
│   └── block.json



exchange-rate-block.php
<?php
/**
 * Plugin Name: Exchange Rate Block (React)
 * Description: A Gutenberg block that shows live exchange rate with dropdown.
 * Version: 1.0
 * Author: Your Name
 */

function erb_register_block() {
    register_block_type(__DIR__ . '/block');
}
add_action('init', 'erb_register_block');


block/block.json
{
  "apiVersion": 2,
  "name": "erb/exchange-rate",
  "title": "Live Exchange Rate",
  "category": "widgets",
  "icon": "chart-line",
  "editorScript": "file:./index.js",
  "attributes": {
    "currency": {
      "type": "string",
      "default": "USD"
    }
  }
}


block/index.js (React)
import { registerBlockType } from '@wordpress/blocks';
import { useState, useEffect } from '@wordpress/element';
import { SelectControl } from '@wordpress/components';

registerBlockType('erb/exchange-rate', {
    edit({ attributes, setAttributes }) {
        const [rate, setRate] = useState(null);

        useEffect(() => {
            fetch(`https://api.exchangerate-api.com/v4/latest/${attributes.currency}`)
                .then(res => res.json())
                .then(data => setRate(data.rates['ZAR']))
                .catch(() => setRate(null));
        }, [attributes.currency]);

        return (
            <>
                <SelectControl
                    label="Base Currency"
                    value={attributes.currency}
                    options={[
                        { label: 'USD', value: 'USD' },
                        { label: 'EUR', value: 'EUR' },
                        { label: 'GBP', value: 'GBP' },
                    ]}
                    onChange={(val) => setAttributes({ currency: val })}
                />
                <p>
                    1 {attributes.currency} = {rate ? rate.toFixed(2) : '...'} ZAR
                </p>
            </>
        );
    },
    save() {
        return null; // Render dynamically or in frontend JS
    }
});

AI Integration | AI Chatbots and more

The modern web landscape is evolving rapidly, driven by innovations such as the Semantic Web, AI, Progressive Web Apps, blockchain, and decentralized technologies, all converging into what’s now referred to as Web 3.0 and Web 4.0. Institutions are leveraging these technologies to enhance user experience, personalization, data integrity, and connectivity. WordPress, the world’s most popular CMS powering over 40% of websites, is uniquely positioned to adapt and integrate these capabilities, thanks to its vast plugin ecosystem and ease of implementation. Contrary to popular belief, blockchain doesn’t replace traditional server-based frameworks like WordPress but complements them—ideal for niche applications like digital credentials, decentralized finance, and secure identity verification. While emerging technologies like AI chatbots, push notifications, edge computing, and machine learning-based content personalization are reshaping engagement, foundational issues such as secure email delivery, user authentication, server reliability, and outdated themes must also be addressed. With tools like WP Fusion, ActiveCampaign, LearnDash, WP ERP, and ThriveDesk, WordPress can serve as a powerful hub that integrates CRM, LMS, e-commerce, ERP, and support systems, enabling institutions to modernize their digital presence affordably and efficiently without requiring deep technical expertise or custom development from scratch.

AI Chatbot example: Botpress active on Development platform page (see floating chat icon on bottom-right corner of linked page)

Progressive Web Apps (PWA) is a new technology that combines the best of mobile web and the best of mobile apps to create a superior mobile web experience. They are installed on the phone like a normal app (web app) and can be accessed from the home screen. Users can come back to your website by launching the app from their home screen and interact with your website through an app-like interface. Your return visitors will experience almost-instant loading times and enjoy the great performance benefits of your PWA! In other words, this can completely replace mobile app development. Example: I recently created a local business directory using Kadence and a free progressive web app (PWA) plugin, giving our community its first mobile directory with free business listings. By leveraging a PWA—designed to feel like a native Android or iOS app—we avoided the cost and complexity of separate app development and app store fees.

Kadence AI tools are designed to streamline website creation by intelligently assisting users with content generation, layout suggestions, and block configurations directly within the WordPress editor. Integrated into the Kadence Blocks plugin, these tools use AI to help generate headlines, paragraphs, and even full sections based on user prompts or existing content. This allows users—especially non-designers and non-developers—to build professional-looking pages faster, with tailored messaging and optimized structure. Kadence AI also enhances efficiency by offering smart layout options and style presets that align with your brand, significantly reducing the time needed to design and publish content-rich pages.

Yes, there are specific cases when I would recommend Elementor* …. a property website for an estate agency with a predesigned theme using Elementor. Elementor has an established and a much larger selection of marketplace themes than Kadence. These can be edited and modified, saving on development costs.

* To keep code core-centric: Elementor Pro and Elements Kit Pro need to be used extensively.
Although legacy (pre-Gutenberg) or old school, Elementor has evolved significantly and has a wide user and support base.


Laravel, a coded platform, is also preferred in certain instances, especially web applications. Laravel provides powerful blade templating, an Eloquent ORM that allows complete control over all aspects of a database-driven website. Authentication scaffolding. It even allows API’s to be developed for mobile devices. It gives you much more flexibility than using a typical WordPress template.

COSTS

Agency license

We have a lifetime WordPress Kadence agency license which allows us to use Kadence on your websites without any additional Kadence licensing costs as long as we are regularly managing or developing your website. We are also investing heavily in the Kadence platform with time and effort as we strongly feel this is best platform for most of our clients.

Long-term consideration

COSTS

In the long term, Kadence leads to 10% developer, 90% inhouse.

Other coded platforms:
In the long term, 90% developer, 10% inhouse due to technical constraints.
In other words, Kadence will pay off big time in the long term cost wise.

As a developer, I should not be giving you this advice …

Some of the coded technologies that
we have worked with in the past: