For Developers

Technical Specifications

Everything you need to know about the architecture, technology stack and requirements of uwAdmin6.

Technology Stack

Reliable, proven technologies with zero exotic dependencies.

PHP 8.2+

  • OOP with classes and namespaces
  • MySQLi with prepared statements
  • Secure session management
  • Intervention Image 3.x

MySQL 8.0+

  • InnoDB with foreign keys
  • UTF8MB4 full unicode
  • Optimised indexes
  • ACID transactions

Frontend Stack

  • Tailwind CSS 4.x
  • Alpine.js 3.x
  • Flowbite 4.x
  • jQuery 3.7 (compatibility)

Rich Text Editor

  • TinyMCE 8.2
  • MoxieManager 8.2
  • Multilingual configuration
  • Custom plugins

UI & Icons

  • Font Awesome Pro 7.2
  • Flag Icons
  • SortableJS 1.15
  • Fancybox 3.5.7

Zero Framework

  • No Laravel/Symfony
  • Composer for minimal dependencies
  • Deploy via FTP/SFTP
  • Shared hosting compatible

Architecture

Modular pattern with separation of concerns and native multilingual support.

Modular Pattern

Each module follows a standardised structure:

/uw-admin/admin/{modulo}/
├── index.php       # Lista con filtri
├── form.php        # Create/Edit
├── ajax/           # Operazioni async
│   ├── delete.php
│   ├── toggle-*.php
│   └── reorder.php
└── includes/       # Componenti riutilizzabili

24 modules implemented with this pattern

Selective activation per project

Multilingual System

Polymorphic pattern with separate tables:

# Tabella principale
news (id, data_pubblicazione, attivo)

# Tabella traduzioni
news_traduzioni (
  id, news_id, lingua_id,
  titolo, slug, contenuto,
  UNIQUE(news_id, lingua_id)
)

9 languages natively supported

SEO-friendly URLs per language: /it/news/titolo

Media Management

Single upload, 7 automatic formats:

Format Size Usage
s150pxThumbnail
m300pxCard
l600pxContent
xl1200pxHero
xxl1920pxFull HD
original-Backup
cropCustomRitaglio

RBAC System

4 roles with granular per-module permissions:

Role Read Write Delete Publish
Super Admin
Admin
Editor
Viewer

Theme Management

Active theme configurable from admin with development theme support:

Priorita risoluzione tema:
1. Tema sviluppo (se abilitato + IP/cookie)
2. Tema attivo (da database)
3. Fallback a 'default'

Granular override: customise only the files you need

Development theme: test new themes without affecting visitors

Authorisation: IP whitelist or secret cookie

Password Recovery

Complete system with SMTP email and secure token:

Token: 64 char hex (random_bytes)
Scadenza: 1 ora
Anti-enumeration: messaggio generico
SMTP: PHPMailer con fallback mail()

Built-in modal on the login page (Alpine.js)

8 email preferences configurable from admin

reCAPTCHA v3 optional for anti-spam

GDPR & Cookie Consent

Zero-dependency built-in system for GDPR and ePrivacy compliance:

Cookie Banner (2 livelli):
1. Barra fissa: Accetta | Rifiuta | Personalizza
2. Modal: toggle per categoria cookie

Blocco preventivo script:
- GA4 caricato SOLO dopo consenso
- Script custom bloccati fino ad accettazione
- reCAPTCHA classificato come tecnico

Cookie: uw_cookie_consent (base64 JSON, 365gg)
Policy: generate automaticamente IT/EN

18 preferences in database (10 privacy + 8 cookie)

PHP Classes: CookieConsent + PrivacyPolicy

Frontend: Alpine.js cookie-consent.js

Security

Full OWASP Top 10 protection and best practices.

SQL Injection

100% prepared statements with parameter binding via MySQLi.

$db->query($sql, [$id], 'i');

XSS Protection

Output encoding with htmlspecialchars() on all user data.

htmlspecialchars($data, ENT_QUOTES, 'UTF-8')

CSRF Protection

Unique per-session token on every POST form.

<input type="hidden" name="csrf_token" value="...">

Password Security

Hashing with PASSWORD_BCRYPT and cost factor 12.

password_hash($pwd, PASSWORD_BCRYPT, ['cost' => 12])

Rate Limiting

5 failed attempts \u{2192} 15-minute lockout. Anti brute-force.

max_attempts: 5, lockout: 900s

Session Fingerprint

IP + User Agent binding. ID regeneration post-login.

session_regenerate_id(true);

reCAPTCHA v3

Invisible anti-spam protection with score-based validation (0.0-1.0).

$recaptcha->isValid(null, 'login');
OWASP Top 10 2021 \u{2022} GDPR Compliant \u{2022} Audit Trail

Hosting Requirements

Compatible with most hosting providers.

Minimum Requirements

PHP 8.2+
MySQL 8.0+
PHP Memory 128 MB
Max Upload 32 MB
Disk Space 500 MB+

Required PHP Extensions

mysqli
mbstring
gd
json
session
curl
fileinfo
openssl

Optional: imagick for advanced image processing

Compatible Providers

Aruba SiteGround Netsons OVH Serverplan VHosting DigitalOcean AWS

Integrations

Supported external services and APIs.

OpenRouter

OpenRouter AI

Content generation
  • Claude, GPT-4, Llama
  • Specialised assistants
  • Automatic translations

YouTube

Video embed
  • Responsive embed
  • Automatic thumbnail
  • Privacy-enhanced mode

Vimeo

Video embed
  • Responsive embed
  • Metadata extraction
  • Custom player

Intervention Image

Image processing
  • Automatic resizing
  • Smart crop (cover)
  • Watermark and rotation

PHPMailer

Email delivery
  • Authenticated SMTP
  • Responsive HTML emails
  • Attachments and templates
AI-ready

REST API & Connect AI

A WordPress-style REST API that turns the CMS into an "AI-ready" endpoint: manage your content by talking to an AI assistant (Claude, ChatGPT, Gemini…), through open standards.

The engine — REST API

Inside the CMS (PHP): it receives HTTP+JSON requests and acts on content. Around 19 resources/modules covered.

The translator — MCP Bridge

An npm package that connects AI assistants to the API. It is self-documenting: it discovers the available functions on its own.

The dashboard — Connect AI

An admin page that generates the keys and provides copy-paste instructions for each assistant.

MCP (Model Context Protocol) and OpenAPI 3.0. The architecture is AI-agnostic by design: no vendor lock-in, and it will keep working with future models without buying anything again.

What it offers

Application Passwords

Dedicated keys for each connected app, shown only once and revocable, with the permissions of the individual user.

Granular permissions (scopes)

Each key can be limited to specific modules or actions.

AI drafts

Content created by AI stays invisible to the public until it is published by hand.

Non-destructive edits

AI edits to published content stay online, are flagged and can be undone (restoring the previous text).

Audit log

Who, what, when, from which app/IP — all visible in a dedicated panel.

Rate limit

Configurable hourly request cap for each key, to prevent abuse.

Multilingual

Payloads with per-language translations (it/en/…), consistent with the CMS.

Image upload

Uploading photos to a gallery with automatic format generation.

Content reordering

Positioning items via AI, just like the panel's drag-and-drop.

Extensibility

A new API module = a single class; it appears automatically among the AI's tools.

Examples: what you can write to the assistant

Natural-language sentences that become content in the CMS, ready to review.

“Publish a news post titled "Saturday concert" with this text and this photo.”
“Update the English biography by adding the latest award received.”
“Create the event on June 20 at 9:00 PM at the Teatro Comunale.”
“Upload these 8 photos to the concert gallery and put them in this order.”
“Move the Corriere press review to the top.”

Why it is different from WordPress + AI plugins

Aspect WordPress + AI plugins uwAdmin6 REST API
Multi-AI Separate plugins per single vendor, fragmented A single API, open standards, AI-agnostic
Publishing safety Varies by plugin Native AI drafts: nothing goes live without human approval
Edits to live content Risk of overwriting Non-destructive + restore of previous text
Traceability Depends on the plugin Audit log built into the CMS
New content types Depends on the plugin One class → AI tool automatically
Already works with Claude, ChatGPT and Gemini (apps and web) • DeepSeek coming soon

E-Commerce Module — uwEasyShop

Integrated e-commerce system with full product, order and payment management.

Product Types

No limit on product types. You can sell any physical, digital product or service. Some examples:

Physical Products

  • CDs / Vinyl
  • Books / Manuals
  • Printed documents
  • Merchandise
  • Event tickets

Digital Products

  • File downloads
  • PDF / E-books / Guides
  • Streaming access
  • Software licences
  • Gift cards

Other

  • Subscriptions
  • Donations
  • Mixed bundles

Payment Gateway

Dual gateway with PCI-compliant handling:

  • Stripe — credit cards, Apple Pay, Google Pay
  • PayPal — checkout and express payment
  • Webhook handling for asynchronous payment confirmation
  • Multi-currency support (EUR, USD, GBP...)

Checkout Engine

Adaptive 4-step checkout:

  • Step 1: Cart — product and quantity summary
  • Step 2: Customer details — adaptive form (shipping only for physical products)
  • Step 3: Payment — gateway selection and confirmation
  • Step 4: Confirmation — order summary and download link (if digital)

Order Management

5 order statuses with complete workflow:

  • Pending → Paid → Shipped → Delivered → Refunded
  • Automatically generated PDF receipts
  • Full and partial refunds
  • Automatic email notifications for every status change

Coupon System

Flexible promotions with compound rules:

  • Percentage or fixed amount discount
  • Configurable expiry date
  • Usage limits per coupon and per customer
  • Restrictions by product category or minimum amount

Analytics

Integrated sales dashboard:

  • Top products by sales and revenue
  • Revenue breakdown by payment gateway
  • Order statistics by period
  • CSV export for external reporting

Have technical questions?

Get in touch for a technical consultation or to request a personalised demo.