Попробуйте Чатиум прямо сейчас

🔥 500 бонусных рублей ежемесячно
🔥 ИИ-разработка и серверные функции без ограничений
🔥 Хранение файлов до 5 ГБ
🔥 На поддомене chatium.ru
Подпишись
Блог
website icon
Youtube
website icon
Telegram

Документация для разработчиков

Чатиум - это облачная платформа для создания бизнес-приложений. На ней вы можете либо собрать свое решение из готовых модулей, либо дописать то, чего не хватает именно вам.

Основные модули описаны на главной странице, а в этой документации мы рассказываем о том, как создавать свой собственный функционал.

Что можно создать в Chatium:

🔸 Веб-приложение.
🔸 Мобильное приложение.
🔸 Бекенд для внешнего сервиса.
🔸 AI-агента.

Попробуйте Чатиум прямо сейчас

🔥 500 бонусных рублей ежемесячно
🔥 ИИ-разработка и серверные функции без ограничений
🔥 Хранение файлов до 5 ГБ
🔥 На поддомене chatium.ru
Создавайте сайты и full-stack приложения по текстовому вводу за минуты!

Язык разработки

Приложения в Чатиуме пишутся на языке TypeScript, с помощью редактора VSCode или web-ide.

С чего начать

Сначала стоит создать аккаунт и освоиться в среде разработки (5 минут). После этого, мы подготовили вводные инструкции для быстрого старта: Создаем каталог товаров с формой заказа.

Проще всего разбираться на примерах, поэтому мы подготовили раздел с готовыми примерами кода, которые можно открыть в песочнице и скопировать одним кликом.

Также стоит воспользоваться поиском по документации или умным ботом в правом нижнем углу страницы (или в телеграме)

Аккаунт

Аккаунт Chatium — это место в котором хранятся код и данные вашего проекта. Каждый аккаунт это по сути сайт, со своим доменом. Данные аккаунтов не пересекаются между собой.

Модули подключаются в аккаунт. Сотрудники и пользователи — это также данные аккаунта, каждый пользователь имеет одну из 5 ролей

Хостинг

Вам не нужно думать о том, как запускать проект, где хранить код, таблицы, картинки и видео. Чатиум делает это за вас. Каждый аккаунт предоставляет файловую систему, в которой вы можете разместить свои файлы и папки.
Файлы сразу доступны и, либо отдаются пользователю «как есть» (это файлы с расширениями .html/.css/.js):
// file.html
<html>
  <title>Этот файл отдастся "как есть"</title>
  <body>
    Такой способ можно использовать для верстки лендингов
  </body>
</html>
Либо исполняются на сервере и выдают свой результат исполнения:
// serverfile.tsx
app.html('/', (ctx,req) => {
  let record = await table.findOneBy(ctx, {})
  return <html>
    <h1>{record.title}</h1>
    <div>{record.description}</div>
    <p>
      Такой способ можно использовать для динамических приложений
    </p>
  </html>
})

Плагины

Основная сила Chatium — это модульная архитектура. Когда вы разрабатываете веб-сервис или мобильное приложение, 80% задач это общие задачи, такие как: обработка заказов, оплаты, постановка задач, автоматизация бизнес-процессов, рассылки, которые доступны с помощью встроенных модулей.

Любой разработчик в Чатиуме может создать собственный плагин и опубликовать его в общем каталоге для продажи другим людям. Другие компании могут подключать его в свои аккаунты, заплатив указанную разработчиком сумму (разово или по подписке).

Мобильная разработка

Чатиум дает очень простой способ создавать нативные мобильные приложения с помощью серверного кода. Создание мобильных приложений построено по принципу Server Driven UI — сервер на каждый запрос пользователя отдает экран приложения вместе с версткой в специальном JSON-формате.
app.screen('/', () => {
  return (
    <screen title="Hello world!">
      <text class="section">First screen</text>
    </screen>
  )
})
Вы пишете код на сервере, отдающий экран, а мобильное приложение отрисовывает интерфейс пользователя. За счет того, что мобильные приложения разрабатываются в той-же среде и в том-же коде что и сайт - получается связанная архитектура, которую очень легко поддерживать и изменять.

Попробуйте Чатиум прямо сейчас

🔥 500 бонусных рублей ежемесячно
🔥 ИИ-разработка и серверные функции без ограничений
🔥 Хранение файлов до 5 ГБ
🔥 На поддомене chatium.ru
Создавайте сайты и full-stack приложения по текстовому вводу за минуты!

Авторизация

Каждый запрос к серверу выполняется от какого-то пользователя, а внутри кода есть удобное API для получения актуальных данных пользователя. За счет этого можно легко оградить некоторые экраны требованием авторизации, а некоторые — требованием конкретной роли пользователя.
import {requireRealUser, requireAccountRole} from '@app/auth'

app.screen('/', () => {
  requireRealUser(ctx)
  return (
    <screen title="Личный кабинет">
      <text class="section">
        Этот экран запросит авторизацию
      </text>
    </screen>
  )
})

app.screen('/admin', () => {
  requireAccountRole(ctx, 'Admin')
  return (
    <screen title="Админка">
      <text class="section">
        Экран доступен только администраторам
      </text>
    </screen>
  )
})
Чатиум поддерживает разные способы авторизации (по умолчанию работают такие способы как EMail и SMS), в каждом аккаунте можно выбрать «какими способами будет авторизовываться пользователь», а если способ отсутствует — можно дописать свой.

Хуки

Хуки — это куски кода которые вы можете вставить в уже готовые модули. К примеру, можно сделать редизайн модуля с помощью вставки своей верстки, либо-же добавить в карточку пользователя нужные вам блоки.
// Хук, показывающий страницу с несуществующим адресом
app.accountHook('404', (ctx,params) => {
  return ctx.resp.html('<h2>Такого адреса не существует</h2>')
})

Внутренняя база данных

Большинство веб-сервисов требуют сохранения данных. В Чатиуме доступна база данных Heap, с помощью которой вы можете объявить таблицу прямо в коде и тут-же ее использовать — работая с записями в таблице как с типизированными объектами (используя всю мощь типизации Typescript):
import {Heap} from '@app/heap'
import {jsx} from '@app/html-jsx'

// Объявляем таблицу с двумя полями - name и age
const myTable = Heap.Table('students', {
  name: Heap.String(),
  age: Heap.Optional(Heap.Number()),
})

// Выводим ее записи на экран
app.get('/', async(ctx,req) => {
  let records = myTable.findAll(ctx)
  return <html>
    <table>
      {records.map( record => {
        return <tr>
          <td>{record.name}</td>
          <td>{record.age}</td>
        </tr>
      })}
    </table>
  </html>
})

Файловый сервис

Самая частая задача, которую приходится решать когда делаешь свой веб-сервис — это хранение и обработке медиа-файлов (картинок, архивов и видео). Чатиум дает внутреннее API, которое позволяет не думать о технической стороной этой задачи. На физическом уровне поддерживается трехкратное резервирование файлов, CDN, преобразование размеров картинок и потоковая выдача видео.

Отложенные действия

Некоторый код не нужно запускать сразу, а нужно отложить задачу и выполнить ее через некоторое время. Также, бывает код который выполняется долго и должен выполниться в фоне.
import { scheduleJobAfter } from '@app/jobs'
import {showToast} from '@app/ui'

app.screen('/', async(ctx,req) => {
  <screen>
    <button onClick={setAction.apiCall({})}>
      Напомнить через полчаса
    </button>
  </screen>
})

const setAction = app.apiCall('set-alarm', () => {
  await scheduleJobAfter(ctx, 30, 'min', alarmJob.path(), {})
  return showToast('Задача поставлена')
})

const alarmJob = app.job('run-alarm', () => {
  // здесь код, который вызовется в нужное время
})

Попробуйте Чатиум прямо сейчас

🔥 500 бонусных рублей ежемесячно
🔥 ИИ-разработка и серверные функции без ограничений
🔥 Хранение файлов до 5 ГБ
🔥 На поддомене chatium.ru
Создавайте сайты и full-stack приложения по текстовому вводу за минуты!
Made on
Tilda