Blog
Thoughts, tutorials and notes about development
Формы как state manager: фильтры, URL-синхронизация, панели настроек
Форма — это не только «заполни и отправь». Form без onSubmit как state container для фильтров и настроек. Form.Subscribe, Form.UrlSync, useFormRef и useActiveFiltersCount.
May 22, 2026
67% пользователей бросают форму. Как найти, где именно
Один хук useFormAnalytics включает field-level трекинг: focus, blur, ошибки, corrections, abandon и completion rate. 5 готовых адаптеров — данные на ваших серверах.
May 21, 2026
2 года, 50+ компонентов: как мы опенсорсили form-библиотеку
За 2 года от 50-строчного wrapper до 50+ field-компонентов, ZenStack плагина, MCP-сервера и offline-поддержки в 10+ продакшн-приложениях. История опенсорс-релиза.
May 20, 2026
MCP: как научить AI генерировать production-ready формы
MCP-сервер @letar/form-mcp даёт AI полный контекст о 50+ полях, паттернах и директивах — одна строка конфига. 6 инструментов: list_fields, get_field_props, generate_form и другие.
May 19, 2026
i18n в React-формах: русские падежи, RTL и 120 переводов
i18n ключи в Zod .meta() + глобальный z.config({ customError }) дают полную локализацию форм без изменения компонентов. Русские plural forms через ICU Message Format.
May 18, 2026
Offline-first формы: как не потерять данные при обрыве связи
Один проп offline включает сохранение в IndexedDB и автосинхронизацию с retry. Три независимых механизма: persistence, offline и useFormAutosave.
May 17, 2026
От БД до UI за 5 минут: ZenStack → Zod → React-форма
@form.* директивы в schema.zmodel позволяют описать UI-метаданные прямо в модели БД. Pipeline: schema.zmodel → zenstack:generate → Zod-схемы → Form.FromSchema — полный CRUD за 10 минут.
May 16, 2026
FromSchema: генерируем React-форму из одной строки Zod-схемы
Form.FromSchema генерирует полную форму автоматически. Четыре уровня контроля: FromTemplate → FromSchema → AutoFields → Field.* — начинаешь с автогенерации, детализируешь по мере необходимости.
May 15, 2026
Вложенные формы в React: массивы, drag & drop и когда использовать таблицы
Form.Group для вложенных объектов, Form.Group.List для динамических массивов с drag & drop. Когда переключаться на TableEditor вместо Group.List.
May 14, 2026
Мультистеп формы в React: пошаговая валидация, условные шаги и анимации
Form.Steps разбивает длинную форму на шаги с анимацией и прогрессом. Form.When показывает/скрывает поля и целые шаги по условию.
May 13, 2026
50+ готовых полей для React-форм: от String до CreditCard
Обзор всех 50+ field-компонентов по категориям: текстовые, числовые, дата/время, выбор, специальные, опросные, табличные, платёжные и документы РФ.
May 12, 2026
От первой формы до архитектуры: Compound Components, Context и createForm()
Compound Components дают полный контроль над вёрсткой при типобезопасности TypeScript. Разбираем Object.assign, Context API и createForm() с lazy-loading.
May 11, 2026
Zod .meta() — одна схема для валидации, UI и доступности
В классическом подходе одно поле описано в 2-3 местах. Zod v4 .meta() позволяет хранить label, placeholder и helperText прямо в схеме. Результат: 80 строк JSX → 8.
May 10, 2026
Формы в React: 2 поля = 48 строк. Почему в 2026 это всё ещё боль?
Логин-форма на vanilla React — 48 строк, на @letar/forms — 8. Разбираем 9 повторяющихся проблем с формами, которые ни одна из 5 популярных библиотек не решает полностью.
May 9, 2026
@letar/forms за 5 минут
Установка → схема → 5 строк JSX → работающая форма с валидацией, accessibility и TypeScript. Быстрый старт без философии — только код.
May 8, 2026
AI Dialogues
16
Conversations with AI, formatted as posts — separate from articles