Пакет — единица разработки и поставки: в нём вместе лежат классы, формы, роли, сервисы и приложения одной предметной области. Пакеты создаются, проверяются, экспортируются и импортируются, активируются и деактивируются в разделе Packages.
В основе приложения — объектная модель: классы и их свойства. Сразу после описания класса платформа создаёт таблицу в базе данных, REST и WebSocket API, подписки на изменения в реальном времени и обёртки для TypeScript.
Логика записи настраивается в редакторе класса: вычислимые поля по выражениям, действия с параметрами, проверка значений и значения по умолчанию.
Для каждого класса платформа генерирует таблицу и карточку. Разработчик раскладывает поля по колонкам, группам и вкладкам, задаёт зависимости и динамику — без кода.
Приложение — это меню (toolbox) и набор контролов. Пользователь видит на рабочем столе те приложения, которые доступны его ролям.
Роли определяют, какие приложения, классы и поля доступны пользователю, кто может читать, а кто изменять данные.
Сервис обрабатывает данные без участия пользователя: при активации пакета, по таймеру или по событию — создании, изменении, удалении записей. Работает на сервере приложений или в браузере.
Когда no-code не хватает, логика пишется на TypeScript. Короткие методы переопределяются прямо в редакторах классов, полный исходный код сервисов доступен целиком.
Для связи с внешними системами в платформе есть готовые средства — запросы, параметры и API.
Приложение связано с коммуникационным слоем той же платформы: звонки, записи разговоров и сценарии доступны без интеграций.
Отчёты строятся на данных классов, SQL-запросах или методах сервисов; документы создаются по шаблонам.
Пакет переносится между средами — от разработки до промышленной — вместе со своими данными и переводами; поведение сервисов видно в логах.