[{"data":1,"prerenderedAt":1330},["ShallowReactive",2],{"blog-post-ru-chto-takoe-veb-prilozhenie":3,"blog-list-ru":1220},{"id":4,"title":5,"body":6,"category":1167,"cover":1168,"date":1169,"description":1170,"excerpt":1171,"extension":1172,"faq":1173,"featured":1210,"meta":1211,"metaDescription":1212,"metaTitle":1213,"navigation":1214,"path":1215,"readingMinutes":1216,"seo":1217,"slug":1218,"stem":1218,"updated":1169,"__hash__":1219},"blogRu/chto-takoe-veb-prilozhenie.md","Что такое веб-приложение: как устроено, виды и на чём делают",{"type":7,"value":8,"toc":1141},"minimark",[9,18,21,26,29,32,100,104,107,114,119,122,162,165,168,270,274,281,291,302,305,311,317,320,324,327,332,339,353,367,370,374,393,406,419,422,426,446,459,472,475,479,491,498,511,524,527,531,538,551,564,567,570,578,702,706,709,713,728,737,741,759,763,781,785,798,802,813,816,894,901,905,908,958,965,981,985,988,993,999,1004,1026,1045,1048,1052,1055,1061,1067,1076,1082,1085,1089,1092,1095,1127,1134],[10,11,12,13,17],"p",{},"Открой сейчас почту или заметки в браузере. Ты уже внутри веб-приложения, просто никогда об этом не думал. ",[14,15,16],"strong",{},"Веб-приложение"," это программа, которая работает прямо в браузере, без скачивания и установки: открыл вкладку и сразу пользуешься полноценным софтом. Ты не просто читаешь готовый текст, как в газете, а действуешь. Пишешь письмо, двигаешь задачи в доске, собираешь заказ в корзине, редактируешь документ, который тут же сохраняется. Вот что такое веб-приложение, если объяснять простыми словами: софт, который живёт по ссылке, а не в папке на диске.",[10,19,20],{},"Меня зовут Евгений Волков, я fullstack-разработчик, и веб-приложения это ровно то, что я делаю руками каждый день. Поэтому дальше не сухое определение из учебника, а разбор от практика: чем веб-приложение честно отличается от обычного сайта, как оно устроено под капотом, какие бывают виды, на чём их собирают и как всё это выглядит на живых примерах. В конце отвечу на частые вопросы, которые люди реально гуглят перед тем, как заказать разработку.",[22,23,25],"h2",{"id":24},"кратко-веб-приложение-в-двух-абзацах","Кратко: веб-приложение в двух абзацах",[10,27,28],{},"Если нужно понять суть за минуту, вот она. Сайт доставляет тебе контент, ты его читаешь. Веб-приложение это софт в браузере, ты в нём создаёшь и меняешь данные под своим аккаунтом. Между ними спектр, а не стена: чем больше ты действуешь, а не просто читаешь, тем это ближе к приложению.",[10,30,31],{},"Работает всё по клиент-серверной схеме: браузер отправляет запрос, сервер его обрабатывает, лезет в базу данных и возвращает ответ. Собирают приложение из слоёв: фронтенд (интерфейс), бэкенд (логика), база данных, API между ними и хостинг. Ниже раскрою каждый пункт по-человечески.",[33,34,35,48],"table",{},[36,37,38],"thead",{},[39,40,41,45],"tr",{},[42,43,44],"th",{},"Вопрос",[42,46,47],{},"Короткий ответ",[49,50,51,60,68,76,84,92],"tbody",{},[39,52,53,57],{},[54,55,56],"td",{},"Что это",[54,58,59],{},"Программа в браузере, без установки",[39,61,62,65],{},[54,63,64],{},"Чем отличается от сайта",[54,66,67],{},"Сайт читаешь, в приложении действуешь с данными",[39,69,70,73],{},[54,71,72],{},"Как работает",[54,74,75],{},"Браузер ↔ API ↔ сервер ↔ база данных",[39,77,78,81],{},[54,79,80],{},"Какие виды",[54,82,83],{},"MPA, SPA, SSR, SSG/ISR, PWA",[39,85,86,89],{},[54,87,88],{},"На чём делают",[54,90,91],{},"React/Vue + Nuxt/Next, Node/Python, PostgreSQL, API",[39,93,94,97],{},[54,95,96],{},"Примеры",[54,98,99],{},"Почта, Google Docs, Telegram Web, CRM, магазины",[22,101,103],{"id":102},"чем-веб-приложение-отличается-от-сайта","Чем веб-приложение отличается от сайта",[10,105,106],{},"Это главный вопрос, который люди задают, и по нему в выдаче гуляет много путаницы. Встречал объяснения вроде «сайт работает только на компьютере, а приложение везде» или «в приложении обязательно есть вход по логину». Это неправда. Сайт прекрасно открывается на телефоне, а половина сайтов вообще не требует регистрации. Дело совсем в другом.",[10,108,109,110,113],{},"Настоящая граница проходит по тому, что ты делаешь. ",[14,111,112],{},"Сайт"," это про доставку контента. Кто-то один раз написал текст, а сайт показывает его всем посетителям: ты пришёл, прочитал статью, посмотрел цены, ушёл. Ты потребитель готовой информации. Классический сайт это блог, лендинг, визитка компании, новостной портал.",[10,115,116,118],{},[14,117,16],{}," это про действие над данными. Ты не читаешь чужой готовый контент, ты создаёшь и меняешь свой. Написал письмо, оно ушло и сохранилось. Перетащил карточку задачи, состояние доски обновилось. Добавил товар в корзину, оформил, оплатил. Приложение приняло твои действия, что-то посчитало, записало в базу и показало результат. Ты соавтор, а не зритель.",[10,120,121],{},"Если убрать философию, вот технические маркеры, по которым инженер отличает одно от другого:",[123,124,125,132,138,144,150,156],"ul",{},[126,127,128,131],"li",{},[14,129,130],{},"Состояние и рендеринг на клиенте."," У приложения есть живое состояние прямо в браузере: что открыто, что выбрано, что ты набрал но ещё не отправил. Интерфейс перерисовывается на лету, без перезагрузки страницы.",[126,133,134,137],{},[14,135,136],{},"Бизнес-логика и работа с данными."," Внутри крутится логика: посчитать цену со скидкой, проверить остаток на складе, собрать отчёт. Это классический CRUD, четыре операции над данными: создать, прочитать, обновить, удалить.",[126,139,140,143],{},[14,141,142],{},"База данных."," У приложения есть где хранить твои данные между визитами. Закрыл вкладку, вернулся завтра, всё на месте.",[126,145,146,149],{},[14,147,148],{},"Аккаунты и сессии как ядро."," Приложение помнит, кто ты, и показывает именно твои данные, а не общие для всех. Это не украшение, а основа: у каждого пользователя своё пространство.",[126,151,152,155],{},[14,153,154],{},"API-слой."," Интерфейс в браузере и логика на сервере общаются через API. Нажал кнопку, браузер тихо сходил на сервер, получил данные, обновил экран.",[126,157,158,161],{},[14,159,160],{},"Сборка и бандлинг при деплое."," Код приложения перед выкладкой проходит сборку: собирается в оптимизированные файлы, режется на части, минифицируется. У простого сайта этого этапа может и не быть.",[10,163,164],{},"Теперь честно про размытость. Чёткой стены между сайтом и приложением нет, есть спектр. Блог, к которому прикрутили форму комментариев, это ещё сайт, но уже с щепоткой интерактива. Интернет-магазин с корзиной, аккаунтом и оплатой это уже полноценное веб-приложение, хотя по привычке его называют сайтом. Правило, которым пользуюсь я: если пользователь в основном читает, это сайт; если создаёт, меняет и обрабатывает данные, это веб-приложение.",[10,166,167],{},"Сведу разницу в таблицу, так нагляднее.",[33,169,170,184],{},[36,171,172],{},[39,173,174,177,179,181],{},[42,175,176],{},"Критерий",[42,178,112],{},[42,180,16],{},[42,182,183],{},"Пример",[49,185,186,200,214,228,242,256],{},[39,187,188,191,194,197],{},[54,189,190],{},"Что делает пользователь",[54,192,193],{},"Читает, смотрит",[54,195,196],{},"Создаёт, меняет данные",[54,198,199],{},"Статья vs почта",[39,201,202,205,208,211],{},[54,203,204],{},"Контент",[54,206,207],{},"Один для всех",[54,209,210],{},"Свой у каждого",[54,212,213],{},"Блог vs личный кабинет",[39,215,216,219,222,225],{},[54,217,218],{},"Данные",[54,220,221],{},"Показываются",[54,223,224],{},"Хранятся и обрабатываются",[54,226,227],{},"Прайс vs корзина",[39,229,230,233,236,239],{},[54,231,232],{},"Аккаунты",[54,234,235],{},"Не обязательны",[54,237,238],{},"Обычно ядро продукта",[54,240,241],{},"Лендинг vs CRM",[39,243,244,247,250,253],{},[54,245,246],{},"Логика",[54,248,249],{},"Минимум",[54,251,252],{},"Основа продукта",[54,254,255],{},"Визитка vs онлайн-банк",[39,257,258,261,264,267],{},[54,259,260],{},"Перезагрузка страниц",[54,262,263],{},"На каждый переход",[54,265,266],{},"Часто без неё",[54,268,269],{},"Новости vs Trello",[22,271,273],{"id":272},"как-веб-приложение-работает-под-капотом","Как веб-приложение работает под капотом",[10,275,276,277,280],{},"Тут пугаться нечего, схема простая, и её стоит понять, чтобы дальше говорить с разработчиком на одном языке. В основе лежит ",[14,278,279],{},"клиент-серверная архитектура",". Звучит сложно, а по сути это диалог двух сторон.",[10,282,283,286,287,290],{},[14,284,285],{},"Клиент"," это твой браузер. Он показывает интерфейс и принимает твои действия. ",[14,288,289],{},"Сервер"," это чужой компьютер где-то в дата-центре, который хранит данные и знает всю логику. Между ними бегают запросы и ответы. Разберём на живом сценарии.",[10,292,293,294,297,298,301],{},"Ты открыл онлайн-магазин и нажал «добавить в корзину». Дальше происходит вот что. Браузер (клиент) формирует запрос и через ",[14,295,296],{},"API"," отправляет его на сервер: мол, пользователь такой-то хочет положить в корзину товар номер такой-то. Сервер принимает запрос, проверяет, что товар есть на складе, обращается к ",[14,299,300],{},"базе данных",", записывает туда изменение корзины и отправляет обратно ответ: готово, в корзине теперь три позиции на такую-то сумму. Браузер получает ответ и обновляет циферку корзины у тебя на экране. Всё это занимает доли секунды, и ты видишь только результат.",[10,303,304],{},"Ключевая идея: логика и данные разложены по двум сторонам, и делят их не случайно.",[10,306,307,310],{},[14,308,309],{},"Клиентская сторона"," (то, что в браузере) отвечает за интерфейс и за то, что ты видишь и трогаешь: кнопки, формы, анимации, мгновенная реакция на клик, временное состояние страницы. Запрос «клиентская сторона веб-приложения» люди ищут не просто так: именно тут живёт весь видимый интерактив. Но клиенту нельзя доверять важное. Браузер у пользователя, и теоретически туда можно залезть и подменить данные.",[10,312,313,316],{},[14,314,315],{},"Серверная сторона"," отвечает за то, что должно быть надёжным и защищённым: основную бизнес-логику, проверку прав, работу с базой, оплату, всё, что нельзя отдавать на откуп браузеру. Цену заказа считает сервер, а не клиент, иначе любой хитрец поставил бы себе скидку 99%. Проверку «а можно ли этому пользователю удалять чужие записи» тоже делает сервер.",[10,318,319],{},"Вот это разделение и есть скелет любого веб-приложения. Интерфейс отдельно, логика и данные отдельно, между ними API как посредник. Понимаешь эту схему, понимаешь, почему приложение это не «просто красивый сайт», а система из нескольких частей.",[22,321,323],{"id":322},"виды-веб-приложений","Виды веб-приложений",[10,325,326],{},"Дальше самое интересное и то, что почти все обходят стороной. Веб-приложения бывают разными по тому, как они собирают и отдают страницы. От этого зависит скорость, удобство разработки и то, насколько дружелюбно приложение к поисковикам. Разберу основные виды по-человечески, с плюсами, минусами и с примерами, когда что брать. Имена фреймворков назову честно, а не спрячу за общими словами.",[328,329,331],"h3",{"id":330},"mpa-многостраничное-приложение","MPA (многостраничное приложение)",[10,333,334,335,338],{},"Классика, с которой начинался веб. ",[14,336,337],{},"MPA"," (multi-page application) это когда каждая страница отдельная, и на любой переход браузер идёт на сервер за новой страницей. Кликнул ссылку, страница перезагрузилась целиком, пришёл свежий HTML. Так работает большинство обычных сайтов и старых интернет-магазинов.",[340,341,342],"pros",{},[123,343,344,347,350],{},[126,345,346],{},"Простое и понятное SEO: каждая страница это отдельный URL с готовым HTML, поисковику удобно.",[126,348,349],{},"Лёгкий старт: браузер получает готовую страницу и сразу её показывает.",[126,351,352],{},"Проще в разработке для контентных проектов без сложного интерактива.",[354,355,356],"cons",{},[123,357,358,361,364],{},[126,359,360],{},"Каждый переход это перезагрузка, ощущается медленнее и «дёргано».",[126,362,363],{},"Тяжело делать насыщенный интерактив без перезагрузок.",[126,365,366],{},"Часть работы дублируется от страницы к странице.",[10,368,369],{},"Когда брать: контентные сайты, блоги, каталоги, лендинги, всё, где главное это тексты и картинки, а не сложные действия.",[328,371,373],{"id":372},"spa-одностраничное-приложение","SPA (одностраничное приложение)",[10,375,376,377,380,381,384,385,388,389,392],{},"Противоположность MPA. ",[14,378,379],{},"SPA"," (single-page application) грузит один HTML-каркас один раз, а дальше живёт целиком в браузере. Переходы между «страницами» рисует JavaScript на лету, без перезагрузок. Ощущается как настоящее приложение: кликаешь, и всё меняется мгновенно, без белого экрана. На SPA сделаны почтовые клиенты, таск-трекеры, дашборды, редакторы. Пишут их обычно на ",[14,382,383],{},"React",", ",[14,386,387],{},"Vue"," или ",[14,390,391],{},"Angular",".",[340,394,395],{},[123,396,397,400,403],{},[126,398,399],{},"Плавность: переходы мгновенные, ничего не перезагружается, как в десктопной программе.",[126,401,402],{},"Отлично для насыщенных интерфейсов: дашборды, редакторы, личные кабинеты.",[126,404,405],{},"Чёткое разделение фронтенда и бэкенда через API.",[354,407,408],{},[123,409,410,413,416],{},[126,411,412],{},"Тяжёлый старт: браузер сначала качает большой JavaScript, и до этого экран может быть пустым.",[126,414,415],{},"Сложности с SEO: поисковик получает пустой каркас, контент дорисовывается скриптом, и это надо аккуратно решать.",[126,417,418],{},"Больше нагрузки на устройство пользователя, особенно на слабых телефонах.",[10,420,421],{},"Когда брать: приложения за логином, где SEO не важно, а важен богатый интерактив. Внутренние системы, админки, кабинеты.",[328,423,425],{"id":424},"ssr-серверный-рендеринг","SSR (серверный рендеринг)",[10,427,428,429,432,433,436,437,440,441,392],{},"Золотая середина между MPA и SPA. ",[14,430,431],{},"SSR"," (server-side rendering) это когда сервер сам собирает готовую HTML-страницу с контентом и отдаёт браузеру, а уже потом JavaScript «оживляет» её и превращает в живое приложение без перезагрузок. Пользователь и поисковик видят контент сразу, а дальше получают всю плавность SPA. Так работают современные фреймворки ",[14,434,435],{},"Nuxt"," (для Vue) и ",[14,438,439],{},"Next.js"," (для React). Мой основной рабочий инструмент это как раз Nuxt. Про то, когда бизнесу стоит делать сайт именно на нём, я написал отдельно: ",[442,443,445],"a",{"href":444},"/blog/razrabotka-sajta-na-nuxt","разработка сайта на Nuxt",[340,447,448],{},[123,449,450,453,456],{},[126,451,452],{},"Быстрый первый экран: контент виден сразу, не ждём загрузки скриптов.",[126,454,455],{},"Дружелюбно к SEO: поисковик получает готовый HTML.",[126,457,458],{},"Дальше работает как SPA: плавные переходы, живой интерактив.",[354,460,461],{},[123,462,463,466,469],{},[126,464,465],{},"Нужен живой сервер, который рендерит на каждый запрос, это нагрузка и стоимость.",[126,467,468],{},"Есть ловушка гидрации: контент виден, но кликать нельзя, пока не догрузился JS.",[126,470,471],{},"Сложнее в настройке, чем чистый MPA или SPA.",[10,473,474],{},"Когда брать: почти всё, где нужны и скорость с SEO, и живой интерфейс. Магазины, маркетплейсы, публичные части сервисов.",[328,476,478],{"id":477},"ssg-и-isr-статика-и-её-обновление","SSG и ISR (статика и её обновление)",[10,480,481,482,485,486,490],{},"Ещё быстрее. ",[14,483,484],{},"SSG"," (static site generation) это когда все страницы собираются заранее, один раз при сборке, в готовые HTML-файлы. Дальше их раздаёт хоть простой файловый сервер, хоть CDN, и это самое быстрое, что бывает: рендерить на лету нечего, ломаться нечему. Сам evolkov.tech собран именно так, через ",[487,488,489],"code",{},"nuxt generate",", поэтому грузится мгновенно.",[10,492,493,494,497],{},"Минус статики в том, что при изменении контента надо пересобирать. На тысяче страниц это долго. Тут выручает ",[14,495,496],{},"ISR"," (incremental static regeneration): страницы статические, но сервер умеет пересобирать отдельные из них по расписанию или по запросу, не трогая остальные. Свежесть почти как у SSR, скорость почти как у SSG.",[340,499,500],{},[123,501,502,505,508],{},[126,503,504],{},"Максимальная скорость и минимальный TTFB: отдаётся готовый файл.",[126,506,507],{},"Нечему ломаться в рантайме, дёшево хостить, легко масштабировать.",[126,509,510],{},"Отлично индексируется: HTML готов заранее.",[354,512,513],{},[123,514,515,518,521],{},[126,516,517],{},"Чистый SSG плохо подходит для часто меняющихся и персональных данных.",[126,519,520],{},"Большой билд на тысячах страниц становится долгим (тут и спасает ISR).",[126,522,523],{},"Динамику всё равно приходится добавлять поверх, отдельным слоем.",[10,525,526],{},"Когда брать: блоги, документация, лендинги, витрины, контентные проекты. ISR: большие каталоги, где нужна и скорость, и относительная свежесть.",[328,528,530],{"id":529},"pwa-устанавливаемое-приложение","PWA (устанавливаемое приложение)",[10,532,533,534,537],{},"Особняком стоит ",[14,535,536],{},"PWA"," (progressive web app). Это не столько отдельный способ рендеринга, сколько надстройка, которая превращает веб-приложение почти в нативное. PWA можно установить на телефон или компьютер прямо из браузера, без магазина приложений, у него появляется своя иконка на экране. За счёт технологии service worker оно частично работает офлайн, кеширует данные и умеет присылать push-уведомления.",[340,539,540],{},[123,541,542,545,548],{},[126,543,544],{},"Ставится на устройство, живёт иконкой, ощущается как обычное приложение.",[126,546,547],{},"Частично работает офлайн и шлёт push-уведомления.",[126,549,550],{},"Одна кодовая база на веб и на «установленную» версию, без App Store и Google Play.",[354,552,553],{},[123,554,555,558,561],{},[126,556,557],{},"Доступ к железу телефона слабее, чем у нативного приложения.",[126,559,560],{},"Push и установка на iOS исторически урезаны сильнее, чем на Android.",[126,562,563],{},"Не заменяет нативное там, где нужна тяжёлая графика или глубокая интеграция с ОС.",[10,565,566],{},"Когда брать: когда нативное приложение делать дорого, а веб хочется сделать удобнее, ближе к телефону и с офлайном.",[10,568,569],{},"Важная оговорка про честность. В реальной разработке эти виды давно не чистые. Современный Nuxt или Next.js смешивает режимы прямо по страницам: главная и каталог статикой или через SSR ради скорости и SEO, а личный кабинет как SPA ради интерактива. Это называется гибридный рендеринг, и на практике так и делают. Не «выбираем одно на всё приложение», а подбираем режим под каждую часть.",[10,571,572,573,577],{},"И вот тут прямая связь со скоростью. Выбор вида напрямую бьёт по тому, как быстро появляется первый экран, а значит и по Core Web Vitals, и по позициям в поиске. Ниже собрал виды в таблицу по этим параметрам. А как именно чинить скорость, я подробно разобрал в отдельной статье, ",[442,574,576],{"href":575},"/blog/kak-uskorit-sajt","как ускорить сайт",": там про DevTools, бандл и архитектуру рендеринга по шагам. Тут я не переучиваю оптимизацию, тут про то, что это за виды и когда какой брать.",[33,579,580,599],{},[36,581,582],{},[39,583,584,587,590,593,596],{},[42,585,586],{},"Вид",[42,588,589],{},"Скорость первого экрана",[42,591,592],{},"SEO",[42,594,595],{},"Динамика/интерактив",[42,597,598],{},"Для чего",[49,600,601,619,637,653,669,685],{},[39,602,603,607,610,613,616],{},[54,604,605],{},[14,606,337],{},[54,608,609],{},"Быстро",[54,611,612],{},"Отлично",[54,614,615],{},"Слабая",[54,617,618],{},"Контент, каталоги, старые сайты",[39,620,621,625,628,631,634],{},[54,622,623],{},[14,624,379],{},[54,626,627],{},"Медленный старт",[54,629,630],{},"Слабое из коробки",[54,632,633],{},"Максимум",[54,635,636],{},"Кабинеты, дашборды, админки",[39,638,639,643,645,647,650],{},[54,640,641],{},[14,642,431],{},[54,644,609],{},[54,646,612],{},[54,648,649],{},"Высокая",[54,651,652],{},"Магазины, публичные сервисы",[39,654,655,659,661,663,666],{},[54,656,657],{},[14,658,484],{},[54,660,633],{},[54,662,612],{},[54,664,665],{},"Низкая (статика)",[54,667,668],{},"Блоги, лендинги, документация",[39,670,671,675,677,679,682],{},[54,672,673],{},[14,674,496],{},[54,676,633],{},[54,678,612],{},[54,680,681],{},"Средняя",[54,683,684],{},"Большие каталоги",[39,686,687,691,694,696,699],{},[54,688,689],{},[14,690,536],{},[54,692,693],{},"Зависит от базы",[54,695,693],{},[54,697,698],{},"Высокая + офлайн",[54,700,701],{},"Мобильный опыт без магазина",[22,703,705],{"id":704},"на-чём-делают-веб-приложения","На чём делают веб-приложения",[10,707,708],{},"Ещё один вопрос, который почти везде замазан парой баззвордов вроде «HTML, CSS, JavaScript и всё». На деле веб-приложение это не один язык, а несколько слоёв, у каждого своя задача и свои инструменты. Разберу стек по-честному, как fullstack-разработчик, который работает со всеми слоями сразу.",[328,710,712],{"id":711},"фронтенд-интерфейс-в-браузере","Фронтенд: интерфейс в браузере",[10,714,715,718,719,721,722,724,725,727],{},[14,716,717],{},"Фронтенд"," это всё, что пользователь видит и трогает. Основа тут это три вещи: HTML (структура), CSS (внешний вид), JavaScript (поведение). Но на голом JavaScript большое приложение писать больно, поэтому берут фреймворки. Три главных это ",[14,720,383],{}," (от Meta, самый популярный), ",[14,723,387],{}," (гибкий и приятный, мой любимый) и ",[14,726,391],{}," (тяжёлый, чаще в корпоративных системах).",[10,729,730,731,733,734,736],{},"Поверх фреймворков ставят мета-фреймворки, которые добавляют серверный рендеринг, маршрутизацию и сборку из коробки: ",[14,732,435],{}," для Vue и ",[14,735,439],{}," для React. Именно они дают тот самый SSR и гибридный рендеринг, о которых шла речь выше. Мой основной стек это Nuxt/Vue, а под проекты на React я беру Next.js.",[328,738,740],{"id":739},"бэкенд-логика-на-сервере","Бэкенд: логика на сервере",[10,742,743,746,747,750,751,754,755,758],{},[14,744,745],{},"Бэкенд"," это мозг приложения, невидимая часть на сервере. Он обрабатывает запросы, крутит бизнес-логику, ходит в базу, проверяет права, считает и решает. Языков и платформ тут много. ",[14,748,749],{},"Node.js"," позволяет писать бэкенд на том же JavaScript, что и фронт, и это удобно fullstack-разработчику: один язык на весь стек. ",[14,752,753],{},"Python"," любят за читаемость и за силу в данных и в ML. ",[14,756,757],{},"PHP"," до сих пор держит огромную долю веба (на нём, например, WordPress). Есть ещё Go, Java, C#, у каждого своя ниша.",[328,760,762],{"id":761},"база-данных-где-живут-данные","База данных: где живут данные",[10,764,765,768,769,772,773,776,777,780],{},[14,766,767],{},"База данных"," это память приложения. Тут хранятся пользователи, заказы, тексты, всё, что должно пережить перезагрузку. Условно делятся на два лагеря. Реляционные (SQL) хранят данные строгими таблицами со связями: ",[14,770,771],{},"PostgreSQL"," (мощная, моя основная) и ",[14,774,775],{},"MySQL"," (проверенная классика). Нереляционные (NoSQL) вроде MongoDB гибче по структуре. Отдельно стоит упомянуть ",[14,778,779],{},"Supabase",": это готовая обвязка вокруг PostgreSQL, которая сразу даёт базу, авторизацию и API, и здорово ускоряет старт проекта.",[328,782,784],{"id":783},"api-связь-между-фронтом-и-бэком","API: связь между фронтом и бэком",[10,786,787,789,790,793,794,797],{},[14,788,296],{}," это язык, на котором интерфейс договаривается с сервером. Фронт не лезет в базу напрямую, он вежливо спрашивает у бэкенда через API: дай мне заказы этого пользователя, сохрани вот это. Два главных стиля: ",[14,791,792],{},"REST"," (простой, на обычных HTTP-запросах, самый распространённый) и ",[14,795,796],{},"GraphQL"," (клиент сам описывает, какие именно поля ему нужны, удобно для сложных данных). Без API-слоя фронт и бэк это две несвязанные половины.",[328,799,801],{"id":800},"хостинг-и-деплой-где-всё-это-живёт","Хостинг и деплой: где всё это живёт",[10,803,804,805,808,809,812],{},"Готовое приложение должно где-то работать и быть доступным по адресу. ",[14,806,807],{},"Хостинг"," это сервер, на котором приложение крутится: обычная VPS, облако вроде Vercel или Cloudflare, свой физический сервер. ",[14,810,811],{},"Деплой"," это процесс выкладки кода на этот сервер: собрали проект, отправили на хостинг, он стал доступен пользователям. Сюда же относятся домен, HTTPS-сертификат и автоматизация через CI/CD, чтобы каждое обновление выкатывалось без ручной возни.",[10,814,815],{},"Соберу всё в таблицу, чтобы стек читался одним взглядом.",[33,817,818,831],{},[36,819,820],{},[39,821,822,825,828],{},[42,823,824],{},"Слой",[42,826,827],{},"Чем делают",[42,829,830],{},"Зачем нужен",[49,832,833,845,857,869,881],{},[39,834,835,839,842],{},[54,836,837],{},[14,838,717],{},[54,840,841],{},"React, Vue, Angular; Nuxt, Next.js",[54,843,844],{},"Интерфейс, всё видимое и интерактив",[39,846,847,851,854],{},[54,848,849],{},[14,850,745],{},[54,852,853],{},"Node.js, Python, PHP",[54,855,856],{},"Логика, обработка, права, расчёты",[39,858,859,863,866],{},[54,860,861],{},[14,862,767],{},[54,864,865],{},"PostgreSQL, MySQL, Supabase",[54,867,868],{},"Хранение данных между визитами",[39,870,871,875,878],{},[54,872,873],{},[14,874,296],{},[54,876,877],{},"REST, GraphQL",[54,879,880],{},"Связь фронтенда и бэкенда",[39,882,883,888,891],{},[54,884,885],{},[14,886,887],{},"Хостинг/деплой",[54,889,890],{},"VPS, Vercel, Cloudflare, CI/CD",[54,892,893],{},"Где приложение живёт и как обновляется",[10,895,896,897,392],{},"Честно про мой стек, чтобы не звучало как реклама всего сразу. Я работаю на связке Nuxt/Vue и React/Next на фронте, Node.js на бэке, PostgreSQL или Supabase под данные. Это не единственно верный набор, у Python и PHP свои сильные стороны. Но именно этот стек даёт быстрый SSR, единый язык на весь проект и понятный путь от прототипа до нагруженного продакшена. Подробнее про то, как я собираю такие проекты под ключ, есть на странице ",[442,898,900],{"href":899},"/uslugi/razrabotka-veb-prilozhenij","разработки веб-приложений",[22,902,904],{"id":903},"примеры-веб-приложений","Примеры веб-приложений",[10,906,907],{},"Теория укладывается в голове, когда видишь её на знакомых продуктах. Ты пользуешься веб-приложениями каждый день, просто не вешал на них ярлык. Пройдусь по категориям.",[123,909,910,916,922,928,934,940,946,952],{},[126,911,912,915],{},[14,913,914],{},"Почта."," Gmail, Яндекс.Почта. Открыл в браузере, пишешь, отправляешь, всё хранится в твоём аккаунте. Чистое веб-приложение.",[126,917,918,921],{},[14,919,920],{},"Документы и таблицы."," Google Docs, онлайн-редакторы. Несколько человек правят один документ в реальном времени, и это работает прямо во вкладке.",[126,923,924,927],{},[14,925,926],{},"Мессенджеры."," Telegram Web, WhatsApp Web. Тот же чат, что в мобильном приложении, но в браузере.",[126,929,930,933],{},[14,931,932],{},"Таск-трекеры и доски."," Trello, канбан-доски, где карточки перетаскиваешь мышкой, а состояние сохраняется.",[126,935,936,939],{},[14,937,938],{},"CRM и ERP."," Системы для бизнеса: клиенты, сделки, склад, аналитика. Внутренний софт компаний, почти всегда веб-приложение за логином.",[126,941,942,945],{},[14,943,944],{},"Интернет-магазины."," Каталог, корзина, аккаунт, оплата, история заказов. По сути это тоже веб-приложение, просто с публичной витриной.",[126,947,948,951],{},[14,949,950],{},"Онлайн-банки и кабинеты."," Личный кабинет банка, оператора связи, госуслуг. Работа с твоими данными и деньгами прямо в браузере.",[126,953,954,957],{},[14,955,956],{},"Конфигураторы товаров."," Настраиваешь продукт под себя прямо на странице: цвет, комплектацию, надпись, и видишь результат сразу.",[10,959,960,961,964],{},"На последней категории остановлюсь, потому что тут у меня есть живой собственный пример, а не абстрактный Netflix, которым иллюстрируют все подряд. Я делал ",[14,962,963],{},"STAN"," это интерактивный 3D-конфигуратор мерча для бренда одежды. Прямо в браузере менеджер или клиент выбирает изделие (кепку, футболку, худи), перекрашивает детали в любой цвет, накладывает логотип и текст, крутит 3D-модель на 360°, а потом сохраняет конфигурацию, делится ссылкой на согласование и выгружает производственное задание в PDF для цеха.",[10,966,967,968,971,972,975,976,980],{},"Это стопроцентное веб-приложение по всем маркерам из начала статьи: живое состояние в браузере, реальная логика, работа с данными, действие вместо чтения. Технически 3D рендерит ",[14,969,970],{},"Three.js"," поверх WebGL, сцена описана через ",[14,973,974],{},"React Three Fiber",", состояние держит Zustand, а PDF собирает jsPDF на лету из текущей конфигурации. Главная инженерная боль таких проектов это вес 3D-моделей: тяжёлый файл убивает загрузку на телефоне. Я прогонял модели через glTF-transform и meshoptimizer, чтобы сцена стартовала быстро даже на мобильном. Полный разбор с деталями стека и функционала есть в ",[442,977,979],{"href":978},"/cases/3d-konfigurator","кейсе 3D-конфигуратора",". Это к тому, что веб-приложение это не обязательно скучная таблица, в браузере сегодня живёт и полноценная 3D-графика.",[22,982,984],{"id":983},"веб-приложение-мобильное-или-pwa-что-выбрать","Веб-приложение, мобильное или PWA: что выбрать",[10,986,987],{},"Частый развилочный вопрос перед стартом проекта: делать веб, нативное мобильное приложение или PWA. Короткий честный разбор без фанатизма, потому что серебряной пули тут нет.",[10,989,990,992],{},[14,991,16],{}," открывается по ссылке в любом браузере, ставить ничего не надо, обновляется мгновенно у всех сразу, и оно одно на все платформы. Дешевле и быстрее в запуске. Слабее в доступе к железу телефона и в тяжёлой графике.",[10,994,995,998],{},[14,996,997],{},"Нативное мобильное приложение"," ты скачиваешь из App Store или Google Play. Оно лучше всех работает с камерой, датчиками, фоновыми уведомлениями, даёт максимум производительности. Плата: под каждую платформу часто отдельная разработка, обновления идут через модерацию магазина, и пользователя ещё надо уговорить установить.",[10,1000,1001,1003],{},[14,1002,536],{}," это компромисс между ними. Тот же веб, но с иконкой на экране, офлайном и push. Не даёт всей мощи нативного, зато одно на всё и без магазина.",[340,1005,1006],{},[123,1007,1008,1014,1020],{},[126,1009,1010,1013],{},[14,1011,1012],{},"Веб:"," один продукт на все устройства, мгновенные обновления, дёшево и быстро запустить.",[126,1015,1016,1019],{},[14,1017,1018],{},"Нативное:"," максимум производительности и доступ ко всему железу телефона.",[126,1021,1022,1025],{},[14,1023,1024],{},"PWA:"," установка и офлайн без App Store, одна кодовая база с вебом.",[354,1027,1028],{},[123,1029,1030,1035,1040],{},[126,1031,1032,1034],{},[14,1033,1012],{}," слабее с железом устройства, нет полноценных фоновых уведомлений везде.",[126,1036,1037,1039],{},[14,1038,1018],{}," дороже, дольше, отдельно под iOS и Android, обновления через модерацию.",[126,1041,1042,1044],{},[14,1043,1024],{}," урезанные возможности на iOS, не заменяет нативное в тяжёлых сценариях.",[10,1046,1047],{},"Как я это решаю на практике. Если продукт про контент, работу с данными и охват максимума людей без барьеров, начинаю с веб-приложения, при желании усиливаю до PWA. Если ядро продукта это камера, карты, офлайн-навигация или тяжёлая графика в фоне, тогда нативное оправдано. Очень часто разумный путь такой: сначала веб или PWA, чтобы быстро проверить идею и собрать аудиторию, а нативное приложение уже потом, когда понятно, что оно реально нужно.",[22,1049,1051],{"id":1050},"ограничения-веб-приложений-о-которых-честно-стоит-знать","Ограничения веб-приложений, о которых честно стоит знать",[10,1053,1054],{},"Раз статья от практика, будет нечестно рисовать только плюсы. У веб-приложений есть слабые места, и понимать их полезно до старта, а не после.",[10,1056,1057,1060],{},[14,1058,1059],{},"Зависимость от сети."," Веб-приложение по природе живёт в связке с сервером. Пропал интернет, и без специальных ухищрений вроде PWA-кеша большая часть функций отваливается. Нативное приложение переживёт офлайн легче.",[10,1062,1063,1066],{},[14,1064,1065],{},"Безопасность на клиенте."," Помнишь тезис про то, что браузеру нельзя доверять важное. Это ограничение по дизайну. Весь клиентский код виден пользователю, его можно изучить и попытаться обмануть. Поэтому любую проверку, которая что-то решает (цена, права, доступ), обязательно дублируют на сервере. Инженер, который выносит критичную логику на клиент, закладывает дыру.",[10,1068,1069,1072,1073,392],{},[14,1070,1071],{},"SEO у чистого SPA."," Одностраничное приложение отдаёт поисковику пустой каркас, а контент дорисовывает скриптом. Робот это не всегда переваривает, и страница может не попасть в индекс как надо. Решается через SSR или пререндер, но это отдельная работа, а не бесплатный бонус. Тему индексации и скорости я подробнее раскрывал в разборе про ",[442,1074,1075],{"href":575},"ускорение сайта",[10,1077,1078,1081],{},[14,1079,1080],{},"Производительность на слабых устройствах."," Чем больше логики в браузере, тем тяжелее приложению на дешёвом телефоне. То, что летает на твоём ноутбуке, может подтормаживать у реального пользователя с бюджетным Android. Это не повод отказываться от веба, это повод не забывать про оптимизацию.",[10,1083,1084],{},"Теперь про сильные стороны, которые вытекают из той же архитектуры и часто перевешивают минусы. Обновляемость: выкатил новую версию на сервер, и она мгновенно у всех, без установки и модерации магазина. Кроссплатформенность: одно приложение открывается на любом устройстве с браузером. Масштабируемость: серверную часть можно наращивать под нагрузку отдельно от клиента. Интеграции: через API веб-приложение легко сшивается с CRM, оплатой, доставкой, внешними сервисами. Именно за этот набор веб и стал стандартом для большинства бизнес-задач.",[22,1086,1088],{"id":1087},"сколько-стоит-и-как-заказать-веб-приложение","Сколько стоит и как заказать веб-приложение",[10,1090,1091],{},"Про цену коротко и честно, без выдуманных цифр. Универсального прайса на веб-приложение нет и быть не может, потому что под этим словом прячется и простой личный кабинет на пару экранов, и целая CRM с ролями, интеграциями и аналитикой. Это как спросить «сколько стоит машина»: смотря какая.",[10,1093,1094],{},"От чего реально зависит стоимость:",[123,1096,1097,1103,1109,1115,1121],{},[126,1098,1099,1102],{},[14,1100,1101],{},"Объём логики и число сценариев."," Один поток «зашёл, заполнил, отправил» или десяток ролей со своими правами и путями.",[126,1104,1105,1108],{},[14,1106,1107],{},"Виды и сложность интерфейса."," Простая форма или насыщенный дашборд с графиками и 3D.",[126,1110,1111,1114],{},[14,1112,1113],{},"Интеграции."," Оплата, доставка, 1С, CRM, внешние API. Каждая связка это работа.",[126,1116,1117,1120],{},[14,1118,1119],{},"Данные и нагрузка."," Сотня записей или миллионы, десять пользователей или десять тысяч разом.",[126,1122,1123,1126],{},[14,1124,1125],{},"Модель рендеринга."," SPA, SSR или гибрид под задачу, о чём говорили выше.",[10,1128,1129,1130,1133],{},"У меня разработка веб-приложения стартует ",[14,1131,1132],{},"от 100 000 ₽",", а точную вилку я называю после короткого брифа, когда становится ясно, что именно надо строить. Я не считаю правильным пугать заказчика с порога большой цифрой или, наоборот, обещать «приложение за 20 тысяч», зная, что за эти деньги выйдет пустышка. Сначала разберёмся, что за задача, потом честная оценка.",[10,1135,1136,1137,1140],{},"Если думаешь о своём проекте и хочешь понять, реально ли его собрать и во что примерно обойдётся, ",[442,1138,1139],{"href":899},"напиши мне про задачу",". Расскажу прямо, что твоя идея это отдельное приложение или достаточно доработать существующий сайт, и с чего дешевле начать.",{"title":1142,"searchDepth":1143,"depth":1143,"links":1144},"",2,[1145,1146,1147,1148,1156,1163,1164,1165,1166],{"id":24,"depth":1143,"text":25},{"id":102,"depth":1143,"text":103},{"id":272,"depth":1143,"text":273},{"id":322,"depth":1143,"text":323,"children":1149},[1150,1152,1153,1154,1155],{"id":330,"depth":1151,"text":331},3,{"id":372,"depth":1151,"text":373},{"id":424,"depth":1151,"text":425},{"id":477,"depth":1151,"text":478},{"id":529,"depth":1151,"text":530},{"id":704,"depth":1143,"text":705,"children":1157},[1158,1159,1160,1161,1162],{"id":711,"depth":1151,"text":712},{"id":739,"depth":1151,"text":740},{"id":761,"depth":1151,"text":762},{"id":783,"depth":1151,"text":784},{"id":800,"depth":1151,"text":801},{"id":903,"depth":1143,"text":904},{"id":983,"depth":1143,"text":984},{"id":1050,"depth":1143,"text":1051},{"id":1087,"depth":1143,"text":1088},"frontend","/images/blog/chto-takoe-veb-prilozhenie.webp","2026-07-04","Открой сейчас почту или заметки в браузере. Ты уже внутри веб-приложения, просто никогда об этом не думал. Веб-приложение это программа, которая работает прямо в браузере, без скачивания и установки: открыл вкладку и сразу пользуешься полноценным софтом. Ты не просто читаешь готовый текст, как в газете, а действуешь. Пишешь письмо, двигаешь задачи в доске, собираешь заказ в корзине, редактируешь документ, который тут же сохраняется. Вот что такое веб-приложение, если объяснять простыми словами: софт, который живёт по ссылке, а не в папке на диске.",null,"md",[1174,1177,1180,1183,1186,1189,1192,1195,1198,1201,1204,1207],{"q":1175,"a":1176},"Что такое веб-приложение простыми словами?","Веб-приложение это программа, которая работает прямо в браузере, без скачивания и установки. Ты открываешь вкладку и сразу пользуешься полноценным софтом: пишешь письмо, редактируешь документ, ведёшь задачи, собираешь заказ. От обычного сайта оно отличается тем, что ты не просто читаешь готовый текст, а действуешь: создаёшь и меняешь данные, работаешь под своим аккаунтом, а приложение всё это сохраняет и обрабатывает. Почта, Google Docs, Telegram Web, онлайн-банк, CRM это всё веб-приложения.",{"q":1178,"a":1179},"Чем веб-приложение отличается от сайта?","Правило простое: если ты в основном читаешь, это сайт; если создаёшь, меняешь и обрабатываешь данные, это веб-приложение. Сайт доставляет тебе готовый контент, как газета. Веб-приложение это софт: у него есть состояние, бизнес-логика, работа с базой данных, аккаунты и сессии, API между интерфейсом и сервером. Граница размытая, есть спектр: блог с формой ближе к сайту, а личный кабинет с корзиной и оплатой это уже полноценное приложение.",{"q":1181,"a":1182},"Какие бывают виды веб-приложений?","По способу сборки и отдачи страниц выделяют несколько типов. MPA (многостраничное) собирает каждую страницу на сервере. SPA (одностраничное) грузит один каркас и дальше живёт в браузере без перезагрузок. SSR это серверный рендеринг, когда сервер отдаёт готовый HTML на каждый запрос. SSG и ISR это заранее собранная статика и её частичное обновление. PWA это веб-приложение, которое ставится на устройство, работает офлайн и шлёт push. На практике современные фреймворки смешивают эти режимы под конкретную страницу.",{"q":1184,"a":1185},"На чём делают веб-приложения?","Веб-приложение собирают из нескольких слоёв. Фронтенд (интерфейс в браузере) чаще всего пишут на React, Vue или Angular, поверх них берут мета-фреймворки Nuxt и Next.js. Бэкенд (логику на сервере) делают на Node.js, Python или PHP. Данные хранят в базе: PostgreSQL, MySQL или связке вроде Supabase. Фронт и бэк общаются через API (REST или GraphQL). Готовое приложение живёт на хостинге и попадает туда через деплой. Мой рабочий стек это Nuxt/Vue и React/Next плюс Node и PostgreSQL.",{"q":1187,"a":1188},"Чем веб-приложение отличается от мобильного приложения?","Мобильное приложение ты скачиваешь из App Store или Google Play и ставишь на телефон, оно живёт отдельной иконкой и работает под конкретную ОС. Веб-приложение открывается по ссылке в браузере на любом устройстве, ничего ставить не надо, обновляется мгновенно у всех сразу. Мобильное лучше в доступе к железу (камера, датчики, фоновые уведомления) и в производительности графики. Веб дешевле, быстрее в запуске и одно на все платформы. Промежуточный вариант это PWA: веб-приложение, которое можно поставить на экран как обычное.",{"q":1190,"a":1191},"Что такое PWA?","PWA (progressive web app) это веб-приложение, которое ведёт себя почти как нативное. Его можно установить на телефон или компьютер из браузера, без магазина приложений, у него появляется иконка на экране. За счёт технологии service worker оно частично работает офлайн, кеширует данные и умеет присылать push-уведомления. По сути это тот же сайт в браузере, которому дали суперспособности приложения. Хороший компромисс, когда нативное приложение делать дорого, а веб хочется сделать удобнее и ближе к телефону.",{"q":1193,"a":1194},"SPA или MPA: что лучше?","Зависит от задачи, универсального победителя нет. MPA (многостраничное) проще для SEO и контентных проектов: каждая страница это отдельный URL с готовым HTML. SPA (одностраничное) даёт ощущение мгновенного, приложения без перезагрузок и хорошо подходит для насыщенных интерфейсов вроде дашбордов и редакторов. Минус чистого SPA это тяжёлый старт и сложности с индексацией. Поэтому на практике чаще берут не крайности, а SSR или гибрид на Nuxt или Next.js: серверный HTML для скорости и SEO плюс живой интерактив в браузере.",{"q":1196,"a":1197},"Что такое клиентская сторона веб-приложения?","Клиентская сторона это всё, что происходит в браузере пользователя: интерфейс, кнопки, формы, анимации, часть логики и хранение временного состояния. Ей противопоставлена серверная сторона, где живут основная бизнес-логика, база данных и то, что нельзя доверять браузеру, например проверка прав и оплата. Клиент отправляет запросы, сервер их обрабатывает и возвращает данные. Грубо: клиентская сторона отвечает за то, что ты видишь и трогаешь, серверная за то, что нужно надёжно посчитать и сохранить.",{"q":1199,"a":1200},"Что такое SSR простыми словами?","SSR (server-side rendering, серверный рендеринг) это когда сервер сам собирает готовую HTML-страницу и отдаёт её браузеру уже наполненной, а не пустой каркас, который потом дорисовывает JavaScript. Плюс в том, что пользователь и поисковик видят контент сразу, первый экран появляется быстрее, индексация проще. Плата: сервер работает на каждый запрос. SSR умеют Nuxt (для Vue) и Next.js (для React). Это золотая середина между быстрым для SEO многостраничным сайтом и живым одностраничным приложением.",{"q":1202,"a":1203},"Сколько стоит разработать веб-приложение?","Разброс огромный, потому что под словом веб-приложение прячется и простой личный кабинет, и целая CRM. Цену определяют объём логики, число ролей и сценариев, интеграции (оплата, доставка, 1С, внешние API), сложность интерфейса и нагрузка. У меня разработка веб-приложения стартует от 100 000 ₽, а точную вилку я называю после короткого брифа, когда понятно, что именно нужно строить. Готовые конструкторы дешевле на входе, но упираются в потолок, как только логика выходит за типовые шаблоны.",{"q":1205,"a":1206},"Можно ли сделать веб-приложение бесплатно?","Прототип или учебный проект собрать бесплатно реально: есть бесплатные тарифы хостинга, открытые фреймворки, no-code конструкторы. Но полноценное рабочее приложение с аккаунтами, оплатой, базой данных и поддержкой бесплатным не бывает. За кадром всегда есть расходы: домен, хостинг, база, платёжный шлюз, а главное время того, кто это строит и потом чинит. No-code годится, чтобы проверить идею. Как только доходит до реальной логики и нагрузки, дешевле и надёжнее заказать нормальную разработку.",{"q":1208,"a":1209},"Нужен ли программист, чтобы сделать веб-приложение?","Для простого прототипа на конструкторе можно обойтись без разработчика. Но любое серьёзное веб-приложение это база данных, аккаунты, платежи, безопасность и логика, которую конструктор либо не тянет, либо тянет криво. Тут нужен инженер, который спроектирует архитектуру и не даст проекту рассыпаться на росте. Я как раз занимаюсь такой разработкой под ключ: от идеи и структуры данных до запуска и поддержки. Конструктор хорош для гипотезы, живой продукт с реальными пользователями лучше строить руками.",false,{},"Что такое веб-приложение простыми словами: чем отличается от сайта, как работает, какие виды и на чём делают. Разбор от fullstack-практика.","Что такое веб-приложение простыми словами",true,"/chto-takoe-veb-prilozhenie",26,{"title":5,"description":1170},"chto-takoe-veb-prilozhenie","4shekTfb98PA97I2jx3o1dFENucFz4IkueNAXwbILRo",[1221,1227,1233,1239,1244,1249,1254,1258,1262,1266,1270,1274,1278,1282,1286,1290,1294,1299,1300,1304,1309,1315,1320,1325],{"slug":1222,"title":1223,"excerpt":1171,"category":1167,"cover":1224,"date":1225,"updated":1225,"readingMinutes":1226,"featured":1210},"3d-konfigurator-tovara-dlya-sajta","3D-конфигуратор товара для сайта: как устроен, сколько стоит и когда окупается","/images/blog/3d-konfigurator-tovara-dlya-sajta.webp","2026-07-26",17,{"slug":1228,"title":1229,"excerpt":1171,"category":1230,"cover":1231,"date":1225,"updated":1225,"readingMinutes":1232,"featured":1210},"avtomatizaciya-tenderov-na-zakaz","Автоматизация тендеров: когда агрегатора мало и нужна своя система","backend","/images/blog/avtomatizaciya-tenderov-na-zakaz.webp",18,{"slug":1234,"title":1235,"excerpt":1171,"category":1236,"cover":1237,"date":1225,"updated":1225,"readingMinutes":1238,"featured":1210},"chto-vhodit-v-tehnicheskoe-seo","Что входит в техническое SEO: разбор глазами разработчика","seo","/images/blog/chto-vhodit-v-tehnicheskoe-seo.webp",14,{"slug":1240,"title":1241,"excerpt":1171,"category":1167,"cover":1242,"date":1225,"updated":1225,"readingMinutes":1243,"featured":1214},"fullstack-razrabotchik","Кто такой fullstack-разработчик и когда бизнесу выгоднее нанять одного, а не команду","/images/blog/fullstack-razrabotchik.webp",20,{"slug":1245,"title":1246,"excerpt":1171,"category":1167,"cover":1247,"date":1225,"updated":1225,"readingMinutes":1248,"featured":1210},"headless-cms-dlya-nuxt","Headless CMS для Nuxt: @nuxt/content, Strapi или WordPress","/images/blog/headless-cms-dlya-nuxt.webp",15,{"slug":1250,"title":1251,"excerpt":1171,"category":1167,"cover":1252,"date":1225,"updated":1225,"readingMinutes":1253,"featured":1210},"kak-nanyat-vue-nuxt-razrabotchika","Как нанять Vue/Nuxt-разработчика: гид практика на 2026 год","/images/blog/kak-nanyat-vue-nuxt-razrabotchika.webp",16,{"slug":1255,"title":1256,"excerpt":1171,"category":1236,"cover":1257,"date":1225,"updated":1225,"readingMinutes":1253,"featured":1210},"kak-vybrat-podryadchika-dlya-razrabotki-sajta","Как выбрать подрядчика для разработки сайта: фрилансер, студия или solo-разработчик","/images/blog/kak-vybrat-podryadchika-dlya-razrabotki-sajta.webp",{"slug":1259,"title":1260,"excerpt":1171,"category":1167,"cover":1261,"date":1225,"updated":1225,"readingMinutes":1232,"featured":1210},"nuxt-ili-next-chto-vybrat","Nuxt или Next: что выбрать для проекта в 2026","/images/blog/nuxt-ili-next-chto-vybrat.webp",{"slug":1263,"title":1264,"excerpt":1171,"category":1230,"cover":1265,"date":1225,"updated":1225,"readingMinutes":1238,"featured":1210},"programma-dlya-rascheta-tenderov","Программа для расчёта тендеров: как считать себестоимость заявки и когда нужна своя система","/images/blog/programma-dlya-rascheta-tenderov.webp",{"slug":1267,"title":1268,"excerpt":1171,"category":1230,"cover":1269,"date":1225,"updated":1225,"readingMinutes":1243,"featured":1210},"razrabotka-crm-na-zakaz","Разработка CRM на заказ: когда своя система выгоднее коробочной","/images/blog/razrabotka-crm-na-zakaz.webp",{"slug":1271,"title":1272,"excerpt":1171,"category":1167,"cover":1273,"date":1225,"updated":1225,"readingMinutes":1253,"featured":1210},"razrabotka-sajta-na-nuxt","Разработка сайта на Nuxt: когда фреймворк, а не Тильда","/images/blog/razrabotka-sajta-na-nuxt.webp",{"slug":1275,"title":1276,"excerpt":1171,"category":1230,"cover":1277,"date":1225,"updated":1225,"readingMinutes":1232,"featured":1210},"razrabotka-veb-prilozheniya-na-zakaz","Разработка веб-приложения на заказ: этапы, стек, сроки и цена","/images/blog/razrabotka-veb-prilozheniya-na-zakaz.webp",{"slug":1279,"title":1280,"excerpt":1171,"category":1236,"cover":1281,"date":1225,"updated":1225,"readingMinutes":1232,"featured":1210},"seo-dlya-nuxt","SEO для Nuxt: полный гайд по индексации и метатегам","/images/blog/seo-dlya-nuxt.webp",{"slug":1283,"title":1284,"excerpt":1171,"category":1236,"cover":1285,"date":1225,"updated":1225,"readingMinutes":1253,"featured":1210},"skolko-stoit-korporativnyj-sajt","Сколько стоит корпоративный сайт в 2026 году","/images/blog/skolko-stoit-korporativnyj-sajt.webp",{"slug":1287,"title":1288,"excerpt":1171,"category":1236,"cover":1289,"date":1225,"updated":1225,"readingMinutes":1238,"featured":1210},"skolko-stoit-lending","Сколько стоит разработка лендинга в 2026 году: честные цены","/images/blog/skolko-stoit-lending.webp",{"slug":1291,"title":1292,"excerpt":1171,"category":1230,"cover":1293,"date":1225,"updated":1225,"readingMinutes":1243,"featured":1210},"skolko-stoit-razrabotat-saas","Разработка SaaS: сколько стоит и с чего начать фаундеру","/images/blog/skolko-stoit-razrabotat-saas.webp",{"slug":1295,"title":1296,"excerpt":1171,"category":1297,"cover":1298,"date":1225,"updated":1225,"readingMinutes":1248,"featured":1210},"zakazat-razrabotku-internet-magazina","Заказать разработку интернет-магазина: что входит, как проходит работа и как принять результат","ecommerce","/images/blog/zakazat-razrabotku-internet-magazina.webp",{"slug":1218,"title":5,"excerpt":1171,"category":1167,"cover":1168,"date":1169,"updated":1169,"readingMinutes":1216,"featured":1210},{"slug":1301,"title":1302,"excerpt":1171,"category":1236,"cover":1303,"date":1169,"updated":1169,"readingMinutes":1248,"featured":1210},"kak-proverit-skorost-sajta","Как проверить скорость сайта и как читать отчёт","/images/blog/kak-proverit-skorost-sajta.webp",{"slug":1305,"title":1306,"excerpt":1171,"category":1236,"cover":1307,"date":1169,"updated":1169,"readingMinutes":1308,"featured":1210},"skolko-stoit-sdelat-sajt","Сколько стоит сделать сайт под ключ в 2026 году","/images/blog/skolko-stoit-sdelat-sajt.webp",22,{"slug":1310,"title":1311,"excerpt":1171,"category":1297,"cover":1312,"date":1313,"updated":1313,"readingMinutes":1314,"featured":1210},"kak-sdelat-internet-magazin","Как сделать интернет-магазин с нуля: полный разбор от разработчика","/images/blog/kak-sdelat-internet-magazin.webp","2026-07-03",33,{"slug":1316,"title":1317,"excerpt":1171,"category":1236,"cover":1318,"date":1313,"updated":1313,"readingMinutes":1319,"featured":1210},"kak-uskorit-sajt","Как ускорить сайт: от замера в DevTools до архитектуры","/images/blog/kak-uskorit-sajt.webp",34,{"slug":1321,"title":1322,"excerpt":1171,"category":1297,"cover":1323,"date":1313,"updated":1313,"readingMinutes":1324,"featured":1210},"platforma-dlya-internet-magazina","На чём сделать интернет-магазин: конструктор, CMS или кастом","/images/blog/platforma-dlya-internet-magazina.webp",24,{"slug":1326,"title":1327,"excerpt":1171,"category":1297,"cover":1328,"date":1313,"updated":1313,"readingMinutes":1329,"featured":1210},"skolko-stoit-internet-magazin","Сколько стоит интернет-магазин в 2026 году","/images/blog/skolko-stoit-internet-magazin.webp",12,1792480043088]