Category : javascript

javascript
Полный деплой Strapi CMS + Nuxt.js на Ubuntu

Пошаговое руководство по развёртыванию блога с нуля: Strapi CMS (админка и API) и Nuxt.js (фронтенд) на VPS Ubuntu. В итоге — работающий блог за Nginx с возможностью включить SSL по отдельной инструкции.1. Подготовка сервераПодключитесь к VPS по SSH. Обновите систему и при необходимости задайте пароль root:sudo apt update && sudo apt upgrade -y sudo passwd root # опционально: установить пароль root2. Создание пользователя UbuntuРаботать под root небезопасно. Создайте отдельного пользо…

  • воскресенье, 1 марта 2026 г. в 00:00:09
javascript
Ultimate guide по веб-компонентам

Привет. Я фронтендер, и я... люблю веб-компоненты. Ещё меня расстраивает, когда в статьях о веб-компонентах упоминается connectedCallback(), и, может быть, shadowRoot, хотя возможности веб-компонентов куда шире, да и скучно читать пересказ документации. Хочу показать вам веб-компоненты с другой стороны, и эта статья — туториал, где мы пошагово реализуем сложный веб-компонент — <combo-box> — пройдя все восемь кругов... ну вы поняли. Шучу. На самом деле мы напишем мало кода, вопреки устоявш…

  • воскресенье, 1 марта 2026 г. в 00:00:09
javascript
Вайбкодинг – не для гуманитариев? Юрист сделал кривой поиск по PDF и просит помощи…

Я столкнулся с простой (как мне изначально показалось – даже очень) задачкой. Мне в последнее время потребовалось часто проводить поиск в 4 словарях. Государство мне их дало в виде пяти PDF файлов, выложенных онлайн. Это нормативные словари русского языка, слова из которых можно использовать в публичном пространстве после 1 марта 2026 г. Например, caсhe - можно использовать на русском как кэш, а не переводить как тайник или склад (не путать с cash как наличные), поскольку в Словарь иностранных …

  • суббота, 28 февраля 2026 г. в 00:00:13
javascript
Web Audio API, lamejs и 0 байт на бэкенде: пишу MP3-склейщик целиком в браузере

Привет, Хабр!Меня зовут Виктор, и я хочу рассказать, как бытовая рабочая задача привела меня к тому, что я написал полноценный аудиоредактор, который работает целиком в браузере - без единого запроса на сервер. Под капотом - Web Audio API, OfflineAudioContext, порт LAME-энкодера на JavaScript и немного стыдных архитектурных решений, о которых тоже расскажу.Как всё началосьУ нас на работе, как и у многих, регулярные совещания в Zoom. И у Zoom есть прекрасная особенность: если во время звонка хот…

  • суббота, 28 февраля 2026 г. в 00:00:11
javascript
Virtual DOM: что я понял после сотен проведенных собеседований

За последние пару лет я провёл сотни технических собеседований — от junior до senior специалистов. И я обнаружил что есть одна тема, с пониманием которой есть проблемы почти у всех кандидатов с кем мне доводилось общаться. Это Virtual DOM. Почти каждый кандидат объясняет его примерно так:“Virtual DOM нужен, чтобы обновлять не всю страницу, а только её часть. Поэтому всё работает быстрее.”Формулировка вроде звучит логично. Но проблема в том, что это неверное понимание в принципе.Браузер и без вс…

  • суббота, 28 февраля 2026 г. в 00:00:10
javascript
Литания: создаем свой язык программирования с лексером, парсером и интерпретатором

В наше время программирование стало очень доступным из-за развития инструментов и языков. Написать «привет, мир» может практически каждый, а количество фреймворков для JavaScript уже воспевается в шутках. Теперь, чтобы выделиться и впечатлить друзей и коллег, нужно спускаться глубже. Придумаем свой язык шуточный программирования! В этой статье кратко рассмотрим базу компиляторов и мемные эзотерические языки программирования. В конце придумаем свой язык и попробуем его реализовать. Это упрощенна…

  • суббота, 28 февраля 2026 г. в 00:00:09
javascript
Азбука вкуса, Nuxt и наша большая экосистема

Всем привет! Кажется, настала пора поделиться изменениями в Азбуке, которые произошли с 2022 года, когда я выпускал прошлую статью. Несмотря на то, что в данный момент я уже не руководитель фронта, интересно рассказать, к чему мы пришли за это время. Я, конечно, рекомендую ознакомиться с прошлой статьей, но в целом буду рассказывать "с нуля". Наш текущий стэк: Vue 3, Nuxt 4, TS. На данный момент, мы практически полностью переехали с jQuery, оставив за собой относительно небольшое количе…

  • суббота, 28 февраля 2026 г. в 00:00:08
javascript
Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

У меня есть платформа для работы с метафорическими ассоциативными картами. Это инструмент психологов, коучей: колода картинок, вопросы, разговор. Звучит нишево, но суть задачи универсальна – авторский визуальный контент в вебе, который надо защитить от массового скачивания и пиратства. При этом контент загружают сами пользователи.Если вы делаете галерею, маркетплейс иллюстраций, образовательную платформу с визуалами или любой сервис, где картинки – это ценность, а не декорация, эта статья для в…

  • суббота, 28 февраля 2026 г. в 00:00:07
javascript
Как фронтенд получает данные с сервера: лучшие практики 2026

Всем привет, меня зовут Сергей Прощаев, и в этой статье расскажу про то, что обычно остаётся за кадром для многих бэкенд‑разработчиков — про «вторую половину» API.Много лет пишу на Java и Kotlin, проектирую высоконагруженные системы и, честно говоря, долгое время относился к фронтенду немного свысока. Ну подумаешь, дёрнул наш эндпоинт, получил JSON и отрисовал. Что там сложного? Пока однажды не пришлось плотно разбираться с производительностью одного внутреннего портала. Бэкенд летал, база данн…

  • суббота, 28 февраля 2026 г. в 00:00:06