Как мы научили клинику работать быстрее без новых сотрудников

🤖 Мы сделали так, что врачам больше не нужно печатать.

Недавно мы внедрили автоматизацию для крупной медицинской клиники.
Задача стояла амбициозная — сократить время врача на заполнение анамнеза пациента без потери качества данных.

1

Пример кэширования результатов перевода Google Translate для мультиязычного сайта на NextJS

Делюсь своим опытом по организации перевода контента на разные языки. Сейчас работаю над многоязычным сайтом со стеком NextJS i18n + MongoDB (Mongoose). На сайте довольно много текста, который изредка обновляется.

Для перевода текстов на проекте используется Google Translate. Поэтому первоначально была создана простая функция для перевода вид…

1

Мой стэк для интернет-магазина на NextJS

Недавно закончил очередной онлайн-магазин отопительного оборудования. Хочу поделиться стэком технологий, который использовал для него.

Сайт:

1

Скидка до 70% на курсы разработки и DevOps практикам в Purple School

Чтобы получить выгодную скидку на любой онлайн-курс в Purple School, переходите на сайт онлайн-школы по этой ссылке: purpleschool.ru

Скидка до 70% на курсы разработки и DevOps практикам в P…

Next.js, revalidate, почему данные не обновились

Next.js, revalidate, почему данные не обновились

В Next.js есть момент, который хорошо знаком после первых экспериментов с App Router. Страница уже пересчиталась, reload прошёл, а данные на экране выглядят старыми. Часто причина в том, что включён revalidate, а значит у ответа есть окно свежести.

От favicon до WebAssembly: как два студента создали сервис, который заменил 167 инструментов и работает без единого запроса к серверу

Четыре года разработки, 8 изолированных песочниц, ноль зависимостей от бэкенда и архитектура, в которой приватность данных пользователя возведена в абсолют. История создания Halfcoder.

Представьте: вам нужно быстро проверить регулярку, декодировать Base64 или сгенерировать UUID. Вы открываете пять вкладок, на одной всё тормозит, на второй — б…

Django агрегатор LLM, одна модель на бренд вместо бесконечного списка

Django агрегатор LLM, одна модель на бренд вместо бесконечного списка

Одна из проблем в интеграции LLM начинается в тот момент, когда продукт получает от провайдера длинный список моделей и без размышлений показывает его пользователю. На первый взгляд это выглядит как сильная функциональность. На практике такой список быстро становится декоративным. В нем много похожих id, мало понятных различий, а качество и стабиль…

Next.js, форма это не только submit

Next.js, форма это не только submit

Одна из частых ошибок в проекте на Next.js выглядит просто. Форму собирают как input, кнопку и submit, а всё остальное добавляют потом по мере необходимости. Сначала это кажется быстрым решением, но дальше почти всегда начинается расползание логики. Где-то ошибка поля, где-то общая строка сверху, где-то можно нажать submit несколько раз подряд, где…

Next.js, no-store vs force-cache

Next.js, no-store vs force-cache

В Next.js часто сбивает не само кэширование, а расхождение между рендером страницы и свежестью данных. Страница уже пересчиталась, а ответ от API всё ещё старый. Или наоборот, разработчик отключает кэш везде подряд и теряет сам смысл встроенного механизма.

Next.js vs Django, когда сессию лучше закрыть автоматически

Next.js vs Django, когда сессию лучше закрыть автоматически

Один из недооцененных узлов в auth-связке Next.js и Django находится в точке, где refresh уже не помогает. Пока access token можно обновить, поток выглядит предсказуемо. Но как только refresh истек, был отозван или перестал проходить backend-проверки, приложение должно принять архитектурное решение. Либо продолжать держать пользователя в полурабоче…

Next.js, фильтры без client state

Next.js, фильтры без client state

Когда фильтры в каталоге живут в client state, почти сразу появляется знакомый набор задач: синхронизировать их с URL, не потерять при reload, поддержать back/forward, не запутаться в useEffect и не разнести логику по нескольким уровням интерфейса.

Повторяющийся q в URL

Повторяющийся q в URL

Один из полезных тестов для App Router это не только searchParams сами по себе, но и их грязные варианты. Например: /goods?q=phone&q=tv.