Статья о том, как превратить TypeScript-схему в единый источник истины для работы с базой данных: из одного определения получить типы строк, имена таблиц и колонок, типизированные запросы, связи, миграции и unit-of-work поверх Knex.Все примеры ниже взяты из xpenser — open-source приложения для учёта личных доходов и расходов. Это одновременно полезное приложение, которым я сам пользуюсь, и референсная реализация Cleverbrush Framework: контракты, сервер, клиент, формы, auth, observability, Postg…
В предыдущей статье разбирали, как собрать структурированную wiki из markdown-файлов на Astro/Starlight — на примере личного карьерного менеджера. В комментариях появились закономерные вопросы: «почему именно так?», «что за странный выбор стека?», «а для чего ещё это можно использовать, кроме как для себя?».Хороший вопрос. Эта статья отвечает на него делом.Та же механика — wiki из markdown — но теперь с Telegram-ботом поверх. Бот умеет искать по базе знаний и отвечать с цитатами и ссылками на и…
UI-kit, которым пользуются несколько продуктовых команд, нельзя просто отправить в будущее и переписать под новый дизайн. За ним тянется прошлое: старые CSS-переменные, публичный API, кастомизации у потребителей и независимые релизные циклы. При этом бренд уже меняется, дизайнеры приносят новую палитру, типографику, motion, скругления и тёмную тему, и всё это нужно аккуратно посадить на компоненты, которые продолжают работать в продакшене.Привет, Хабр! Меня зовут Амир, я Senior Vue.js Frontend …
В августе 2025 года TypeScript впервые возглавил рейтинг GitHub по числу активных контрибьюторов, обойдя Python и JavaScript. Изменился подход к написанию кода: типы стали машиночитаемыми контрактами, фреймворки сделали TS вариантом по умолчанию, а ИИ-инструменты используют типы как ограничения. Разбираемся, какие цифры подтверждают тренд, где он создаёт издержки и как выбирать стек в 2026 году с учётом изменений рынка.Дмитрий БронскихТимлид в ООО «Ярус». Помог с подготовкой статьи.Смена паради…
Современные фронтенд-приложения постоянно взаимодействуют с файлами.Пользователи загружают аватары, перетаскивают видео в дашборды, экспортируют CSV-отчеты, просматривают PDF-файлы, скачивают сгенерированные конфигурационные файлы и работают с медиаконтентом прямо в браузере. На первый взгляд все это выглядит довольно просто: поле загрузки файла, элемент предпросмотра, возможно, кнопка скачивания — и задача решена.Но именно здесь начинаются настоящие проблемы.Большие файлы “замораживают” вкладк…
Когда я первый раз пришёл на встречу со стейкхолдером в роли аналитика, я честно не знал с чего начать. Вопросы в голове были — но не в том порядке. Половину забыл по ходу. Вышел с ощущением что поговорили хорошо, но непонятно о чём.Я поискал готовые шаблоны. Нашёл Excel-таблицы, PDF-чеклисты и десятки статей с советами. Ни одно из этого не открывалось быстро прямо на встрече и не помогало думать в реальном времени.Поэтому я сделал BA Toolkit — набор интерактивных инструментов для структурирова…
Данное изображение продукт генерации ии и моих скринов.Как мы превратили панель управления NAS в платформу для расширений, зачем туда Log Manager и для чего Plugin Template.Сегодня на Хабре уже была похожая статья, но модератор её снял. Поэтому те, кто её уже видел, могут не тратить время на чтение этой версии. Вместо введенияВ прошлой статье (Mini Bucket 3.6.2: от беты к релизу) я показал, как панель доросла до стабильного состояния: закрыли дыры, разнесли базы, добавили HTTPS.Но панель как па…
В мире — миллионы заражений сифилисом и ВИЧ, и цифра растёт. Но мой пост не об этом.Я решил техническую задачу: как сделать медицинский образовательный инструмент, который работает офлайн, не требует бэкенда и не собирает данные пользователей, используя веб‑технологии JS. Ведь в медицине приватность — это требование.Код открыт, лендинг и игры доступны по ссылке.При разработке я ориентировался на:1. Анонимность — без сервера, без регистрации и сбора данных.2. Мультиязычность. Без перезагрузки ст…
Всё началось с, казалось бы, простого желанияМне хотелось написать небольшое приложение. Я работаю fullstack‑разработчиком, поэтому для разработки я решил использовать web‑технологии. Мне хотелось, чтобы я мог написать код один раз, и чтобы он запускался на всех моих устройствах (windows, linux, android).Самое главное: написать приложение быстроМне хотелось использовать готовые инструменты. Я был уверен, что их мне будет достаточно. Посмотрел на существующие решения: electron, neutralinojs, apa…