Release Notes
08 Apr 2026: ver. 4.0.1 Beta
- Fixed Field Rules client-side (ForceUpperCase, ForceCamelCaps, MinValue/MaxValue)
- Fixed PackageGroup
- Fixed modal lookup for Reference fields
07 Apr 2026: ver. 4.0.0 Beta (first public release)
First public release of Kittox, the fourth generation of the Kitto framework. Complete rewrite of the client-side from ExtJS to HTMX + AlpineJS + TemplatePro, with a new modular server architecture.
Architecture
- HTMX + AlpineJS client: server-generated HTML fragments with partial page updates via AJAX. No heavy JavaScript framework.
- Attribute-Based Routing (RTTI): URL routing via Delphi custom attributes, inspired by MARS/WiRL. Resource classes register in
initializationsections; the framework discovers them via RTTI. Dependency injection for request context ([TKXContext]). Dynamic JS/CSS injection viaTKXScriptRegistry. - Open Core licensing: Core (Apache 2.0), Enterprise modules (AGPL-3.0 / Commercial), KIDEX (Commercial only). Separate packages:
KittoXCore.dpkandKittoXEnterprise.dpk. - Server-Side Store: persistent in-session data stores with record state tracking (
rsNew,rsClean,rsDirty,rsDeleted), transactional master-detail saving (INSERT/UPDATE/DELETE in a single DB transaction), blob lazy-loading, and store lifecycle management (save/cancel/close/timeout).
Controllers
- List (grid with CRUD toolbar, server-side paging, sorting, column layouts, row colors, grouping)
- GroupingList (collapsible group headers)
- Form (data-aware editing with field pages, detail tabs, ViewMode/EditMode state machine)
- Wizard (multi-step data-aware with Back/Next/Finish, per-step validation)
- BorderPanel, TabPanel, FlexPanel, TreePanel, TilePanel, HtmlPanel, StatusBar, ToolBar
- Enterprise: ChartPanel (Chart.js), CalendarPanel (EventCalendar), GoogleMap (Google Maps JS API), Dashboard (auto-refresh)
- Card View: List controller with
TemplateFileNamefor custom HTML card layouts with full CRUD - Desktop Embedded Mode: KittoX app inside a WebView2 (TEdgeBrowser) VCL window
Data & Database
- Database agnostic: pluggable via FireDAC (preferred), DBExpress, ADO
- Master-detail transactional save: master + all detail stores persisted in one transaction
- Detail CRUD in memory: add/edit/delete detail records without DB round-trips until final Save All
- Record state after Load: records loaded from DB correctly marked as
rsClean - Server-Side Store cache: blob lazy-load from session store, store released on save/cancel/close/timeout
Forms & Editing
- Form State Machine: ViewMode (Edit / Save All / Close) and EditMode (Save / Cancel) with CSS-based button toggling
- Save-cache endpoint: saves master to memory without DB persistence, enables Save All workflow
- Detail tables: lazy-loaded tabs, auto-built views, FK pre-fill on Add, transactional cascading save
- Unified Editor Factory (
Kitto.Html.Editors): centralized HTML input generation shared between Form and FilterPanel - Help button: configurable via
Defaults/Help/HRefin Config.yaml, appears in forms (first button) and list toolbar (after Refresh)
Mobile Support
- Automatic mobile detection: user agent + screen size cookie
- Fullscreen dialogs on mobile:
IsModal+Maximizedforced for all fragment views/forms viaAdjustControllerForContext - Panel properties:
IsModal(dialog overlay),Maximized(fullscreen viewport),AllowClose(X button and Close button) - Width/Height getters: return 0 when Maximized is True (original values preserved for restore)
kxApp.openView: single JS function for view opening from menus (TreePanel and TilePanel use identical logic)body.kx-mobileCSS class: forces dialog and login fullscreen on mobile devices- TilePanel: tile-based menu controller for mobile home pages, with touch support (
role="button",touch-action: manipulation) - Home view selection:
HomeTinyView(phone),HomeSmallView(tablet),HomeView(desktop)
UI & UX
- Toast notifications: shown after save ("Data saved") and delete ("Data deleted"), auto-dismiss 3 seconds
- Error handling: DB errors (EEFDBError) non-fatal with clean messages (driver prefixes stripped). Session-level errors trigger reload.
- Draggable dialogs: all message boxes and error dialogs draggable by title bar via
kxMakeDraggable - Refresh button: in CRUD toolbar (visible by default, hidden with
PreventRefreshingor on read-only controllers) - Column sorting: click to sort ascending, click again for descending, sort arrows via CSS pseudo-elements
- Double-click to open: automatic edit/view form from grid rows
- Session lost detection: fatal error dialog with reload on server restart
- Timeout handling: configurable
AjaxTimeoutfor both HTMX and fetch channels, Retry/Reset dialog
Filters
- Filter Panel with:
FreeSearch,List,DynaList,ButtonList,DynaButtonList DateSearch,TimeSearch,DateTimeSearch,NumericSearch,BooleanSearch- Layout with
ColumnBreakandLabelWidth
Custom Layouts
- Custom Layout for Grid and Form
- Grid Layout with Column position, alignment
- Form Layout "multipage", with collapsible regions
Authentication & Access Control
- Pluggable authenticators:
DB,DBCrypt,TextFile,DBServer,OSDB,Null - Pluggable access controllers:
DB,Null - BCrypt password hashing, Google OTP (TOTP) two-factor authentication, QR code generation
- Session abstraction:
IKXSessionProviderwithTKXCookieSessionProvider(JWT-ready for future)
Tools
- CSV export (
ExportCSVTool), Excel export via ADO (ExportExcelTool), SQL tool, file download/upload - FlexCel integration (commercial, Enterprise edition)
- ReportBuilder integration (commercial, Enterprise edition)
- DebenuQuickPDF for PDF merging
Deployment
- Standalone (VCL desktop or Windows service with embedded Indy HTTP server)
- Desktop Embedded (WebView2 inside VCL window)
- Console (headless server)
- IIS (ISAPI DLL via WebBroker)
- Apache (module via WebBroker)
KIDEX (Visual IDE — Enterprise)
- RTTI-based property discovery (replaced 215 MetadataTemplate YAML files)
- 6 custom YAML attributes:
YamlNode,YamlRequiredNode,YamlContainer,YamlSubNode,YamlChildType,YamlEnumValue - SVG icon support (Material Design Icons)
- Database reverse engineering (model creation from DB schema)
- Project wizard, validators, tree editors
Examples
- HelloKitto: simple party/invitation manager (Parties, Girls, Dolls, Invitations)
- TasKitto: activity tracking with dashboard, charts, calendar, projects, customers
- KEmployee: employee/customer management with master-detail, card views
Supported Delphi Versions
Available from Delphi 10.4 to Latest (Win32 or Win64 platforms).

Related links: www.embarcadero.com - https://learndelphi.org
