Из блога OpenReplay
Преобразование изображений в Base64 с помощью Canvas
Преобразуйте изображения в Base64 с помощью Canvas: сравните toDataURL и toBlob, учтите PNG/JPEG/WebP и избегайте CORS-ошибок tainted canvas.
Безопасное программирование для JavaScript-разработчиков
Безопасный JavaScript для браузерных приложений: предотвращайте DOM XSS, избегайте eval(), используйте CSP, защищайте токены и проверяйте postMessage.
Низколатентная коммуникация в браузере с WebTransport
WebTransport для браузеров: сравните WebSockets, датagrams и потоки для низкой задержки в HTTP/3 без блокировки по цепочке.
5 файлов Git Dotfiles, которые должен знать каждый разработчик
5 важных Git dotfiles: .gitconfig, .gitignore, .gitattributes, .git-blame-ignore-revs и .mailmap для более чистой работы с репозиторием.
Что нового в TypeScript 6.0
TypeScript 6.0 меняет значения по умолчанию, устаревшие опции и добавляет поддержку ES2025, типы Temporal и советы по миграции к TypeScript 7.0.
Замена библиотек анимации на нативные Web API
Замените GSAP или Framer Motion на Web Animations API, CSS Scroll-Driven Animations и View Transitions для типовых UI-анимаций.
Объяснение прав доступа к файлам в Linux
Права доступа к файлам в Linux, владение, chmod, chown, umask и специальные биты setuid и sticky bit, необходимые для защиты любой Linux-системы.
Использование CSS `zoom` для масштабирования элементов интерфейса
Сравнение CSS zoom и transform scale по влиянию на поток, поддержке браузерами и сценариям масштабирования UI для выбора подходящего инструмента.
Лучшие практики работы с SolidJS
Разбор типичных ошибок в SolidJS: реактивность, область видимости сигналов, обработка props, использование store и async-паттерны с createResource.
Как включить локальный HTTPS для разработки
Настройка доверенного локального HTTPS через mkcert, конфигурация dev-серверов Vite и Next.js, без предупреждений о самоподписанных сертификатах.
Отображение PDF в приложениях Vue 3
Статья сравнивает нативные embeds, PDF.js и Vue-компоненты-обёртки для отображения PDF в Vue 3, рассматривая компромиссы по CORS, workers и размеру бандла.
Знакомьтесь с Turso — эволюцией SQLite на базе Rust
Сравнение Turso и libSQL показывает, как Rust, асинхронные API и MVCC расширяют возможности SQLite для edge-развёртываний и современных архитектур приложений.
Основы проектирования реляционных баз данных
Построение надёжных схем реляционных баз данных с помощью первичных и внешних ключей, нормализации и ограничений для предотвращения аномалий данных.
Плюсы и минусы использования Markdown в качестве CMS
Реальные компромиссы Markdown как CMS: Git-воркфлоу, MDX, Tina CMS и ситуации, когда структурированные headless CMS лучше служат контент-командам.
Логирование запросов с помощью middleware в Node.js
Логирование HTTP-запросов в Express с помощью Morgan, Pino и AsyncLocalStorage для отслеживания correlation ID и защиты чувствительных данных.
5 функций безопасности, которые современные фреймворки предоставляют бесплатно
Фреймворки Next.js, SvelteKit и Django автоматически экранируют XSS, генерируют CSRF-токены и изолируют серверные секреты по умолчанию.
Новый HTML-элемент Geolocation
Новый элемент geolocation добавляет декларативный доступ к геолокации в HTML, заменяя колбэки navigator.geolocation упрощённой моделью разрешений.
Лучшие JavaScript-библиотеки для создания дашбордов
Сравнение Chart.js, Apache ECharts, Recharts, AG Grid и TanStack Table поможет выбрать подходящие JavaScript-библиотеки для аналитических дашбордов.
Как центрировать что угодно с помощью современного CSS
Центрирование элементов по горизонтали и вертикали через CSS Flexbox, Grid и авто-отступы с подбором подходящего метода под каждый контекст.
ResizeObserver vs Window Resize: когда использовать каждый из них
Сравнение ResizeObserver и события window resize для выбора инструмента при отслеживании viewport, размеров элементов и CSS container queries.
Создание терминальных интерфейсов с помощью Charm
Создание терминальных UI на Go с применением Bubble Tea, Lip Gloss и Bubbles из экосистемы Charm на основе компонуемой архитектуры Model, Update, View.
Советы по созданию промптов для разработчиков
Structured outputs, few-shot prompting и контекстная инженерия помогают сделать ответы LLM предсказуемыми в продакшене и построить надёжные интеграции.
Как просматривать и редактировать cookies в Chrome DevTools
Просмотр, редактирование и удаление cookies в Chrome DevTools через панель Application, заголовки панели Network, а также поля HttpOnly, Secure и SameSite.
Лучшие практики Postgres для современных веб-приложений
Проектирование схем PostgreSQL, стратегии индексирования, connection pooling с PgBouncer и безопасные миграции для стабильной работы в продакшене.