[{"data":1,"prerenderedAt":1251},["ShallowReactive",2],{"blog-post-ru-chto-takoe-veb-prilozhenie":3,"blog-list-ru":1216},{"id":4,"title":5,"body":6,"category":1163,"cover":1164,"date":1165,"description":1166,"excerpt":1167,"extension":1168,"faq":1169,"featured":1206,"meta":1207,"metaDescription":1208,"metaTitle":1209,"navigation":1210,"path":1211,"readingMinutes":1212,"seo":1213,"slug":1214,"stem":1214,"updated":1165,"__hash__":1215},"blogRu/chto-takoe-veb-prilozhenie.md","Что такое веб-приложение: как устроено, виды и на чём делают",{"type":7,"value":8,"toc":1137},"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,441,454,467,470,474,486,493,506,519,522,526,533,546,559,562,565,574,698,702,705,709,724,733,737,755,759,777,781,794,798,809,812,890,897,901,904,954,961,977,981,984,989,995,1000,1022,1041,1044,1048,1051,1057,1063,1072,1078,1081,1085,1088,1091,1123,1130],[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],{},"Золотая середина между MPA и SPA. ",[14,430,431],{},"SSR"," (server-side rendering) это когда сервер сам собирает готовую HTML-страницу с контентом и отдаёт браузеру, а уже потом JavaScript «оживляет» её и превращает в живое приложение без перезагрузок. Пользователь и поисковик видят контент сразу, а дальше получают всю плавность SPA. Так работают современные фреймворки ",[14,434,435],{},"Nuxt"," (для Vue) и ",[14,438,439],{},"Next.js"," (для React). Мой основной рабочий инструмент это как раз Nuxt.",[340,442,443],{},[123,444,445,448,451],{},[126,446,447],{},"Быстрый первый экран: контент виден сразу, не ждём загрузки скриптов.",[126,449,450],{},"Дружелюбно к SEO: поисковик получает готовый HTML.",[126,452,453],{},"Дальше работает как SPA: плавные переходы, живой интерактив.",[354,455,456],{},[123,457,458,461,464],{},[126,459,460],{},"Нужен живой сервер, который рендерит на каждый запрос, это нагрузка и стоимость.",[126,462,463],{},"Есть ловушка гидрации: контент виден, но кликать нельзя, пока не догрузился JS.",[126,465,466],{},"Сложнее в настройке, чем чистый MPA или SPA.",[10,468,469],{},"Когда брать: почти всё, где нужны и скорость с SEO, и живой интерфейс. Магазины, маркетплейсы, публичные части сервисов.",[328,471,473],{"id":472},"ssg-и-isr-статика-и-её-обновление","SSG и ISR (статика и её обновление)",[10,475,476,477,480,481,485],{},"Ещё быстрее. ",[14,478,479],{},"SSG"," (static site generation) это когда все страницы собираются заранее, один раз при сборке, в готовые HTML-файлы. Дальше их раздаёт хоть простой файловый сервер, хоть CDN, и это самое быстрое, что бывает: рендерить на лету нечего, ломаться нечему. Сам evolkov.tech собран именно так, через ",[482,483,484],"code",{},"nuxt generate",", поэтому грузится мгновенно.",[10,487,488,489,492],{},"Минус статики в том, что при изменении контента надо пересобирать. На тысяче страниц это долго. Тут выручает ",[14,490,491],{},"ISR"," (incremental static regeneration): страницы статические, но сервер умеет пересобирать отдельные из них по расписанию или по запросу, не трогая остальные. Свежесть почти как у SSR, скорость почти как у SSG.",[340,494,495],{},[123,496,497,500,503],{},[126,498,499],{},"Максимальная скорость и минимальный TTFB: отдаётся готовый файл.",[126,501,502],{},"Нечему ломаться в рантайме, дёшево хостить, легко масштабировать.",[126,504,505],{},"Отлично индексируется: HTML готов заранее.",[354,507,508],{},[123,509,510,513,516],{},[126,511,512],{},"Чистый SSG плохо подходит для часто меняющихся и персональных данных.",[126,514,515],{},"Большой билд на тысячах страниц становится долгим (тут и спасает ISR).",[126,517,518],{},"Динамику всё равно приходится добавлять поверх, отдельным слоем.",[10,520,521],{},"Когда брать: блоги, документация, лендинги, витрины, контентные проекты. ISR: большие каталоги, где нужна и скорость, и относительная свежесть.",[328,523,525],{"id":524},"pwa-устанавливаемое-приложение","PWA (устанавливаемое приложение)",[10,527,528,529,532],{},"Особняком стоит ",[14,530,531],{},"PWA"," (progressive web app). Это не столько отдельный способ рендеринга, сколько надстройка, которая превращает веб-приложение почти в нативное. PWA можно установить на телефон или компьютер прямо из браузера, без магазина приложений, у него появляется своя иконка на экране. За счёт технологии service worker оно частично работает офлайн, кеширует данные и умеет присылать push-уведомления.",[340,534,535],{},[123,536,537,540,543],{},[126,538,539],{},"Ставится на устройство, живёт иконкой, ощущается как обычное приложение.",[126,541,542],{},"Частично работает офлайн и шлёт push-уведомления.",[126,544,545],{},"Одна кодовая база на веб и на «установленную» версию, без App Store и Google Play.",[354,547,548],{},[123,549,550,553,556],{},[126,551,552],{},"Доступ к железу телефона слабее, чем у нативного приложения.",[126,554,555],{},"Push и установка на iOS исторически урезаны сильнее, чем на Android.",[126,557,558],{},"Не заменяет нативное там, где нужна тяжёлая графика или глубокая интеграция с ОС.",[10,560,561],{},"Когда брать: когда нативное приложение делать дорого, а веб хочется сделать удобнее, ближе к телефону и с офлайном.",[10,563,564],{},"Важная оговорка про честность. В реальной разработке эти виды давно не чистые. Современный Nuxt или Next.js смешивает режимы прямо по страницам: главная и каталог статикой или через SSR ради скорости и SEO, а личный кабинет как SPA ради интерактива. Это называется гибридный рендеринг, и на практике так и делают. Не «выбираем одно на всё приложение», а подбираем режим под каждую часть.",[10,566,567,568,573],{},"И вот тут прямая связь со скоростью. Выбор вида напрямую бьёт по тому, как быстро появляется первый экран, а значит и по Core Web Vitals, и по позициям в поиске. Ниже собрал виды в таблицу по этим параметрам. А как именно чинить скорость, я подробно разобрал в отдельной статье, ",[569,570,572],"a",{"href":571},"/blog/kak-uskorit-sajt","как ускорить сайт",": там про DevTools, бандл и архитектуру рендеринга по шагам. Тут я не переучиваю оптимизацию, тут про то, что это за виды и когда какой брать.",[33,575,576,595],{},[36,577,578],{},[39,579,580,583,586,589,592],{},[42,581,582],{},"Вид",[42,584,585],{},"Скорость первого экрана",[42,587,588],{},"SEO",[42,590,591],{},"Динамика/интерактив",[42,593,594],{},"Для чего",[49,596,597,615,633,649,665,681],{},[39,598,599,603,606,609,612],{},[54,600,601],{},[14,602,337],{},[54,604,605],{},"Быстро",[54,607,608],{},"Отлично",[54,610,611],{},"Слабая",[54,613,614],{},"Контент, каталоги, старые сайты",[39,616,617,621,624,627,630],{},[54,618,619],{},[14,620,379],{},[54,622,623],{},"Медленный старт",[54,625,626],{},"Слабое из коробки",[54,628,629],{},"Максимум",[54,631,632],{},"Кабинеты, дашборды, админки",[39,634,635,639,641,643,646],{},[54,636,637],{},[14,638,431],{},[54,640,605],{},[54,642,608],{},[54,644,645],{},"Высокая",[54,647,648],{},"Магазины, публичные сервисы",[39,650,651,655,657,659,662],{},[54,652,653],{},[14,654,479],{},[54,656,629],{},[54,658,608],{},[54,660,661],{},"Низкая (статика)",[54,663,664],{},"Блоги, лендинги, документация",[39,666,667,671,673,675,678],{},[54,668,669],{},[14,670,491],{},[54,672,629],{},[54,674,608],{},[54,676,677],{},"Средняя",[54,679,680],{},"Большие каталоги",[39,682,683,687,690,692,695],{},[54,684,685],{},[14,686,531],{},[54,688,689],{},"Зависит от базы",[54,691,689],{},[54,693,694],{},"Высокая + офлайн",[54,696,697],{},"Мобильный опыт без магазина",[22,699,701],{"id":700},"на-чём-делают-веб-приложения","На чём делают веб-приложения",[10,703,704],{},"Ещё один вопрос, который почти везде замазан парой баззвордов вроде «HTML, CSS, JavaScript и всё». На деле веб-приложение это не один язык, а несколько слоёв, у каждого своя задача и свои инструменты. Разберу стек по-честному, как fullstack-разработчик, который работает со всеми слоями сразу.",[328,706,708],{"id":707},"фронтенд-интерфейс-в-браузере","Фронтенд: интерфейс в браузере",[10,710,711,714,715,717,718,720,721,723],{},[14,712,713],{},"Фронтенд"," это всё, что пользователь видит и трогает. Основа тут это три вещи: HTML (структура), CSS (внешний вид), JavaScript (поведение). Но на голом JavaScript большое приложение писать больно, поэтому берут фреймворки. Три главных это ",[14,716,383],{}," (от Meta, самый популярный), ",[14,719,387],{}," (гибкий и приятный, мой любимый) и ",[14,722,391],{}," (тяжёлый, чаще в корпоративных системах).",[10,725,726,727,729,730,732],{},"Поверх фреймворков ставят мета-фреймворки, которые добавляют серверный рендеринг, маршрутизацию и сборку из коробки: ",[14,728,435],{}," для Vue и ",[14,731,439],{}," для React. Именно они дают тот самый SSR и гибридный рендеринг, о которых шла речь выше. Мой основной стек это Nuxt/Vue, а под проекты на React я беру Next.js.",[328,734,736],{"id":735},"бэкенд-логика-на-сервере","Бэкенд: логика на сервере",[10,738,739,742,743,746,747,750,751,754],{},[14,740,741],{},"Бэкенд"," это мозг приложения, невидимая часть на сервере. Он обрабатывает запросы, крутит бизнес-логику, ходит в базу, проверяет права, считает и решает. Языков и платформ тут много. ",[14,744,745],{},"Node.js"," позволяет писать бэкенд на том же JavaScript, что и фронт, и это удобно fullstack-разработчику: один язык на весь стек. ",[14,748,749],{},"Python"," любят за читаемость и за силу в данных и в ML. ",[14,752,753],{},"PHP"," до сих пор держит огромную долю веба (на нём, например, WordPress). Есть ещё Go, Java, C#, у каждого своя ниша.",[328,756,758],{"id":757},"база-данных-где-живут-данные","База данных: где живут данные",[10,760,761,764,765,768,769,772,773,776],{},[14,762,763],{},"База данных"," это память приложения. Тут хранятся пользователи, заказы, тексты, всё, что должно пережить перезагрузку. Условно делятся на два лагеря. Реляционные (SQL) хранят данные строгими таблицами со связями: ",[14,766,767],{},"PostgreSQL"," (мощная, моя основная) и ",[14,770,771],{},"MySQL"," (проверенная классика). Нереляционные (NoSQL) вроде MongoDB гибче по структуре. Отдельно стоит упомянуть ",[14,774,775],{},"Supabase",": это готовая обвязка вокруг PostgreSQL, которая сразу даёт базу, авторизацию и API, и здорово ускоряет старт проекта.",[328,778,780],{"id":779},"api-связь-между-фронтом-и-бэком","API: связь между фронтом и бэком",[10,782,783,785,786,789,790,793],{},[14,784,296],{}," это язык, на котором интерфейс договаривается с сервером. Фронт не лезет в базу напрямую, он вежливо спрашивает у бэкенда через API: дай мне заказы этого пользователя, сохрани вот это. Два главных стиля: ",[14,787,788],{},"REST"," (простой, на обычных HTTP-запросах, самый распространённый) и ",[14,791,792],{},"GraphQL"," (клиент сам описывает, какие именно поля ему нужны, удобно для сложных данных). Без API-слоя фронт и бэк это две несвязанные половины.",[328,795,797],{"id":796},"хостинг-и-деплой-где-всё-это-живёт","Хостинг и деплой: где всё это живёт",[10,799,800,801,804,805,808],{},"Готовое приложение должно где-то работать и быть доступным по адресу. ",[14,802,803],{},"Хостинг"," это сервер, на котором приложение крутится: обычная VPS, облако вроде Vercel или Cloudflare, свой физический сервер. ",[14,806,807],{},"Деплой"," это процесс выкладки кода на этот сервер: собрали проект, отправили на хостинг, он стал доступен пользователям. Сюда же относятся домен, HTTPS-сертификат и автоматизация через CI/CD, чтобы каждое обновление выкатывалось без ручной возни.",[10,810,811],{},"Соберу всё в таблицу, чтобы стек читался одним взглядом.",[33,813,814,827],{},[36,815,816],{},[39,817,818,821,824],{},[42,819,820],{},"Слой",[42,822,823],{},"Чем делают",[42,825,826],{},"Зачем нужен",[49,828,829,841,853,865,877],{},[39,830,831,835,838],{},[54,832,833],{},[14,834,713],{},[54,836,837],{},"React, Vue, Angular; Nuxt, Next.js",[54,839,840],{},"Интерфейс, всё видимое и интерактив",[39,842,843,847,850],{},[54,844,845],{},[14,846,741],{},[54,848,849],{},"Node.js, Python, PHP",[54,851,852],{},"Логика, обработка, права, расчёты",[39,854,855,859,862],{},[54,856,857],{},[14,858,763],{},[54,860,861],{},"PostgreSQL, MySQL, Supabase",[54,863,864],{},"Хранение данных между визитами",[39,866,867,871,874],{},[54,868,869],{},[14,870,296],{},[54,872,873],{},"REST, GraphQL",[54,875,876],{},"Связь фронтенда и бэкенда",[39,878,879,884,887],{},[54,880,881],{},[14,882,883],{},"Хостинг/деплой",[54,885,886],{},"VPS, Vercel, Cloudflare, CI/CD",[54,888,889],{},"Где приложение живёт и как обновляется",[10,891,892,893,392],{},"Честно про мой стек, чтобы не звучало как реклама всего сразу. Я работаю на связке Nuxt/Vue и React/Next на фронте, Node.js на бэке, PostgreSQL или Supabase под данные. Это не единственно верный набор, у Python и PHP свои сильные стороны. Но именно этот стек даёт быстрый SSR, единый язык на весь проект и понятный путь от прототипа до нагруженного продакшена. Подробнее про то, как я собираю такие проекты под ключ, есть на странице ",[569,894,896],{"href":895},"/uslugi/razrabotka-veb-prilozhenij","разработки веб-приложений",[22,898,900],{"id":899},"примеры-веб-приложений","Примеры веб-приложений",[10,902,903],{},"Теория укладывается в голове, когда видишь её на знакомых продуктах. Ты пользуешься веб-приложениями каждый день, просто не вешал на них ярлык. Пройдусь по категориям.",[123,905,906,912,918,924,930,936,942,948],{},[126,907,908,911],{},[14,909,910],{},"Почта."," Gmail, Яндекс.Почта. Открыл в браузере, пишешь, отправляешь, всё хранится в твоём аккаунте. Чистое веб-приложение.",[126,913,914,917],{},[14,915,916],{},"Документы и таблицы."," Google Docs, онлайн-редакторы. Несколько человек правят один документ в реальном времени, и это работает прямо во вкладке.",[126,919,920,923],{},[14,921,922],{},"Мессенджеры."," Telegram Web, WhatsApp Web. Тот же чат, что в мобильном приложении, но в браузере.",[126,925,926,929],{},[14,927,928],{},"Таск-трекеры и доски."," Trello, канбан-доски, где карточки перетаскиваешь мышкой, а состояние сохраняется.",[126,931,932,935],{},[14,933,934],{},"CRM и ERP."," Системы для бизнеса: клиенты, сделки, склад, аналитика. Внутренний софт компаний, почти всегда веб-приложение за логином.",[126,937,938,941],{},[14,939,940],{},"Интернет-магазины."," Каталог, корзина, аккаунт, оплата, история заказов. По сути это тоже веб-приложение, просто с публичной витриной.",[126,943,944,947],{},[14,945,946],{},"Онлайн-банки и кабинеты."," Личный кабинет банка, оператора связи, госуслуг. Работа с твоими данными и деньгами прямо в браузере.",[126,949,950,953],{},[14,951,952],{},"Конфигураторы товаров."," Настраиваешь продукт под себя прямо на странице: цвет, комплектацию, надпись, и видишь результат сразу.",[10,955,956,957,960],{},"На последней категории остановлюсь, потому что тут у меня есть живой собственный пример, а не абстрактный Netflix, которым иллюстрируют все подряд. Я делал ",[14,958,959],{},"STAN"," это интерактивный 3D-конфигуратор мерча для бренда одежды. Прямо в браузере менеджер или клиент выбирает изделие (кепку, футболку, худи), перекрашивает детали в любой цвет, накладывает логотип и текст, крутит 3D-модель на 360°, а потом сохраняет конфигурацию, делится ссылкой на согласование и выгружает производственное задание в PDF для цеха.",[10,962,963,964,967,968,971,972,976],{},"Это стопроцентное веб-приложение по всем маркерам из начала статьи: живое состояние в браузере, реальная логика, работа с данными, действие вместо чтения. Технически 3D рендерит ",[14,965,966],{},"Three.js"," поверх WebGL, сцена описана через ",[14,969,970],{},"React Three Fiber",", состояние держит Zustand, а PDF собирает jsPDF на лету из текущей конфигурации. Главная инженерная боль таких проектов это вес 3D-моделей: тяжёлый файл убивает загрузку на телефоне. Я прогонял модели через glTF-transform и meshoptimizer, чтобы сцена стартовала быстро даже на мобильном. Полный разбор с деталями стека и функционала есть в ",[569,973,975],{"href":974},"/cases/3d-konfigurator","кейсе 3D-конфигуратора",". Это к тому, что веб-приложение это не обязательно скучная таблица, в браузере сегодня живёт и полноценная 3D-графика.",[22,978,980],{"id":979},"веб-приложение-мобильное-или-pwa-что-выбрать","Веб-приложение, мобильное или PWA: что выбрать",[10,982,983],{},"Частый развилочный вопрос перед стартом проекта: делать веб, нативное мобильное приложение или PWA. Короткий честный разбор без фанатизма, потому что серебряной пули тут нет.",[10,985,986,988],{},[14,987,16],{}," открывается по ссылке в любом браузере, ставить ничего не надо, обновляется мгновенно у всех сразу, и оно одно на все платформы. Дешевле и быстрее в запуске. Слабее в доступе к железу телефона и в тяжёлой графике.",[10,990,991,994],{},[14,992,993],{},"Нативное мобильное приложение"," ты скачиваешь из App Store или Google Play. Оно лучше всех работает с камерой, датчиками, фоновыми уведомлениями, даёт максимум производительности. Плата: под каждую платформу часто отдельная разработка, обновления идут через модерацию магазина, и пользователя ещё надо уговорить установить.",[10,996,997,999],{},[14,998,531],{}," это компромисс между ними. Тот же веб, но с иконкой на экране, офлайном и push. Не даёт всей мощи нативного, зато одно на всё и без магазина.",[340,1001,1002],{},[123,1003,1004,1010,1016],{},[126,1005,1006,1009],{},[14,1007,1008],{},"Веб:"," один продукт на все устройства, мгновенные обновления, дёшево и быстро запустить.",[126,1011,1012,1015],{},[14,1013,1014],{},"Нативное:"," максимум производительности и доступ ко всему железу телефона.",[126,1017,1018,1021],{},[14,1019,1020],{},"PWA:"," установка и офлайн без App Store, одна кодовая база с вебом.",[354,1023,1024],{},[123,1025,1026,1031,1036],{},[126,1027,1028,1030],{},[14,1029,1008],{}," слабее с железом устройства, нет полноценных фоновых уведомлений везде.",[126,1032,1033,1035],{},[14,1034,1014],{}," дороже, дольше, отдельно под iOS и Android, обновления через модерацию.",[126,1037,1038,1040],{},[14,1039,1020],{}," урезанные возможности на iOS, не заменяет нативное в тяжёлых сценариях.",[10,1042,1043],{},"Как я это решаю на практике. Если продукт про контент, работу с данными и охват максимума людей без барьеров, начинаю с веб-приложения, при желании усиливаю до PWA. Если ядро продукта это камера, карты, офлайн-навигация или тяжёлая графика в фоне, тогда нативное оправдано. Очень часто разумный путь такой: сначала веб или PWA, чтобы быстро проверить идею и собрать аудиторию, а нативное приложение уже потом, когда понятно, что оно реально нужно.",[22,1045,1047],{"id":1046},"ограничения-веб-приложений-о-которых-честно-стоит-знать","Ограничения веб-приложений, о которых честно стоит знать",[10,1049,1050],{},"Раз статья от практика, будет нечестно рисовать только плюсы. У веб-приложений есть слабые места, и понимать их полезно до старта, а не после.",[10,1052,1053,1056],{},[14,1054,1055],{},"Зависимость от сети."," Веб-приложение по природе живёт в связке с сервером. Пропал интернет, и без специальных ухищрений вроде PWA-кеша большая часть функций отваливается. Нативное приложение переживёт офлайн легче.",[10,1058,1059,1062],{},[14,1060,1061],{},"Безопасность на клиенте."," Помнишь тезис про то, что браузеру нельзя доверять важное. Это ограничение по дизайну. Весь клиентский код виден пользователю, его можно изучить и попытаться обмануть. Поэтому любую проверку, которая что-то решает (цена, права, доступ), обязательно дублируют на сервере. Инженер, который выносит критичную логику на клиент, закладывает дыру.",[10,1064,1065,1068,1069,392],{},[14,1066,1067],{},"SEO у чистого SPA."," Одностраничное приложение отдаёт поисковику пустой каркас, а контент дорисовывает скриптом. Робот это не всегда переваривает, и страница может не попасть в индекс как надо. Решается через SSR или пререндер, но это отдельная работа, а не бесплатный бонус. Тему индексации и скорости я подробнее раскрывал в разборе про ",[569,1070,1071],{"href":571},"ускорение сайта",[10,1073,1074,1077],{},[14,1075,1076],{},"Производительность на слабых устройствах."," Чем больше логики в браузере, тем тяжелее приложению на дешёвом телефоне. То, что летает на твоём ноутбуке, может подтормаживать у реального пользователя с бюджетным Android. Это не повод отказываться от веба, это повод не забывать про оптимизацию.",[10,1079,1080],{},"Теперь про сильные стороны, которые вытекают из той же архитектуры и часто перевешивают минусы. Обновляемость: выкатил новую версию на сервер, и она мгновенно у всех, без установки и модерации магазина. Кроссплатформенность: одно приложение открывается на любом устройстве с браузером. Масштабируемость: серверную часть можно наращивать под нагрузку отдельно от клиента. Интеграции: через API веб-приложение легко сшивается с CRM, оплатой, доставкой, внешними сервисами. Именно за этот набор веб и стал стандартом для большинства бизнес-задач.",[22,1082,1084],{"id":1083},"сколько-стоит-и-как-заказать-веб-приложение","Сколько стоит и как заказать веб-приложение",[10,1086,1087],{},"Про цену коротко и честно, без выдуманных цифр. Универсального прайса на веб-приложение нет и быть не может, потому что под этим словом прячется и простой личный кабинет на пару экранов, и целая CRM с ролями, интеграциями и аналитикой. Это как спросить «сколько стоит машина»: смотря какая.",[10,1089,1090],{},"От чего реально зависит стоимость:",[123,1092,1093,1099,1105,1111,1117],{},[126,1094,1095,1098],{},[14,1096,1097],{},"Объём логики и число сценариев."," Один поток «зашёл, заполнил, отправил» или десяток ролей со своими правами и путями.",[126,1100,1101,1104],{},[14,1102,1103],{},"Виды и сложность интерфейса."," Простая форма или насыщенный дашборд с графиками и 3D.",[126,1106,1107,1110],{},[14,1108,1109],{},"Интеграции."," Оплата, доставка, 1С, CRM, внешние API. Каждая связка это работа.",[126,1112,1113,1116],{},[14,1114,1115],{},"Данные и нагрузка."," Сотня записей или миллионы, десять пользователей или десять тысяч разом.",[126,1118,1119,1122],{},[14,1120,1121],{},"Модель рендеринга."," SPA, SSR или гибрид под задачу, о чём говорили выше.",[10,1124,1125,1126,1129],{},"У меня разработка веб-приложения стартует ",[14,1127,1128],{},"от 100 000 ₽",", а точную вилку я называю после короткого брифа, когда становится ясно, что именно надо строить. Я не считаю правильным пугать заказчика с порога большой цифрой или, наоборот, обещать «приложение за 20 тысяч», зная, что за эти деньги выйдет пустышка. Сначала разберёмся, что за задача, потом честная оценка.",[10,1131,1132,1133,1136],{},"Если думаешь о своём проекте и хочешь понять, реально ли его собрать и во что примерно обойдётся, ",[569,1134,1135],{"href":895},"напиши мне про задачу",". Расскажу прямо, что твоя идея это отдельное приложение или достаточно доработать существующий сайт, и с чего дешевле начать.",{"title":1138,"searchDepth":1139,"depth":1139,"links":1140},"",2,[1141,1142,1143,1144,1152,1159,1160,1161,1162],{"id":24,"depth":1139,"text":25},{"id":102,"depth":1139,"text":103},{"id":272,"depth":1139,"text":273},{"id":322,"depth":1139,"text":323,"children":1145},[1146,1148,1149,1150,1151],{"id":330,"depth":1147,"text":331},3,{"id":372,"depth":1147,"text":373},{"id":424,"depth":1147,"text":425},{"id":472,"depth":1147,"text":473},{"id":524,"depth":1147,"text":525},{"id":700,"depth":1139,"text":701,"children":1153},[1154,1155,1156,1157,1158],{"id":707,"depth":1147,"text":708},{"id":735,"depth":1147,"text":736},{"id":757,"depth":1147,"text":758},{"id":779,"depth":1147,"text":780},{"id":796,"depth":1147,"text":797},{"id":899,"depth":1139,"text":900},{"id":979,"depth":1139,"text":980},{"id":1046,"depth":1139,"text":1047},{"id":1083,"depth":1139,"text":1084},"frontend","/images/blog/chto-takoe-veb-prilozhenie.webp","2026-07-04","Открой сейчас почту или заметки в браузере. Ты уже внутри веб-приложения, просто никогда об этом не думал. Веб-приложение это программа, которая работает прямо в браузере, без скачивания и установки: открыл вкладку и сразу пользуешься полноценным софтом. Ты не просто читаешь готовый текст, как в газете, а действуешь. Пишешь письмо, двигаешь задачи в доске, собираешь заказ в корзине, редактируешь документ, который тут же сохраняется. Вот что такое веб-приложение, если объяснять простыми словами: софт, который живёт по ссылке, а не в папке на диске.",null,"md",[1170,1173,1176,1179,1182,1185,1188,1191,1194,1197,1200,1203],{"q":1171,"a":1172},"Что такое веб-приложение простыми словами?","Веб-приложение это программа, которая работает прямо в браузере, без скачивания и установки. Ты открываешь вкладку и сразу пользуешься полноценным софтом: пишешь письмо, редактируешь документ, ведёшь задачи, собираешь заказ. От обычного сайта оно отличается тем, что ты не просто читаешь готовый текст, а действуешь: создаёшь и меняешь данные, работаешь под своим аккаунтом, а приложение всё это сохраняет и обрабатывает. Почта, Google Docs, Telegram Web, онлайн-банк, CRM это всё веб-приложения.",{"q":1174,"a":1175},"Чем веб-приложение отличается от сайта?","Правило простое: если ты в основном читаешь, это сайт; если создаёшь, меняешь и обрабатываешь данные, это веб-приложение. Сайт доставляет тебе готовый контент, как газета. Веб-приложение это софт: у него есть состояние, бизнес-логика, работа с базой данных, аккаунты и сессии, API между интерфейсом и сервером. Граница размытая, есть спектр: блог с формой ближе к сайту, а личный кабинет с корзиной и оплатой это уже полноценное приложение.",{"q":1177,"a":1178},"Какие бывают виды веб-приложений?","По способу сборки и отдачи страниц выделяют несколько типов. MPA (многостраничное) собирает каждую страницу на сервере. SPA (одностраничное) грузит один каркас и дальше живёт в браузере без перезагрузок. SSR это серверный рендеринг, когда сервер отдаёт готовый HTML на каждый запрос. SSG и ISR это заранее собранная статика и её частичное обновление. PWA это веб-приложение, которое ставится на устройство, работает офлайн и шлёт push. На практике современные фреймворки смешивают эти режимы под конкретную страницу.",{"q":1180,"a":1181},"На чём делают веб-приложения?","Веб-приложение собирают из нескольких слоёв. Фронтенд (интерфейс в браузере) чаще всего пишут на React, Vue или Angular, поверх них берут мета-фреймворки Nuxt и Next.js. Бэкенд (логику на сервере) делают на Node.js, Python или PHP. Данные хранят в базе: PostgreSQL, MySQL или связке вроде Supabase. Фронт и бэк общаются через API (REST или GraphQL). Готовое приложение живёт на хостинге и попадает туда через деплой. Мой рабочий стек это Nuxt/Vue и React/Next плюс Node и PostgreSQL.",{"q":1183,"a":1184},"Чем веб-приложение отличается от мобильного приложения?","Мобильное приложение ты скачиваешь из App Store или Google Play и ставишь на телефон, оно живёт отдельной иконкой и работает под конкретную ОС. Веб-приложение открывается по ссылке в браузере на любом устройстве, ничего ставить не надо, обновляется мгновенно у всех сразу. Мобильное лучше в доступе к железу (камера, датчики, фоновые уведомления) и в производительности графики. Веб дешевле, быстрее в запуске и одно на все платформы. Промежуточный вариант это PWA: веб-приложение, которое можно поставить на экран как обычное.",{"q":1186,"a":1187},"Что такое PWA?","PWA (progressive web app) это веб-приложение, которое ведёт себя почти как нативное. Его можно установить на телефон или компьютер из браузера, без магазина приложений, у него появляется иконка на экране. За счёт технологии service worker оно частично работает офлайн, кеширует данные и умеет присылать push-уведомления. По сути это тот же сайт в браузере, которому дали суперспособности приложения. Хороший компромисс, когда нативное приложение делать дорого, а веб хочется сделать удобнее и ближе к телефону.",{"q":1189,"a":1190},"SPA или MPA: что лучше?","Зависит от задачи, универсального победителя нет. MPA (многостраничное) проще для SEO и контентных проектов: каждая страница это отдельный URL с готовым HTML. SPA (одностраничное) даёт ощущение мгновенного, приложения без перезагрузок и хорошо подходит для насыщенных интерфейсов вроде дашбордов и редакторов. Минус чистого SPA это тяжёлый старт и сложности с индексацией. Поэтому на практике чаще берут не крайности, а SSR или гибрид на Nuxt или Next.js: серверный HTML для скорости и SEO плюс живой интерактив в браузере.",{"q":1192,"a":1193},"Что такое клиентская сторона веб-приложения?","Клиентская сторона это всё, что происходит в браузере пользователя: интерфейс, кнопки, формы, анимации, часть логики и хранение временного состояния. Ей противопоставлена серверная сторона, где живут основная бизнес-логика, база данных и то, что нельзя доверять браузеру, например проверка прав и оплата. Клиент отправляет запросы, сервер их обрабатывает и возвращает данные. Грубо: клиентская сторона отвечает за то, что ты видишь и трогаешь, серверная за то, что нужно надёжно посчитать и сохранить.",{"q":1195,"a":1196},"Что такое SSR простыми словами?","SSR (server-side rendering, серверный рендеринг) это когда сервер сам собирает готовую HTML-страницу и отдаёт её браузеру уже наполненной, а не пустой каркас, который потом дорисовывает JavaScript. Плюс в том, что пользователь и поисковик видят контент сразу, первый экран появляется быстрее, индексация проще. Плата: сервер работает на каждый запрос. SSR умеют Nuxt (для Vue) и Next.js (для React). Это золотая середина между быстрым для SEO многостраничным сайтом и живым одностраничным приложением.",{"q":1198,"a":1199},"Сколько стоит разработать веб-приложение?","Разброс огромный, потому что под словом веб-приложение прячется и простой личный кабинет, и целая CRM. Цену определяют объём логики, число ролей и сценариев, интеграции (оплата, доставка, 1С, внешние API), сложность интерфейса и нагрузка. У меня разработка веб-приложения стартует от 100 000 ₽, а точную вилку я называю после короткого брифа, когда понятно, что именно нужно строить. Готовые конструкторы дешевле на входе, но упираются в потолок, как только логика выходит за типовые шаблоны.",{"q":1201,"a":1202},"Можно ли сделать веб-приложение бесплатно?","Прототип или учебный проект собрать бесплатно реально: есть бесплатные тарифы хостинга, открытые фреймворки, no-code конструкторы. Но полноценное рабочее приложение с аккаунтами, оплатой, базой данных и поддержкой бесплатным не бывает. За кадром всегда есть расходы: домен, хостинг, база, платёжный шлюз, а главное время того, кто это строит и потом чинит. No-code годится, чтобы проверить идею. Как только доходит до реальной логики и нагрузки, дешевле и надёжнее заказать нормальную разработку.",{"q":1204,"a":1205},"Нужен ли программист, чтобы сделать веб-приложение?","Для простого прототипа на конструкторе можно обойтись без разработчика. Но любое серьёзное веб-приложение это база данных, аккаунты, платежи, безопасность и логика, которую конструктор либо не тянет, либо тянет криво. Тут нужен инженер, который спроектирует архитектуру и не даст проекту рассыпаться на росте. Я как раз занимаюсь такой разработкой под ключ: от идеи и структуры данных до запуска и поддержки. Конструктор хорош для гипотезы, живой продукт с реальными пользователями лучше строить руками.",false,{},"Что такое веб-приложение простыми словами: чем отличается от сайта, как работает, какие виды и на чём делают. Разбор от fullstack-практика.","Что такое веб-приложение простыми словами",true,"/chto-takoe-veb-prilozhenie",26,{"title":5,"description":1166},"chto-takoe-veb-prilozhenie","Vd1vVyE9kQcoIYTeUxZmYQcwKVCs95kvlFIe1sPlYLA",[1217,1218,1224,1229,1236,1241,1246],{"slug":1214,"title":5,"excerpt":1167,"category":1163,"cover":1164,"date":1165,"updated":1165,"readingMinutes":1212,"featured":1206},{"slug":1219,"title":1220,"excerpt":1167,"category":1221,"cover":1222,"date":1165,"updated":1165,"readingMinutes":1223,"featured":1206},"kak-proverit-skorost-sajta","Как проверить скорость сайта и как читать отчёт","seo","/images/blog/kak-proverit-skorost-sajta.webp",15,{"slug":1225,"title":1226,"excerpt":1167,"category":1221,"cover":1227,"date":1165,"updated":1165,"readingMinutes":1228,"featured":1206},"skolko-stoit-sdelat-sajt","Сколько стоит сделать сайт под ключ в 2026 году","/images/blog/skolko-stoit-sdelat-sajt.webp",22,{"slug":1230,"title":1231,"excerpt":1167,"category":1232,"cover":1233,"date":1234,"updated":1234,"readingMinutes":1235,"featured":1206},"kak-sdelat-internet-magazin","Как сделать интернет-магазин с нуля: полный разбор от разработчика","ecommerce","/images/blog/kak-sdelat-internet-magazin.webp","2026-07-03",33,{"slug":1237,"title":1238,"excerpt":1167,"category":1221,"cover":1239,"date":1234,"updated":1234,"readingMinutes":1240,"featured":1206},"kak-uskorit-sajt","Как ускорить сайт: от замера в DevTools до архитектуры","/images/blog/kak-uskorit-sajt.webp",34,{"slug":1242,"title":1243,"excerpt":1167,"category":1232,"cover":1244,"date":1234,"updated":1234,"readingMinutes":1245,"featured":1206},"platforma-dlya-internet-magazina","На чём сделать интернет-магазин: конструктор, CMS или кастом","/images/blog/platforma-dlya-internet-magazina.webp",24,{"slug":1247,"title":1248,"excerpt":1167,"category":1232,"cover":1249,"date":1234,"updated":1234,"readingMinutes":1250,"featured":1206},"skolko-stoit-internet-magazin","Сколько стоит интернет-магазин в 2026 году","/images/blog/skolko-stoit-internet-magazin.webp",12,1783795885126]