home.social

#zod — Public Fediverse posts

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

  1. At our Thursday 28th May #FrontEndSheff meetup:

    🕶️ Thomas Baker introduces us to Sass - that's Syntactically *Awesome* Style Sheets and makes the case against just using 'vanilla' #CSS
    🛍️ David Warrington from #Shopify declares that #TypeScript isn't enough… not without the #Zod validation library

    🎟️ Available now: meetup.com/front-end-sheffield

  2. At our Thursday 28th May #FrontEndSheff meetup:

    🕶️ Thomas Baker introduces us to Sass - that's Syntactically *Awesome* Style Sheets and makes the case against just using 'vanilla' #CSS
    🛍️ David Warrington from #Shopify declares that #TypeScript isn't enough… not without the #Zod validation library

    🎟️ Available now: meetup.com/front-end-sheffield

  3. At our Thursday 28th May #FrontEndSheff meetup:

    🕶️ Thomas Baker introduces us to Sass - that's Syntactically *Awesome* Style Sheets and makes the case against just using 'vanilla' #CSS
    🛍️ David Warrington from #Shopify declares that #TypeScript isn't enough… not without the #Zod validation library

    🎟️ Available now: meetup.com/front-end-sheffield

  4. At our Thursday 28th May #FrontEndSheff meetup:

    🕶️ Thomas Baker introduces us to Sass - that's Syntactically *Awesome* Style Sheets and makes the case against just using 'vanilla' #CSS
    🛍️ David Warrington from #Shopify declares that #TypeScript isn't enough… not without the #Zod validation library

    🎟️ Available now: meetup.com/front-end-sheffield

  5. At our Thursday 28th May #FrontEndSheff meetup:

    🕶️ Thomas Baker introduces us to Sass - that's Syntactically *Awesome* Style Sheets and makes the case against just using 'vanilla' #CSS
    🛍️ David Warrington from #Shopify declares that #TypeScript isn't enough… not without the #Zod validation library

    🎟️ Available now: meetup.com/front-end-sheffield

  6. Zod y el Riesgo de Denegación de…

    Zod es una biblioteca de validación de esquemas para JavaScript y TypeScript que permite definir y validar estructuras de datos de manera sencilla. El método .refine() se utiliza para aplicar validaciones personalizadas sobre los datos que se están validando.

    norvik.tech/news/analisis-zod-

    #Technology #Zod #Refine #DenegacionDeServicio #ValidacionDeEntradas #NorvikTech #DesarrolloSoftware #TechInnovation

  7. Формы как контракт в Next.js: Zod, fieldErrors и одинаковые правила на client и server

    С формами в Next.js проблема обычно начинается не на уровне кнопки submit. Кнопка как раз почти всегда работает. Настоящая путаница начинается позже, когда форма уже живёт в проекте какое-то время. В одном месте ошибка показывается под полем, в другом только общей строкой сверху. Где-то кнопка блокируется на pending, а где-то можно отправить запрос несколько раз подряд. Клиент считает данные валидными, а сервер отвечает, что правило нарушено. Поле уже зелёное, а сохранение всё равно не прошло. В этот момент становится видно, что форма была собрана как кусок UI, а не как контракт. Используем как примеры паттерны из проекта Workbench. Полезно смотреть на форму не как на набор input и submit, а как на договор между UI, валидацией и местом записи данных. У такого договора есть простая форма - какие данные считаются допустимыми, где и как они проверяются, в каком виде ошибка возвращается в интерфейс, что происходит на pending, когда форма блокируется, что считается успехом, а что общей ошибкой, не привязанной к конкретному полю. Как только форма описывается так, код перестаёт расползаться. И здесь Zod в Next.js даёт не просто удобную схему, а способ удерживать client и server в одном наборе правил.

    habr.com/ru/articles/1025472/

    #nextjs #typescript #app_router #zod #forms #validation #react #вебразработка

  8. Формы как контракт в Next.js: Zod, fieldErrors и одинаковые правила на client и server

    С формами в Next.js проблема обычно начинается не на уровне кнопки submit. Кнопка как раз почти всегда работает. Настоящая путаница начинается позже, когда форма уже живёт в проекте какое-то время. В одном месте ошибка показывается под полем, в другом только общей строкой сверху. Где-то кнопка блокируется на pending, а где-то можно отправить запрос несколько раз подряд. Клиент считает данные валидными, а сервер отвечает, что правило нарушено. Поле уже зелёное, а сохранение всё равно не прошло. В этот момент становится видно, что форма была собрана как кусок UI, а не как контракт. Используем как примеры паттерны из проекта Workbench. Полезно смотреть на форму не как на набор input и submit, а как на договор между UI, валидацией и местом записи данных. У такого договора есть простая форма - какие данные считаются допустимыми, где и как они проверяются, в каком виде ошибка возвращается в интерфейс, что происходит на pending, когда форма блокируется, что считается успехом, а что общей ошибкой, не привязанной к конкретному полю. Как только форма описывается так, код перестаёт расползаться. И здесь Zod в Next.js даёт не просто удобную схему, а способ удерживать client и server в одном наборе правил.

    habr.com/ru/articles/1025472/

    #nextjs #typescript #app_router #zod #forms #validation #react #вебразработка

  9. Формы как контракт в Next.js: Zod, fieldErrors и одинаковые правила на client и server

    С формами в Next.js проблема обычно начинается не на уровне кнопки submit. Кнопка как раз почти всегда работает. Настоящая путаница начинается позже, когда форма уже живёт в проекте какое-то время. В одном месте ошибка показывается под полем, в другом только общей строкой сверху. Где-то кнопка блокируется на pending, а где-то можно отправить запрос несколько раз подряд. Клиент считает данные валидными, а сервер отвечает, что правило нарушено. Поле уже зелёное, а сохранение всё равно не прошло. В этот момент становится видно, что форма была собрана как кусок UI, а не как контракт. Используем как примеры паттерны из проекта Workbench. Полезно смотреть на форму не как на набор input и submit, а как на договор между UI, валидацией и местом записи данных. У такого договора есть простая форма - какие данные считаются допустимыми, где и как они проверяются, в каком виде ошибка возвращается в интерфейс, что происходит на pending, когда форма блокируется, что считается успехом, а что общей ошибкой, не привязанной к конкретному полю. Как только форма описывается так, код перестаёт расползаться. И здесь Zod в Next.js даёт не просто удобную схему, а способ удерживать client и server в одном наборе правил.

    habr.com/ru/articles/1025472/

    #nextjs #typescript #app_router #zod #forms #validation #react #вебразработка

  10. Формы как контракт в Next.js: Zod, fieldErrors и одинаковые правила на client и server

    С формами в Next.js проблема обычно начинается не на уровне кнопки submit. Кнопка как раз почти всегда работает. Настоящая путаница начинается позже, когда форма уже живёт в проекте какое-то время. В одном месте ошибка показывается под полем, в другом только общей строкой сверху. Где-то кнопка блокируется на pending, а где-то можно отправить запрос несколько раз подряд. Клиент считает данные валидными, а сервер отвечает, что правило нарушено. Поле уже зелёное, а сохранение всё равно не прошло. В этот момент становится видно, что форма была собрана как кусок UI, а не как контракт. Используем как примеры паттерны из проекта Workbench. Полезно смотреть на форму не как на набор input и submit, а как на договор между UI, валидацией и местом записи данных. У такого договора есть простая форма - какие данные считаются допустимыми, где и как они проверяются, в каком виде ошибка возвращается в интерфейс, что происходит на pending, когда форма блокируется, что считается успехом, а что общей ошибкой, не привязанной к конкретному полю. Как только форма описывается так, код перестаёт расползаться. И здесь Zod в Next.js даёт не просто удобную схему, а способ удерживать client и server в одном наборе правил.

    habr.com/ru/articles/1025472/

    #nextjs #typescript #app_router #zod #forms #validation #react #вебразработка

  11. Как я написал свою библиотеку валидации схем и создал свою альтернативу Zod

    Несколько лет назад в одном из моих проектов на чистом JavaScript возникла задача: валидировать большие вложенные объекты со сложной структурой. Объекты содержали различные подобъекты, к каждому из которых применялись свои правила валидации в зависимости от типа. Задача усложнялась двумя дополнительными требованиями:

    habr.com/ru/articles/1023038/

    #валидация #схема #standard_schema #zod #zod_vs_yup #typescript

  12. TypeScript в Next.js как система контрактов, а не типизация ради типизации

    Когда разработчик начинает писать на Next.js с TypeScript, первая реакция часто довольно холодная. Вместо того чтобы двигаться быстрее, он начинает чаще видеть ошибки. Где-то не совпал shape объекта, где-то строка не подходит в более узкий тип, где-то TypeScript напоминает, что значение может быть undefined. На этом месте легко сделать неправильный вывод. Кажется, что TS просто добавляет трение и требует больше служебного кода. Обычно проблема не в TypeScript, а в способе мышления. Если использовать его как набор аннотаций поверх уже написанного кода, пользы действительно немного. Но если смотреть на типы как на систему контрактов между слоями приложения, картина меняется. Особенно в Next.js App Router, где у нас постоянно есть границы server и client, внешний ввод из URL, формы, мутации и разные состояния интерфейса. В этот момент TypeScript перестаёт быть типизацией ради типизации. Он начинает отвечать на более важный вопрос: какие состояния в проекте вообще допустимы, а какие не должны пройти дальше границы. По такой модели я выстроил один из своих проектов Workbench. Не начинать с мысли давайте везде поставим типы, а начинать с мысли где у нас проходит граница, что в неё входит и что из неё может выйти. После этого многие решения в коде становятся почти очевидными.

    habr.com/ru/articles/1018382/

    #nextjs #typescript #app_router #server_components #type_safety #zod #react #вебразработка

  13. Согласованность API по принципу единого источника истины

    Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал! Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

    habr.com/ru/articles/1003398/

    #API #honojs #zod #RPC #SSOT #OpenAPI #typescript #monorepo #javascript

  14. Согласованность API по принципу единого источника истины

    Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал! Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

    habr.com/ru/articles/1003398/

    #API #honojs #zod #RPC #SSOT #OpenAPI #typescript #monorepo #javascript

  15. Согласованность API по принципу единого источника истины

    Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал! Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

    habr.com/ru/articles/1003398/

    #API #honojs #zod #RPC #SSOT #OpenAPI #typescript #monorepo #javascript

  16. Согласованность API по принципу единого источника истины

    Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал! Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

    habr.com/ru/articles/1003398/

    #API #honojs #zod #RPC #SSOT #OpenAPI #typescript #monorepo #javascript

  17. Zod: строгая валидация и удобная типизация. Опыт перехода

    Привет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру. В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне полей, подружился с React Hook Form и стал единым источником правды о структуре данных. К Zod мы пришли не сразу. Долгое время типы и валидация у нас жили в разных слоях приложения: TypeScript определял структуру данных во время разработки, а отдельные функции или библиотеки (вроде Yup) проверяли входящие значения в рантайме. Это классическая проблема: дублирование логики и рассинхрон. Типы в interface поменялись, а валидация осталась прежней (или наоборот). Мы пробовали Yup, но он казался громоздким в связке с TS: типы приходилось выводить вручную или мириться с тем, что схемы выглядят непрозрачно. В какой-то момент стало непонятно: зачем тащить отдельную библиотеку, если проще написать if (typeof x === 'string') ? С переходом на Zod всё стало значительно проще: одна схема одновременно является и валидатором, и источником типа данных.

    habr.com/ru/companies/banki/ar

    #zod #typescript #валидация_данных #runtime_валидация #react_hook_form #типизация_данных #frontend_разработка #валидация_форм #developer_experience #валидация

  18. 🎬 Rich actions with confirmation dialogs, onSuccess & onError callbacks
    👁️ Conditional visibility based on data, auth, or complex logic
    📦 Two packages: @.json-render/core (types, schemas) + @.json-render/react (renderer, hooks)

    🔧 Schema definition with #Zod for type-safe component props
    📤 Export as standalone #React code with no runtime dependencies

    github.com/vercel-labs/json-re

  19. Хроники Valibot: как мы искали безупречные данные в мире JavaScript

    Если вы когда-нибудь писали фронтенд на TypeScript и получали в проде Cannot read property 'x' of undefined , — добро пожаловать в клуб! TypeScript спасает нас от сотен ошибок… но только пока код не запущен. Как только он скомпилировался, типы исчезают, и в рантайме вы снова остаетесь один на один с невалидными данными. И вот тут начинается: меняется API, формы шлют что угодно, аналитика ломает отчёты, а тесты молчат. В Островке мы попробовали библиотеку Valibot — легковесный runtime-валидатор, который умеет проверять данные на границах контекстов и при этом остаётся дружелюбным к TypeScript . Под катом рассказываем, почему статической типизации уже недостаточно, чем Valibot отличается от Zod, и как валидатор помогает нам строить более надёжную архитектуру без лишнего кода.

    habr.com/ru/companies/ostrovok

    #valibot #zod #architecture #forms #js #валидация_данных #runtime #формы #api #типобезопасность

  20. J'applique systématiquement la même logique avec Zod mais dans `src/config.ts`. Ça permet d'éviter de nombreux problèmes au runtime.

    Pour éviter les appels à `process.env`, il est possible d'utiliser la règle ESLint `n/no-process-env` et d'ajouter une exception pour le seul fichier `src/config.ts`.

    🔗 tsev.dev/posts/2025-12-03-safe

    #environnement #validation #Zod #NodeJS #eslint

  21. Un standard pour les lib de validation TypeScript (Zod, Valibot, etc.).

    L'objectif est d'avoir une spec standardisée pour que les outils interagissant avec ces schémas fonctionnent quel que soit la lib de validation choisie. Un peu comme les PSR rn PHP.

    Vitest supporte d'ailleurs ce format depuis la v4, pour rendre certaines assertions plus faciles à écrire.

    🔗 standardschema.dev/

    #Zod #validation #Vitest #standards #schema

  22. Структура против хаоса — практическая валидация форм с помощью Zod

    Всем привет, с вами Артем Леванов, Front Lead в компании WebRise. В прошлой статье мы разобрали, как навести порядок в создании форм — выделили примитивы, ячейки и типовые поля. Следующая проблема, с которой сталкивается любая форма — валидация . Формы могут быть красивыми и структурными, но без единого подхода к валидации они быстро превращаются в хаос. В этой статье поговорим о том, почему встроенные и кастомные проверки плохо масштабируются, особенно в динамических формах, и как Zod решает эту проблему, превращая валидацию в декларативную и типобезопасную систему.

    habr.com/ru/articles/967540/

    #reactjs #react #zod #валидация #валидация_форм #typescript #javascript #валидация_htmlформ

  23. Un retour d'expérience intéressant sur la transformation d'une architecture bancale et ambiguë en architecture plus simple et pragmatique.

    🔗 marmelab.com/blog/2025/10/29/f

    #GraphQL #REST #Zod #NodeJS

  24. A few months ago I published a #rust crate that generates #typescript and #zod boilerplate from #tauri commands. I never thought anyone else would use it and opened my repo to see two pull requests and a few issues added to the tracker. There's obviously a few gaps due to messy development but it gets the job done.

    github.com/thwbh/tauri-typegen

  25. Comment utiliser Zod en pratique pour valider les variables d'environnement, les configurations, les *payloads* reçues de vos utilisateurs, etc.

    🔗 flaviocopes.com/zod/

    #Zod #validation #TypeScript

  26. Zod-valid. Безопасная валидация API данных

    Zod-valid — это Typescript библиотека, зависимая от другой известной библиотеки zod , для безопасной валидации API данных. API редко гарантирует идеальные данные: поля могут быть пропущены, типы не совпадать, структуры меняться. Без проверки этих данных приложение рискует вызвать runtime-ошибки или ломать бизнес-логику. Валидировать данные заранее — значит обеспечить предсказуемое поведение и защитить приложение от неожиданных значений.

    habr.com/ru/articles/947252/

    #typescript #zod #валидация_данных #валидация #api

  27. First day in Mastodon after coming from Twitter vs One week later

    #TerenceStamp #zod #priscilla

  28. Простая и мощная валидация форм для SolidJS с Zod

    solidjs-hook-form — библиотека для удобной и быстрой работы с формами в SolidJS. Использует Zod для мощной валидации и встроенную реактивность SolidJS для высокой производительности. Легковесная, не навязывает стили и дает полный контроль над UI. Идеальна для разработчиков, которые хотят меньше возиться с формами и больше фокусироваться на логике приложения. Попробуйте, если работаете с SolidJS — возможно, это то, что вам нужно!

    habr.com/ru/articles/936196/

    #Typescript #solidjs #javascript #Frontend #form #form_validation #zod #forms #jsx #tsx

  29. Наводим порядок в загрузке данных Angular с помощью резолверов

    Всем привет! Сегодня хочу разобрать кейс, с которым сталкивается почти каждый Angular-разработчик на существующем проекте. Часто в компонентах можно встретить такой код:

    habr.com/ru/articles/922376/

    #angular #resolver #zod #cache #javascript #typescript #frontend #web #perfomance