Kitto: Data-driven Web Toolkit for Delphi developers

Kitto is a tool for data-driven web application Development. It allows to create Rich Internet Applications based on a data model that can be mapped onto any database.

It was born primarily to address the needs of Delphi Client/Server developers, traditionally left out of the web business because of the variety of technologies and standards involved, their lack of structure (compared to Delphi) and because of the poor performance or bad luck of web development technologies bundled with Delphi over the years.

The goal with Kitto is keeping on writing the application logic in Delphi, with top-level database support (on par to what is expected in a traditional C/S environment), and at the same time using flexible and rapid tools for describing the GUI of a rich browser-based client application.

The client-side part uses ExtJS (through a customized version of the ExtPascal library) to create a fully AJAX application, allowing you to build standard and advanced data-manipulating forms in a fraction of the time.

Kitto is aimed at Delphi developers that need to create web application without delving into the intricacies of HTML, CSS, Javascript or learning to use a particular library such as ExtJS, yet it allows access to the bare metal if required.

Kitto includes a database-agnostic data-access layer, allowing to create applications that work on any database engine and port applications between database engines.

A Kitto application is described as a set of easily maintained YAML files, keeping definitions abstract and declarative and allowing for future extensions. Business rules are enforced either declaratively or through small javascript fragments on the client, or in Delphi code on the server.

This is the first version of Kitto, that uses ExtJS 3.2. Discover the new version of Kitto2 with support for ExtJS 6.2.

Kitto Architecture

The structure of a Kitto Application more or less follows the MVC paradigm. From an architecture standpoint, the components in the systems are connected to each other according to the following scheme:

Kitto Architecture

The elements are:

  • The aapplication   __ , that is the Kitto-powered executable, that may include any Delphi libraries you might need and any Delphi-based business logic. To the web server, it behaves as an application server.

  • The web server __ is an instance of Apache  with the FastCGI module installed, and may reside on the same or a different machine (on any supported operating system).

  • The database server  __ accessed through either DBX or ADO - with the option of plugging in any other data access library - and that can run on the same or a different machine (again, on any supported operating system).

  • The web browser __ runs on the client machine and can be Firefox, Google Chrome, Internet Explorer, Safari, Opera... The ExtJS  library is used here to manage the GUI, but you don't need ExtJS or Javascript expertise to create Kitto applications.

Technologies we use

Kitto works with different database servers. The first Kitto applications we have developed work with Firebird , Microsoft SQL Server and any database supported by Microsoft's ADO and Embarcadero's DBExpress or FireDAC technologies. Plus, adding support for a new database type is quite easy in Kitto.

A note for developers: Kitto is made in Delphi (from XE3 version to lastest), for Win32 and Win64.
Currently, a Kitto application runs on Windows (not necessary a Windows Server platform) and uses Apache as the web server. In the future we may release versions that support other web servers such as IIS or other operating systems, depending on demand. You can extend Kitto at the source code level to achieve full customizability, but you should keep in mind that most application development tasks in Kitto do not require Delphi expertise.

Kitto is Open-Source on Git-Hub

We have released the full source code of the Kitto Engine under an Open Source license, plus a customized and enhanced version of ExtPascal. You can find the source code, a couple of full-fledges sample applications and the current documentation for the Open Source Kitto here.

We are constantly in the process of producing documentation and downloadable examples.

If you want to see some live demos, please go to our demo server.


Ethea uses these Technnologies