Totum — база данных в которой можно создать корпоративное приложение со сложной логикой. Разработана для непрограммистов, т.е. для тех, кто не является профессиональным разработчиком, но имеет потребность в разработке собственной автоматизации. Это своеобразный гибрид базы данных и электронных таблиц с возможностью программировать логику короткими кодами на специальном простом языке. Наиболее эффективно подходит для внутренних разработок в небольших компаниях, где Totum позволяет сократить затраты на разработку и поддержку решения до величины медианной зарплаты одного тестировщика или половины от нее (зависит от сложности проекта).
Создатель системы определяет логику системы, то есть, по сути, создает качественно подготовленные тех задание: какие блоки должны быть, какие данные в каждом из них, как они взаимосвязаны, что куда будет передаваться, что выводиться в отчеты и т.д., которые соединяются небольшими ситуативными кодами и получается конечное решение. Код может писать AI по запросу разработчика, но его можно понять, даже не будучи профессиональным программистом, что важно для систем, которые считают деньги/материальные ресурсы/жизни. Разработать систему на Totum и раньше было не сложно, а с внедрением AI становится совсем просто и быстро.
Проект не вчера появился, вот пара статей про него ранее здесь и здесь (тут про то, как делали синтаксис).
Пользователи уже успели насоздавать разнообразных систем для своего бизнеса. Ранее платформа была полностью бесплатной, но без внешнего грантового финансирования так, конечно, долго продолжаться не могло и сейчас есть две части:
Open Source MIT — для тестов, маленьких проектов, НКО, пет-проектов и т.п. По-прежнему очень функциональная версия, где-то на уровне наших первых коммерческих проектов и даже лучше.
PRO — тот проект, который развивается дальше и в котором появляются основные нововведения и улучшения. В нем один админ-пользователь бесплатно, потом лицензии за пользователя в месяц. Какие-то вещи сразу стоят денег, например AI. Стоимость лицензий небольшая, если вы используете продукт для бизнеса. А для частного применения Totum, в целом, бесполезен.
Оба-два варианта – self-hosted, простой установщик, небольшие системные требования, попробовать можно на 1C 1G системе, да и дальнейшая эксплуатация тоже не требует супер-серверов.
Справочный вид системы:

Есть еще спецвиды типа карточек, деревьев и т.п.:


Общая техническая информация
Под капотом PHP и GO (в PRO-версии) и PostgreSQL. Почему только постгрес — вкратце, мы используем некоторые из его возможностей для обеспечения гибкости разработки и для автоматического отлова ситуаций, которые могут много крови попить для начинающего разработчика (а так он и не узнает, что они могут быть). Плюс PostgreSQL может без проблем горизонтально размножаться под большую нагрузку, и мы внутри платформы запросы сделали таким образом, чтобы это было возможно из коробки. Все это без промежуточных фреймворков, без ORM (система сама-себе ORM), весьма компактно и быстро и со следующей большой версией станет еще быстрее.
Внутри вы не столкнетесь ни с PHP, ни с SQL — на вычисления, действия, форматирования там специальный, единообразный синтаксис.
Вычисление значения:
=: listSum(list: $list) + #fixed_costs
list: selectList(table: 'orders'; field: 'cost'; where: 'number' = $listNumbers)
listNumbers: selectList(table: 'orders'; field: 'number'; where: 'date' >= #first_day_months; where: 'orderStatus' = #final_status)
Действия:
a1=: set(table: 'table'; field: 'field_1' = "value_1"; field: 'field_2' = "value_2"; where: 'condition_field' = #condition)
a2=: recalculate(table: 'summary')
Форматирование:
f1=: setFormat(condition: #status = 3; block: true)
f2=: setFormat(condition: $#nu = 10; block: false)
f3=: setFormat(condition: $calc > 10; background: "tomato"; color: "white")
calc: listCount(list: $list)
list: selectList(table: $#ntn; field: 'id')
Естественно, система подсказывает автозаполнение, подсвечивает ошибки. В общем: встроенный несложный IDE.
Коды при этом применены к ячейкам в таблицах и функционируют в них изолировано. Получаются короткие, ситуативные коды — что сильно упрощает жизнь непрофессионалам. При этом, с помощью таких кодов можно обеспечить логическую взаимосвязь и обмен данными как между ячейками внутри таблицы, так и между ячейками в любых таблицах решения. Так что возможно создание решений большой сложности, а также безболезненное добавление или модифицирование блоков уже готового решения.
Система by design обеспечивает многопользовательское функционирование и спираль сложности — если вам нужно быстро, сможете сделать быстро, стало нужно еще и оптимально, сможете сделать оптимально.
Есть еще много чего: и файлы, и внешние формы, и вызов сторонних серверов и LDAP с 2FA. Про это все лучше всего расскажет сайт проекта, live demo, MIT-версия и т.п.
И как этот ваш замечательный синтаксис выучить?
И раньше-то было несложно — подробная документация, учебный курс с видео.
А теперь можно еще в 10 раз быстрее, так как мы научили ChatGPT писать коды на Totum.
Ну и в общем, GPT теперь может рассказывать про то, как работает система. Как мы это сделали? Взяли документацию (реально очень подробную, кстати), кучу топиков с нашего форума на GitHub (который продолжает функционировать и дальше), учебный курс (тоже очень подробный и с видео) и подготовили ~12К примеров, которые отправили в fine tuning GPT 4o. Не с первого раза, но получилось, плюс некоторое допиливание напильником и сейчас ответы нейросети выглядят как-то так:

Когда-то для этой задачи использовался мой телеграм, но ChatGPT лучше — отвечает сразу и терпения у него больше.
Да, иногда он отвечает чушь, но с каждой последующей итерацией обучения ситуация улучшается в разы — нам нужно набрать множество вариантов того, как конкретно реальные пользователи спрашивают информацию, что бы подготовить следующие 12К примеров. Я думаю, что на уровне 40К примеров — чат будет знать про систему больше, чем я, как ее главный инженер. Это будет в течение ближайшего полугодия. Даже сейчас, я иногда ленюсь отвечать на форуме, перекидываю вопрос чату и просто копирую его ответ обратно :)
Если что-то там AI наотвечал вам странного, то есть форум, там уже человеческий AI подумает над вашим вопросом, но с условием, что вы спрашиваете чуть более развернуто чем «у меня там огонек...». Если же вопрос на форуме появляется до попытки спросить у AI, то мы вас попросим всё-таки сначала попробовать получить ответ у него.
Если у вас безлимитная лицензия — живой человек ответит в telegram.
AI работает не только на стирание порога входа, но и на ускорение разработки системы. Так как по-честному, в реальных проектах, которые люди делают на Totum, нет высшей математики. В основном там: сложить, умножить, поделить, записать куда-то результаты и отправить уведомление, если наступили граничные условия. C AI это становится прям намного быстрее разрабатывать. Коды короткие и ситуативные, синтаксис простой — лучшие условия для применения GPT.
Чуть позже AI-помощник сможет оперировать всей кодовой базой создаваемого вами проекта (с вашего разрешения, нужно будет поставить соответствующую галочку), обрабатывать файлы, будет иметь встроенный diff и инструменты работы с json (так как json'а в totum много), создавать не только коды, но и поля с таблицами (тоже с вашего разрешения). Естественно, будет это только в PRO-версии и в платной ее части.
Про бизнес
В первую очередь мы ориентируемся на тех, кто будет разрабатывать самостоятельно. То есть, если вы знаете все про свой бизнес и у вас есть технический бэкграунд — садитесь сами и через месяц у вас будет версия, которую можно запускать в производство. Или нанимаете выпускника курсов программирования и через два месяца у вас будет первая версия, которую можно запускать в производство. Понятно, что месяц-два, это самая первая часть вашего проекта и дальше вы расширяете функционал, так как решения достаточно просто надстраиваются.
Конечно, у вас должно быть хоть какое-то представление о том, как вы хотите, чтобы информация циркулировала внутри системы. Успешные проекты на Totum не появлялись из ниоткуда, обычно это эволюция из вороха файлов excel или из MS Access, т.е. когда уже что-то работает, но надо добавить масштабирование, права доступа, автоматическую обработку и взаимодейсвие с другими сервисами.
Если же совсем с нуля или у вас представление о системах управления, как о большом сияющем магическом шаре — скорее всего не сработает. Начните с google docs, чтобы наработать понимание конкретики. Главное, чтобы у вас было представление о логических взаимосвязях вашей будущей системе, а также о том, какие данные есть на входе, что вы будете учитывать и на какие показателе смотреть в итоге.

Существует также минимальная граница полезности по количеству пользователей. Среднее количество пользователей в эксплуатирующейся системе (на основе ~100 проектов, по которым у нас есть информация) — около 30 пользователей. Всего аналитика показывает ~170 эксплуатирующихся проектов, но мы не про все знаем детали. Мне представляется, что минимальная граница полезности — это 12-15 пользователей. Если планируется меньше, подумайте, не переусложняете ли вы.
Для систем с малым количеством пользователей получается просто дорого. Даже не по стоимости лицензии, лицензия на систему меньше десяти пользователей бесплатная, а по времени и усилиям, затрачиваемым на разработку решения в сравнении с получаемым от нее КПД. Содержание такого рода системы, что на 15, что на 80 пользователей, по нашим прикидкам, это стабильные 60-90 т.р./мес. большая часть из которых — это затраты на разработку, и остальное по мелочи: железо, лицензии, поддержка, доработки итп. Т.е где-то по 1-1.5 т.р. на пользователя в месяц. Небольшое количество пользователей может быть оправдано —если вы разрабатываете сами и ваше время бесплатно.
Если вы занимаетесь разработкой сайтов и докруткой Битрикса, тоже можете посмотреть в направлении разработки таких решений на заказ для ваших клиентов (среди них наверняка есть запрос на кастомные системы учета). Мы видим спрос в вилке 400-1200 т.р. за проект и если у вас есть клиент, с которым вы уже работали по сайту, например, и вам комфортно, то можно браться за разработку такого рода системы.
Если вы тот самый клиент, и хотите законтрактовать кого-то, вам нужно упрощаться и наращивать конкретику. Даже если это будет полностью внутренняя разработка, вам как заказчику надо понимать, что на что будет делиться и умножаться и делать это непротиворечиво и понимать зачем это вам глобально. По опыту, есть множество проектов, где из всего сделанного эксплуатируется процентов 40-60, хотя в процессе все требования были самыми нужными. Поэтому надо заранее подумать, что реально нужно автоматизировать. Например, если у вас уже есть CRM-система и вам нужна производственная часть — не надо стремиться переписать CRM-часть с нуля в рамках одной системы, пусть она останется там, где была — делайте на Totum то, чего в ней нет.
Напоминаю, что самый лучший вариант разработки, это самостоятельно. Или через найм выпускника курсов программирования full-time на проект, который он потом и будет неспеша обслуживать. Для него при этом будет хороший опыт наработки комплексного понимания разработки проектов. Есь еще фрилансеры-партнеры, но их немного.
Какие проекты делают пользователи
Множество различных вариантов производственных систем
В мебельном производстве (несколько различных проектов, как производственная система)
Металлообработка (как производственная система)
Пищевое производство (несколько разных проектов)
Приборостроительное производство (как система взаимодействия с дилерами)
Большая производственная компания (для задач сбора данных)
Как платформа для проекта учета крипто платежей (несколько проектов)
Учет лизинга автотранспорта и аренды (несколько проектов)
Строительство (как система ведения сделок и взаимодействия)
Поставки и производство медоборудования (учет сделок и производства)
В фармакологии (как система учета исследований)
Как система учета производственной документации (несколько проектов)
Различные НКО (несколько проектов)
Холдинг энергетических компаний (как система учета задач и документации, несколько проектов)
Веб студия (для задач финансового учета)
Нефтесервисная компания (для задач финансового учета)

Подойдет ли под нашу задачу
Самый лучший способ понять, подходит вам Totum или нет — установить и попробовать реализовать небольшую часть своей задумки. Пары-тройки вечеров будет достаточно, чтобы сориентироваться.
Если вы можете представить, каким образом ваши данные упаковываются в табличку — то, скорее всего, ответ «Да». Конечно, у любой платформы есть ограничения и любые безудержные пожелания реализовать не всегда получится, особенно по части дизайна. Totum построен на идее параметрического дизайна, то есть, поля не ставятся мышкой в любое место, а цепляются друг за другом в зависимые последовательности, которыми вы можете управлять через настройки и коды форматирования, но только в определенных рамках.
То же самое касается дизайна всей системы в общем. Если у вас появилось желание полностью переделать дизайн — скорее всего вам нужно выбрать другой проект как платформу. Исторически так сложилось, что ни один проект по тотальной переделке дизайна Totum не смог успешно завершиться — эта задача существенно больше, чем кажется на первый взгляд, да и мы, при обновлениях, не учитываем, что там могут быть какие-то кастомные дизайны (а обновляется система достаточно часто).
К чему можно приконнектить
К чему угодно, что работает через сеть или консоль сервера. Можно как вызывать сторонние сервера, так и получить доступ внутрь таблиц по http. Можно написать микросервис на totum-коде, который будет отвечать на внешние запросы (самый популярный вариант).
Можно вызвать скрипт на сервере через ssh и получить результаты его работы.
Поддерживаются стандартные кроны и для PRO модуль на GO позволяет запускать задания по расписанию с меньшим чем минута интервалом.
Планы
Планов множество, но так как команда небольшая, нам приходится выбирать, на чем сосредотачиваться. В первую очередь мы, конечно, будем развивать направление AI и блок PRO-версии, связанный с ускорением сетевого взаимодействия — как исходящих, так и входящих запросов так как после внедрения GO-модуля, появилось множество вариантов развития в этом направлении. Также давно просят календарный вид, диаграмму Ганта и SSO. SSO сделаем, а спец виды — не уверен, что быстро.
Заключение
Такая вот универсальная штука для программирования движения данных в нестандартных ситуациях по месту применения.
Желаем вам успешно автоматизировать то, что вы хотите автоматизировать. Если вы попробовали систему и у вас есть вопросы к живому человеку (только в таком порядке) — запишитесь через наш сайт на консультацию.
До встречи.