Hyperflask – Full stack Flask and Htmx framework 🔥 Горячее
Разработчики представили Hyperflask — новый фреймворк для Python, который объединяет множество инструментов в единую экосистему для ускорения разработки веб-приложений. Основная идея в том, чтобы избавить разработчиков от необходимости самостоятельно подбирать и настраивать различные технологии, которые часто требуются в проектах.
Hyperflask включает в себя множество готовых решений: от серверной логики на Flask до фронтенд-компонентов, маршрутизации, работы с формами и данными, а также инструментов для развертывания. Все компоненты тщательно подобраны для бесшовной совместной работы. Например, вместо самостоятельной настройки Flask с десятками расширений, разработчики получают единую среду, где всё "просто работает".
Ключевые возможности включают:
- Единая структура проекта: стандартизированная организация кода, что ускоряет onboarding новых разработчиков и упрощает поддержку.
- Готовые решения для типовых задач: аутентификация, отправка email, обработка файлов, фоновые задачи — всё доступно "из коробки".
- Гибридный рендеринг: статические страницы генерируются на сервере для скорости, но при необходимости могут динамически обновляться через HTMX.
- Оптимизация под SEO: серверный рендеринг гарантирует, что контент индексируется поисковыми системами.
Разработчики подчеркивают, что Hyperflask не просто набор инструментов, а целостная экосистема, где все части глубоко интегрированы. Это позволяет избежать типичных проблем, когда отдельные библиотеки, будучи собранными вручную, конфликтуют друг с другом.
Проект пока находится в стадии бета-тестирования, но уже доступен для использования. Основная команда состоит из разработчиков, ранее стоявших за популярными проектами в экосистеме Python, что говорит о серьезности намерений.
Для сообщества это может быть значимым, поскольку экосистема Python долгое время не имела полноценного аналога популярным JavaScript-фреймворкам вроде Next.js. Hyperflask, хоть и молодой проект, показывает важный шаг в этом направлении.
Комментарии (131)
- Обсуждение в основном вращается вокруг сравнения Flask/HTMX-стека с альтернативами (FastAPI, Django, Litestar, FastHTML), где критика касается производительности, архитектуры и "state of the art" в 2025 году.
- Участники спорят о целесообразности смешивания шаблонов и логики в одном файле, о том, насколько это упрощает или усложняет разработку, и о том, как это сказывается на тестируемости и сопровождении кода.
- Ряд комментаторов поднимает вопрос о том, что выбор Flask в 2025 году может быть устарел, особенно если учесть отсутствие встроенной поддержки async/await, и сравнивает его с FastAPI или Litestar.
- Некоторые участники высказывают мнение, что вместо того, чтобы изобретать еще один каркас, было бы лучше взять существующий и внедрить в него улучшенную документацию, инструменты и лучшие практики.
The <output> Tag 🔥 Горячее 💬 Длинная дискуссия
HTML-тег <output> почти не используют, но он решает две задачи: делает результат вычислений доступным для скринридеров и избавляет от необходимости вручную подключать ARIA live-регионы. Пример: калькулятор, слайдеры, индикаторы сложности пароля. Тег работает без JavaScript и ARIA-атрибутов, поддерживается всеми браузерами и скринридерами.
Комментарии (174)
<output>оказался почти неиспользуемым тегом, и его поддержка в браузерах и скринридерах фрагментарна, что делает его практически бесполезным.- Попытки использовать
<output>для отображения результатов вычислений сталкиваются с тем, что большинство фронтенд-разработчиков не знают о существовании тега, а спецификация вводит в заблуждение, что тег сам обновляет свое содержимое. - Практика показывает, что вместо
<output>используются другие теги, и это вызывает вопрос, почему вообще нужен этот тег, если он не работает как задумано. - Поднимается вопрос о том, что если тег не работает как задумано, то возможно стоит пересмотреть спецификацию или полностью отказаться от тега в пользу более надежных решений.
I Switched from Htmx to Datastar 🔥 Горячее 💬 Длинная дискуссия
Автор перешёл с HTMX на Datastar, потому что последний убирает две проблемы: размер кода и сложность синхронизации фронтенда с бэкендом. Он показывает, что на практике это сокращает код на 60-70% и убирает необходимость вручную управлять состоянием на клиенте. Datastar заставляет сервер описывать, какие элементы и как должны обновляться, и это упрощает логику. Пример: вместо 3-4 атрибутов HTMX достаточно одного data-on-click. Это также убирает необходимость вручную следить за событиеми и состоянием, потому что вся логика находится в одном месте.
Комментарии (207)
- Обсуждение в основном вращается вокруг сравнения Datastar и HTMX, где участники делятся опытом, спорят о том, какие фичи действительно нужны, и обсуждают, какие из фреймворков лучше подходят для разных сценариев использования.
- Несколько участников подчеркивают, что Datastar требует оплаты за ряд базовых функций, что вызывает сомнения в ценности продукта для open-source сообщества.
- Некоторые комментаторы высказывают, что Datastar и HTMX имеют разные подходы к обновлению контента: Datastar использует Server-Sent Events, в то время как HTMX использует обычные HTTP-запросы.
- Участники обсуждают, что Datastar требует больше кода на стороне сервера, в то время как HTMX позволяет легко обновлять различные части страницы без дополнительного кода.
- Некоторые комментаторы высказывают, что Datastar и HTMX имеют разные подходы к обновлению контента: Datastar использует Server-Sent Events, в то время как HTMX использует обычные HTTP-запросы.
OpenAI ChatKit
OpenAI выпустила chatkit-js — JavaScript-библиотеку для создания чат-интерфейсов с поддержкой их моделей ИИ. Она упрощает интеграцию чат-функциональности в веб-приложения, предоставляя готовые компоненты и API для управления диалогами, историей сообщений и реальным взаимодействием с пользователем.
Библиотека включает обработку потоковых ответов, управление состоянием чата и настройку интерфейса. Это ускоряет разработку чат-приложений, снижая необходимость в ручной реализации сложной логики. Практический вывод: инструмент полезен для быстрого прототипирования и продакшн-решений на базе OpenAI.
Комментарии (31)
- Критика заявленной "независимости от фреймворков" при поддержке только React и отсутствии интеграции с бэкенд-фреймворками
- Опасения по поводу привязки к OpenAI (вендор-локин) и отсутствия поддержки других моделей ИИ (например, Claude)
- Отмечается сходство с существующими решениями (CopilotKit, AG-UI) и их недостатки, включая платность и закрытый исходный код
- Предложения по интеграции ИИ через тегирование в существующие интерфейсы (как в Figma или Google Docs), а не через отдельный чат
- Обсуждение бизнес-модели и необходимости функции "Bring your own subscription" для применения собственных квот и API-ключей
How functional programming shaped and twisted front end development
Функциональное программирование принесло во фронтенд мощные абстракции: React с компонентами как функциями от состояния, Redux с предсказуемыми редюсерами и TypeScript для типобезопасности. Однако эти принципы — чистота функций, неизменяемость данных и явные побочные эффекты — вступили в конфликт с природой веба, где DOM мутабелен, CSS каскадируется глобально, а пользовательские события асинхронны и хаотичны. Вместо адаптации к платформе разработчики стали строить слои абстракций, фактически объявляя войну встроенным механизмам браузера.
Это привело к парадоксу: инструменты, созданные для упрощения, добавили сложности, переизобретая роутинг, формы и управление состоянием поверх нативных возможностей. Ценой предсказуемости стала потеря гибкости и производительности, заложенной в вебе десятилетиями. Ключевой вопрос — не отвергать FP-принципы, а искать баланс между их строгостью и адаптивностью платформы, которая по своей сути допускает хаос и мутации.
Комментарии (64)
- Критика излишнего усложнения фронтенд-разработки из-за увлечения функциональным программированием и абстракциями в ущерб простоте и нативным возможностям платформы.
- Споры о читаемости и уместности использования методов массивов (map, filter, reduce) вместо классических циклов, а также о качестве кода на CSS.
- Обсуждение проблем управления состоянием и иерархией данных в UI, включая сравнение React с другими подходами и фреймворками.
- Вопросы к эволюции веб-платформы и стандартов, которые не успевают за потребностями разработчиков и популярными решениями из фреймворков.
- Замечания о качестве статьи-первоисточника: построение на спорных утверждениях (straw man) и продвижение авторской технологии (HTMLX).
Altoids by the Fistful
Коллега делится необычным методом повышения продуктивности: он заедает кошачьи экскременты мятными леденцами Altoids, чтобы полностью заглушить вкус. По его словам, это избавило его от долгих подготовок и уборки, радикально изменив рабочий процесс.
Сцена в баре выглядит сюрреалистично — он демонстрирует процесс с театральной точностью, настаивая на эффективности метода. Несмотря на уверенность рассказчика, у собеседника это вызывает лишь отторжение и потерю аппетита, подчеркивая грань между личной эффективностью и общепринятыми нормами.
Комментарии (89)
- Участники высоко оценили стиль и эмоциональную глубину статьи, назвав её катарсисом и прекрасно написанной прозой.
- Многие разработчики, особенно фронтенд, выразили солидарность с чувством разочарования в своей работе и выгорания.
- Поднята тема о парадоксальной трате времени на чтение длинных материалов при высокой часовой ставке, что вызвало дискуссию о ценности подобного опыта.
- Были высказаны критические замечания о ядовитом мировоззрении автора и использовании текстовых шаблонов в программировании.
- Обсуждение включает отсылки к поп-культуре (The Office, Spirograph, OpenAI) и философские размышления о природе труда.
Rules for creating good-looking user interfaces, from a developer 🔥 Горячее 💬 Длинная дискуссия
Разработчик делится простой системой для создания красивых интерфейсов без глубоких знаний дизайна: ключ в фокусе на выравнивании и консистентности, а не на оптимизации каждой мелочи. Он обнаружил, что его старые интерфейсы страдали от мелких несоответствий — например, иконки были не выровнены, а кнопки располагались хаотично, что создавало визуальный шум и ухудшало опыт.
Использование готовых библиотек компонентов, таких как HeroUI, помогает сохранять единообразие. Важно применять их "как есть", без кастомизации, и ограничивать набор стилей, чтобы избежать беспорядка. Такой подход экономит усилия и делает интерфейс целостным, даже если отдельные элементы не идеальны.
Комментарии (162)
- Подчёркивается важность фундаментальных принципов дизайна (таких как гештальт), которые не зависят от технологий, в отличие от фреймворков и паттернов.
- Критикуется подход, ставящий эстетику выше функциональности и удобства использования; акцент делается на юзабилити, логику и чёткую структуру интерфейса.
- Обсуждается ценность глобальной консистентности и использования готовых библиотек компонентов против кастомных, но часто неудачных решений.
- Отмечается, что хороший дизайн начинается с глубокого понимания пользователя, а не просто со следования набору правил или созданию "красивого" интерфейса.
- Упоминаются конкретные ресурсы для обучения (книги вроде "The Design of Everyday Things", "Refactoring UI") и критика их дороговизны или поверхностного применения.
Reshaped is now open source 🔥 Горячее
Reshaped стал полностью открытым
Пять лет назад я создал Reshaped — библиотеку компонентов для React и Figma, чтобы покрыть 80% типовых задач и оставить 20% на кастомизацию. Сделал её платной, чтобы углубленно поддерживать небольшое сообщество.
Два года назад React-пакет стал бесплатным. Сегодня открываю исходники всего:
React и Figma теперь в открытом доступе.
Что дальше:
- Базовая библиотека будет расти; лицензиаты продолжат получать обновления.
- Планирую премиум-компоненты сложной логики поверх ядра.
Прыжок в open-source после 5 лет закрытой разработки — пора отдать сообществу.
Комментарии (43)
- Пользователи хвалят Reshaped за чистый код и бесплатную библиотеку, но жалуются на подвисание вкладок документации и задержки при навигации.
- Автор (blvdmitry) признал проблемы со скоростью сайта: сервер рендерит статику ~500 мс, обещает перевести документацию на статический экспорт.
- Некоторые просят улучшить микро-анимации и accessibility; автор собирает примеры и уже работает над новыми компонентами.
- Библиотека стала полностью бесплатной и open-source после 5 лет продаж; ядро React и Figma останутся бесплатными, премиум-компоненты возможны позже.
- Упоминаются мелкие баги: backspace в автокомплите, ссылка «Getting started» вела в changelog — уже пофикшено или в процессе.
Комментарии (87)
- Пользователи спорят: зачем превращать Markdown в React/Svelte/Vue-компоненты, если можно сразу выдавать HTML.
- Автор отвечает: цель — безопасный runtime-DSL для LLM, чтобы чат-боты могли «рисовать» интерактивные формы без сборки.
- Критика: без сборки не получается оптимизированный код, ломается после нескольких кликов, не масштабируется.
- Некоторые сравнивают проект с MDX и mdwiki, предлагают компилировать на этапе сборки или использовать Web Components.
- Автор признаёт проблемы и анонсирует v2: нативные custom elements + тонкие обёртки под React/Svelte/Vue.
AI doesn't lighten the burden of mastery
Иллюзия мастерства
Claude выдал прекрасные Go-тесты — и бесполезные: все сводились к true == true.
ИИ дарит облик мастерства без труда. Код выглядит правильно, поэтому легко пролистать детали.
Я не ленюсь, просто использую инструмент. Claude пишет Go, SQL, Svelte, знает сигнатуры API — кажется, что boilerplate решён. Но когда я отлаживал фронтенд, понадобилось 40 минут чтения документации, чтобы заметить, что он смешал синтаксис Svelte 4 и 5. Я проглядел, пока не проследил вручную.
ИИ продвинул меня, но не избавил от работы. Настоящее мастерство — это модель в голове и собственное мышление. Убедительный синтаксис ≠ понимание.
Ловушка
Мы, разработчики, стараемся делать хорошо, и именно поэтому опасна эта иллюзия: ИИ заставляет расслабиться и верить, что результат будет отличным без усилий.
Это как фитнес: пропустил день — легко вернуться, пропустил недели — «и так сойдёт». Инструмент хорош, но привычка тускнеет.
Когда целые команды перестают напрягаться, код превращается в пятна Роршаха: знакомые формы без модели. Это организационный распад.
Сначала ИИ облегчает работу, но уже через пару дней видно: он не несёт когнитивную нагрузку. Финальный рывок остаётся за нами, а поднять «положенное» бремя тяжело.
Требуется усилие
Наш ремесленный труд всегда был в чтении кода, построении моделей, отладке.
Мастерство — это умение нести это бремя. Положил его надолго — не захочешь поднимать.
Комментарии (52)
- Опытные разработчики подчеркивают: без контроля и понимания архитектуры AI-помощь превращается в «красивый, но бесполезный» код.
- Многие замечают, что младшие коллеги перестают думать, слепо принимая сгенерированные тесты и решения.
- AI хорош для рутины, но требует «copilot», а не «main pilot»: человек должен оставаться капитаном.
- Сравнение с IKEA-шкафами: большинство проектов станут «фабричными», но сложные и критичные системы всё равно останутся ручной работой.
- Итог: навыки критического мышения и рефакторинга «AI-слякоти» станут новой ценностью.
Debounce
Дебаунс — это техника ограничения частоты вызова функции. В течение заданной задержки все входящие вызовы игнорируются, а выполняется только один — либо первый (leading), либо последний (trailing), в зависимости от настроек. Это помогает оптимизировать производительность и избежать лишних вычислений при частых событиях.
Применение:
- Обработчики ввода: ждать паузы перед запросом автодополнения.
- События прокрутки/изменения размера: запускать вычисления после остановки действий пользователя.
- Клики и сабмиты: предотвращать множественные отправки.
Отличие от троттлинга: троттлинг гарантирует вызовы с фиксированным интервалом, а дебаунс — один вызов после серии событий (или сразу первый, если включен leading).
Ключевые параметры:
- delay: время ожидания.
- leading/trailing: когда вызывать — в начале или в конце паузы.
- maxWait (если предусмотрено): гарантирует вызов, даже если события не прекращаются.
Комментарии (81)
- Обсуждение вращается вокруг корректности термина «debounce» в UI/FE-разработке и аналогии с электронным дебаунсом; часть участников считает аналогию неточной, другие — уместной как метафору, предлагая альтернативы: coalescing, edge detection, latch, request coalescing.
- Предупреждение: дебаунс/троттлинг с async-функциями может вести к неожиданному поведению (например, возврат предыдущего Promise); контраргумент — обычные async всегда возвращают новый Promise, проблемы чаще у мемоизации.
- Практика и инструменты: предлагают использовать AbortController для «debounced fetch», реактивные подходы (RxJS switchMap), а также отмечают, что ResizeObserver и события типа scrollend иногда снимают необходимость дебаунса.
- В бэкенде и других языках: в Java нет стандартной гибкой безопасной реализации дебаунса; в Kotlin помогают примитивы структурированной конкуррентности.
- Примеры применения/антипримеров: авто-сохранение по вводу, предотвращение многократных кликов; спор о поиске «на каждый ввод» как неудачном UX-примере.
- Технические нюансы из электроники: асимметричный дебаунс (быстрый «make», задержанный «break»), гистерезис через разные пороги, ссылки на материалы по контактному дребезгу.
- Метадискуссия: популярность темы в интервью, критика «модных терминов» во фронтенде и обсуждение ценности постов/ссылок.