Skip to content

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 initialization sections; the framework discovers them via RTTI. Dependency injection for request context ([TKXContext]). Dynamic JS/CSS injection via TKXScriptRegistry.
  • Open Core licensing: Core (Apache 2.0), Enterprise modules (AGPL-3.0 / Commercial), KIDEX (Commercial only). Separate packages: KittoXCore.dpk and KittoXEnterprise.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 TemplateFileName for 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/HRef in 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 + Maximized forced for all fragment views/forms via AdjustControllerForContext
  • 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-mobile CSS 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 PreventRefreshing or 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 AjaxTimeout for both HTMX and fetch channels, Retry/Reset dialog

Filters

  • Filter Panel with: FreeSearch, List, DynaList, ButtonList, DynaButtonList
  • DateSearch, TimeSearch, DateTimeSearch, NumericSearch, BooleanSearch
  • Layout with ColumnBreak and LabelWidth

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: IKXSessionProvider with TKXCookieSessionProvider (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).

Supporting Delphi

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

Released under Apache License, Version 2.0.