О проекте
@xlsft/htsx
HTSX — это минималистичный SSR-фреймворк для Deno, построенный вокруг концепции «vanilla HTML прежде всего» и ориентированный на максимально простой DX без виртуального DOM, JSX и тяжёлых абстракций. Название расшифровывается как Hyper Text (on) Server eXtended и отражает основную идею: расширить обычный HTML серверной логикой, файловой маршрутизацией и встроенной поддержкой REST API, сохранив при этом предельно прозрачную архитектуру. HTSX работает поверх Oak и использует его Application и Router, при этом сам берёт на себя автоматическую регистрацию маршрутов, обработчиков и компонентов на основе структуры файловой системы.
Фреймворк автоматически обрабатывает HTTP-запросы, поддерживает filesystem-based routing, минификацию HTML на уровне эндпоинтов, серверные компоненты и чистые HTML-компоненты без промежуточных шаблонизаторов. Главная точка входа — класс HTSX, которому передаётся корневая директория проекта, экземпляры сервера и дополнительные props, например глобальный payload, доступный во всех представлениях. Корневой файл +root.ts играет роль аналога App-компонента, формируя общий HTML-каркас страницы, куда обязательно подставляется props.body. Для глобальных и локальных стилей используются обычные CSS-файлы рядом с компонентами или маршрутами.
Маршруты формируются по структуре папки routes: серверные представления описываются в файлах +view.ts, клиентская логика подключается через +view.js, а стили — через +view.css. Дополнительно можно экспортировать HEAD для управления <title>, preload, внешними скриптами и метаданными конкретного эндпоинта. Компоненты представляют собой обычные функции, возвращающие HTML-строку, что делает систему максимально прозрачной и совместимой с любыми фронтенд-библиотеками — от React до HTMX — поскольку итогом всегда остаётся чистый HTML.
HTSX также выступает как конструктор REST API: внутри routes можно создавать директории с файлами формата +get.ts, +post.ts и другими поддерживаемыми HTTP-методами, и фреймворк автоматически зарегистрирует соответствующие обработчики. Это позволяет в рамках одного проекта объединить SSR-интерфейс и API без дополнительной конфигурации. Для обработки ошибок предусмотрен специальный +error.ts, который рендерится при статусе, отличном от 200.
Фреймворк был создан как удобное решение для Telegram Mini Apps, где требуется лёгкий серверный рендеринг и простая одностраничная логика без необходимости подключать более тяжёлые решения. Однако область применения шире: HTSX подходит для быстрых админ-панелей, микросервисов с HTML-интерфейсом, прототипов, внутренних инструментов и любых задач, где важны минимализм, контроль над разметкой и отсутствие лишних абстракций.
О проекте:
HTSX — Hyper Text (on) Server eXtended