home.social

#point0 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #point0, aggregated by home.social.

fetched live
  1. Реалтайм на WebSocket со сквозной типизацией: TypeScript, Bun, React, Point0

    Бывает так: есть фулстек проект, и в нём всё хорошо. Откуда-то есть сквозные типы (tRPC, генерация из OpenAPI), есть авторизация, есть основной функционал. А потом вы решаете добавить реалтайм: уведомление о новом посте в ленте, чат между пользователями, интерактивную доску. И появляется целый новый слой абстракций, в котором надо заново изобрести всё, что в проекте уже есть, только на новый лад. И дальше поддерживать две разные системы. В своём фреймворке Point0 я добавил четыре новых реалтайм-поинта (структурные единицы наравне со страницами, лэйаутами, квери, мутациями): канал, спейс, клиентский хэндлер, серверный хэндлер. На них собирается практически любая реалтайм-функциональность, кода получается мало, и читается он интуитивно. Эти поинты несут те же свойства, что и все остальные: код сервера и клиента живут в одном файле, компилятор вырезает клиентский код из серверной сборки, а серверный из клиентской типизация сквозная и выводится из дженериков самого фреймворка, без генерации типов Под катом покажу на примерах, как это работает, и объясню суть парадигмы, чтобы вы могли собрать любое реалтайм-приложение.

    habr.com/ru/articles/1069716/

    #react #typescript #nodejs #point0 #bun #websocket #webdevelopment #realtime #fullstack

  2. Point0 — простой, как tRPC, полноценный фулстек-фреймворк

    Хочу сравнить фреймворк Point0 и библиотеку tRPC. Делаю это, потому что квери и мутации в Point0 очень похожи по DX на tRPC, но более удобны ввиду того, что всё же Point0 это фреймворк и он может обладать возможностями, которыми библиотека не может: Объявлять квери вместе с серверным кодом прямо в клиентских файлах, или наоборот Автоматически гидрировать и дегидрировать квери клиент при включении SSR В мутациях отправлять файлы автоматически превращая данные в FormData и обратно Иметь стабильные индивидуальные урлы для квери и мутаций Не заставлять зависать редактор кода при увеличении количества эндпоинтов Возвращать в ответах с сервера на клиент целые серверные компоненты или интерактивные острова Управлять внешним видом состояний загрузки на страницах и в компонентах Кроме того, что описано в этой статье, Point0 может много чего ещё, но об этом в других статьях. Сейчас фокусируемся на сравнении с tRPC. Предполагается, что вы с tRPC более менее знакомы, но ниже я всё равно буду показывать примеры реализации на tRPC, чтобы сравнения были видимыми.

    habr.com/ru/articles/1059310/

    #Point0 #tRPC #react #typescript #bun #framework #webdevelopment #api

  3. Point0 — фулстек TypeScript-фреймворк на Bun и React, о котором я мечтал

    Хочу анонсировать свой фреймворк Point0. Это первый Bun FullStack фреймворк сопоставимый по функционалу с Next.js и TanStack Start. Однако, имеет кардинально другой DX, ради которого и был создан. Мне всегда не нравились существующие фреймворки, особенно Next.js и Remix (React Router). Но я думал, что, видимо, по-другому фреймворки просто не получаются, поэтому и не делают. А громоздкость, чужие строгие соглашения, неповоротливость архитектуры, это просто необходимое зло, с которым я должен смириться. В какой-то момент во мне накопилось критическое ощущение, что всё же должно быть совершенно по-другому. И я подумал, а напишу-ка я псевдокод на воображаемом фреймворке, который бы меня устраивал, вообще не взирая на возможность реализации. Просто буду писать проект, будто бы идеальный фреймворк существует. И получилось так здорово, что я просто забыл обо всём на свете и 10 месяцев пилил реализацию этого фреймворка, а 3 месяца назад даже уволился с работы, чтобы уже скорее его добить. И вот добил, и хочу поделиться с вами.

    habr.com/ru/articles/1054310/

    #react #typescript #fullstack #webdevelopment #bun #framework #Point0