Заходи, располагайся!

Привет, я Данил.

Пишу о фронтенде, Vue и Nuxt, делюсь опытом создания инструментов для разработки. Иногда — просто размышляю о кодe и процессах вслух.

Публикации · Страница 4

Автоматизация деплоя: от пуша до прогретого кеша

22.03.2026

Ручной деплой — это всегда лотерея. Забытый npm run build перед копированием файлов, кеш старой версии на сервере, тесты которые «ну и так понятно что работает». В какой-то момент надоело играть в эту игру и я собрал нормальный пайплайн на GitHub Actions.

Метки
CI/CDGitHub ActionsDevOpsавтоматизациядеплой

2D-режим на Three.js и всплывающий список авиакомпаний

22.03.2026

Продолжаю развивать интерактивную карту маршрутных сетей авиакомпаний. В этот раз — две заметные вещи: переписал 2D-режим на Three.js и добавил удобный способ выбирать авиакомпанию прямо из карточки аэропорта.

Метки
three.jswebglавиациявизуализацияfrontend

3D-режим отображения маршрутных сетей авиакомпаний на основе Three.js

14.03.2026

Проект airlines.macrulez.ru изначально строился вокруг 2D-карты: тайлы, canvas, кривые Безье. Всё это описано в предыдущей статье. Но плоская карта с проекцией Меркатора неизбежно искажает маршруты — особенно дальние перелёты, которые в реальности идут через Арктику. Логичным следующим шагом стало добавление интерактивного 3D-глобуса.

Метки
three.jswebglvue3gisdata-visualization

Тайлы, открытые данные и маршрутные сети авиакомпаний

13.03.2026

Рассказываю, как с нуля построил интерактивную карту маршрутных сетей авиакомпаний: сгенерировал собственные тайлы из GeoJSON, собрал данные о 885 авиакомпаниях из открытых источников и написал REST API с PostgreSQL. Маршруты рисуются на canvas без картографических библиотек — только Vue 3 и кривые Безье.

Метки
vue3nodejspostgresqlgisopen-data

Toolz: генерируем полный набор фавиконок

13.03.2026

Новый модуль Fav Icona в составе toolz.macrulez.ru закрывает задачу, с которой сталкивается каждый вебмастер при запуске проекта: подготовка полного набора favicon-файлов для всех платформ. Один SVG или PNG на входе — готовый пакет с десятком файлов, манифестом и HTML-кодом на выходе.

Метки
faviconвеб-разработкаPWAиконкиинструменты

color-value-tools — конвертация и манипуляция цветами в любых форматах

07.03.2026

Библиотека color-value-tools — один набор утилит для разбора, конвертации и манипуляции цветом: hex, RGB, HSL, HSV, Lab, LCH, CMYK, яркость, смешивание и контраст по WCAG. В посте — зачем выносить работу с цветом в отдельный слой, обзор API и примеры под реальные задачи (темы, градиенты, доступность, печать).

Метки
color-value-toolsцветаконвертацияTypeScriptдоступность (WCAG)

css-magic-gradient — генерация CSS-градиентов с реактивностью для Vue 3

07.03.2026

Пакет css-magic-gradient генерирует линейные, радиальные и конические CSS-градиенты по базовому цвету и опциям, во Vue 3 композиции принимают ref цвета и опций и возвращают вычисляемую строку — при смене темы или выборе цвета градиент обновляется сам, без ручных подписок и watchers.

Метки
css-magic-gradientVue 3CSSградиентыреактивность

responsive-media — реактивные брейкпоинты для Vue и не только

07.03.2026

Один раз описать брейкпоинты — и во всём приложении использовать реактивные флаги «мобилка / планшет / десктоп» без ручных подписок на matchMedia. Как устроен пакет responsive-media, кастомные брейкпоинты с ориентацией и aspect-ratio и плагин для Vue 3 — в одном посте.

Метки
responsive-mediaVue 3media queriesадаптивная вёрстка

rest-pipeline-js — пайплайны запросов к API

07.03.2026

Библиотека rest-pipeline-js помогает описывать цепочки REST-запросов с паузами, retry, кэшем и лимитами — в посте разбираем сценарии от простой пошаговой загрузки до автоматического подбора авиарейса и готового предложения для шаблона, плюс плагины для Vue 3 и React с примерами кода.

Метки
rest-pipeline-jsREST APIpipelineVue 3React

Toolz: переименовываем файлы при пакетной обработке

03.03.2026

Больше никакого ручного переименования десятков картинок после сжатия — разбираемся, как новые шаблоны в Image Compressor автоматически приводят имена файлов к нужному виду на лету.

Метки
Image Compressorпакетная обработкапереименование файлов

Toolz: редактируем очередь изображений в процессе работы

03.03.2026

Теперь в Image Compressor и Tiny SVG можно не только сжимать изображения пачками, но и редактировать саму очередь на лету — добавлять новые файлы и удалять лишние без перезапуска всего процесса. В статье разбираем, как эта мелочь по интерфейсу заметно упрощает подготовку ассетов для веба.

Метки
toolzочередьизображения

Toolz - в помощь вебмастеру

01.03.2026

Краткий обзор возможностей трёх инструментов на toolz.macrulez.ru — сжатие растровых картинок с разными кодеками и настройками, оптимизация SVG и конструктор CSS-градиентов. Что можно настроить, как смотреть результат и как обрабатывать файлы пачками.

Метки
toolzизображенияоптимизацияSVGградиентыCSS

macrulez.ru: переезд с «чистого» Vue на Nuxt и SSR

27.02.2026

Переехал с «голого» Vue 3 и Vite на Nuxt с полноценным SSR для macrulez.ru — без переписывания проекта с нуля.

В посте показываю, как аккуратно натянуть Nuxt поверх существующей архитектуры, завести server API‑прокси, настроить метаданные и деплой через PM2.

Метки
VueNuxtSSRSEOрефактор

Обновление rest-pipeline-js до версии 1.2.5

26.02.2026

Обновил rest-pipeline-js: теперь core, Vue и React вынесены в отдельные точки входа (rest-pipeline-js, rest-pipeline-js/vue, rest-pipeline-js/react) — сборки чище и без лишних зависимостей. В посте показал, что именно поменялось, как мигрировать импорты и привёл примеры для базового использования, Vue и React.

Метки
rest apipipelinevuereactjs