<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Андрей Прокопенко</title>
	<atom:link href="https://andreyprokopenko.ru/feed/" rel="self" type="application/rss+xml" />
	<link>https://andreyprokopenko.ru/</link>
	<description>личный блог</description>
	<lastBuildDate>Thu, 10 Sep 2026 14:49:11 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://andreyprokopenko.ru/wp-content/uploads/2026/03/cropped-photo_2025-06-29_20-50-46-32x32.jpg</url>
	<title>Андрей Прокопенко</title>
	<link>https://andreyprokopenko.ru/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Личный кабинет в AI-астрологе: где магия становится личной. 2 часть</title>
		<link>https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/</link>
					<comments>https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/#comments</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 14:47:54 +0000</pubDate>
				<category><![CDATA[Личный блог]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=568</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-150x150.jpeg 150w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-300x300.jpeg 300w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-768x768.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10.jpeg 1024w" sizes="(max-width: 150px) 100vw, 150px" />Продолжаю рассказ. Про архитектуру и AI я уже поведал ранее, теперь — про место, где пользователь перестаёт быть «посетителем» и становится «хозяином своей вселенной». Про личный кабинет. &#1047;&#1072;&#1095;&#1077;&#1084; &#1072;&#1089;&#1090;&#1088;&#1086;&#1083;&#1086;&#1075;&#1091; &#1074;&#1072;&#1096;&#1080; &#1087;&#1072;&#1089;&#1087;&#1086;&#1088;&#1090;&#1085;&#1099;&#1077; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; Начну с главного: астрология без даты рождения не работает вообще. Это как навигатор, которому не сказали адрес. Гороскоп, биоритмы, именины, лунные дни — [&#8230;]</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/">Личный кабинет в AI-астрологе: где магия становится личной. 2 часть</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-150x150.jpeg 150w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-300x300.jpeg 300w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-768x768.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10.jpeg 1024w" sizes="(max-width: 150px) 100vw, 150px" />
<p class="wp-block-paragraph">Продолжаю рассказ. Про архитектуру и AI я уже <a href="https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/"><strong>поведал ранее</strong></a>, теперь — про место, где пользователь перестаёт быть «посетителем» и становится «хозяином своей вселенной». Про личный кабинет.</p>


<h2 class="wp-block-heading" id="d0b7d0b0d187d0b5d0bc-d0b0d181d182d180d0bed0bbd0bed0b3d183-d0b2d0b0d188d0b8-d0bfd0b0d181d0bfd0bed180d182d0bdd18bd0b5-d0b4d0b0d0bdd0bd">&#1047;&#1072;&#1095;&#1077;&#1084; &#1072;&#1089;&#1090;&#1088;&#1086;&#1083;&#1086;&#1075;&#1091; &#1074;&#1072;&#1096;&#1080; &#1087;&#1072;&#1089;&#1087;&#1086;&#1088;&#1090;&#1085;&#1099;&#1077; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;</h2>



<p class="wp-block-paragraph">Начну с главного: <strong>астрология без даты рождения не работает вообще</strong>. Это как навигатор, которому не сказали адрес. Гороскоп, биоритмы, именины, лунные дни — всё это функции от трёх вещей: даты, времени и места рождения.</p>



<p class="wp-block-paragraph">Поэтому личный кабинет у нас — не «довесок для галочки», как в интернет-магазинах, а <strong>ядро продукта</strong>. Без него сайт был бы витриной общих текстов. С ним — персональным сервисом.</p>



<p class="wp-block-paragraph">И вот тут начинается интересная инженерная задача: как сделать так, чтобы пользователь заполнил анкету один раз, а дальше весь сайт знал, кто он?</p>


<h2 class="wp-block-heading" id="d180d0b5d0b3d0b8d181d182d180d0b0d186d0b8d18f-d181d0bad183d187d0bdd18bd0b5-d181d182d180d0b0d0bdd0b8d186d18b-d181-d0bdd0b5d181d0bad183">&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103;: &#1089;&#1082;&#1091;&#1095;&#1085;&#1099;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1089; &#1085;&#1077;&#1089;&#1082;&#1091;&#1095;&#1085;&#1099;&#1084;&#1080; &#1088;&#1077;&#1096;&#1077;&#1085;&#1080;&#1103;&#1084;&#1080;</h2>



<p class="wp-block-paragraph">У нас классический email-first поток: <code>/register</code> → <code>/verify-email</code> → <code>/set-password</code>.</p>



<p class="wp-block-paragraph">Казалось бы, почему не поставить сразу «Войти через Google» и не мучить людей? Решение осознанное: <strong>данные у нас чувствительные</strong>. Дата и время рождения — это почти биометрия в мире астрологии. Мы хотим, чтобы аккаунт был привязан к реальной почте, чтобы человек понимал: его анкета хранится у нас, а не у третьей стороны.</p>



<p class="wp-block-paragraph">Технически аутентификация построена на <strong>Laravel Sanctum</strong>. Это токены вместо классических сессий: фронтенд (Next.js) и бэкенд (Laravel) — разные приложения, и им нужен честный API-контракт. При загрузке кабинета фронт спрашивает у бэка одну-единственную страницу правды:</p>


<pre class="wp-block-code plover-prism prism-github-dark-theme language-clike"><code>GET /api/me
&rarr; { user, subscription, calendar_subscriptions, profile }</code></pre>



<p class="wp-block-paragraph">Один запрос — и интерфейс знает: кто ты, какой у тебя тариф, на какие календари ты подписан. Дальше всё рендерится из этого состояния. Никаких «пять запросов на каждую плитку».</p>


<h2 class="wp-block-heading" id="d0bfd180d0bed184d0b8d0bbd18c-d182d180d0b8-d187d0b8d181d0bbd0b0-d0bad0bed182d0bed180d18bd0b5-d0bcd0b5d0bdd18fd18ed182-d0b2d181d191">&#1055;&#1088;&#1086;&#1092;&#1080;&#1083;&#1100;: &#1090;&#1088;&#1080; &#1095;&#1080;&#1089;&#1083;&#1072;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1084;&#1077;&#1085;&#1103;&#1102;&#1090; &#1074;&#1089;&#1105;</h2>



<p class="wp-block-paragraph">В профиле пользователь заполняет:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>&#1044;&#1072;&#1090;&#1091; &#1088;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103;</strong> &mdash; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1103;&#1077;&#1090; &#1079;&#1085;&#1072;&#1082; &#1079;&#1086;&#1076;&#1080;&#1072;&#1082;&#1072;</li>



<li>
<strong>&#1042;&#1088;&#1077;&#1084;&#1103; &#1088;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103;</strong> &mdash; &#1082;&#1088;&#1080;&#1090;&#1080;&#1095;&#1085;&#1086; &#1076;&#1083;&#1103; &#1090;&#1086;&#1095;&#1085;&#1099;&#1093; &#1088;&#1072;&#1089;&#1095;&#1105;&#1090;&#1086;&#1074; (&#1076;&#1086;&#1084;&#1072; &#1085;&#1072;&#1090;&#1072;&#1083;&#1100;&#1085;&#1086;&#1081; &#1082;&#1072;&#1088;&#1090;&#1099; &#1089;&#1095;&#1080;&#1090;&#1072;&#1102;&#1090;&#1089;&#1103; &#1080;&#1084;&#1077;&#1085;&#1085;&#1086; &#1086;&#1090; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080;)</li>



<li>
<strong>&#1052;&#1077;&#1089;&#1090;&#1086; &#1088;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103;</strong> &mdash; &#1075;&#1077;&#1086;&#1075;&#1088;&#1072;&#1092;&#1080;&#1103; &#1074;&#1083;&#1080;&#1103;&#1077;&#1090; &#1085;&#1072; &#1072;&#1089;&#1090;&#1088;&#1086;&#1085;&#1086;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1077; &#1088;&#1072;&#1089;&#1095;&#1105;&#1090;&#1099;</li>



<li>
<strong>&#1048;&#1084;&#1103;</strong> &mdash; &#1080; &#1074;&#1086;&#1090; &#1090;&#1091;&#1090; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1087;&#1077;&#1088;&#1077;&#1082;&#1083;&#1080;&#1095;&#1082;&#1072; &#1092;&#1080;&#1095;</li>
</ul>



<p class="wp-block-paragraph">Заполнил один раз — и весь сайт перестраивается под тебя:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1043;&#1086;&#1088;&#1086;&#1089;&#1082;&#1086;&#1087;&#1099; &#1089;&#1088;&#1072;&#1079;&#1091; &#1086;&#1090;&#1082;&#1088;&#1099;&#1074;&#1072;&#1102;&#1090;&#1089;&#1103; &#1085;&#1072; &#1090;&#1074;&#1086;&#1105;&#1084; &#1079;&#1085;&#1072;&#1082;&#1077;</li>



<li>&#1041;&#1080;&#1086;&#1088;&#1080;&#1090;&#1084;&#1099; &#1089;&#1095;&#1080;&#1090;&#1072;&#1102;&#1090; &#1094;&#1080;&#1082;&#1083;&#1099; &#1086;&#1090; &#1090;&#1074;&#1086;&#1077;&#1081; &#1076;&#1072;&#1090;&#1099;</li>



<li>&#1050;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1100; &#1080;&#1084;&#1077;&#1085;&#1080;&#1085; &#1079;&#1085;&#1072;&#1077;&#1090; &#1080;&#1084;&#1103;</li>



<li>&#1057;&#1086;&#1074;&#1084;&#1077;&#1089;&#1090;&#1080;&#1084;&#1086;&#1089;&#1090;&#1100; &#1080;&#1084;&#1105;&#1085; &#1087;&#1086;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1103;&#1077;&#1090; &#1080;&#1084;&#1103; &#1087;&#1077;&#1088;&#1074;&#1099;&#1084; &#1087;&#1086;&#1083;&#1077;&#1084;</li>
</ul>



<p class="wp-block-paragraph">Это то, что я называю <strong>«тихой персонализацией»</strong>: пользователь не настраивает десять тумблеров, он просто живёт, а система подстраивается. Инженерно это решается тем, что все сервисы читают один источник правды — профиль, закэшированный в Redis, чтобы не дёргать базу на каждый рендер.</p>


<h2 class="wp-block-heading" id="d0bcd0bed0b8-d0b3d0bed180d0bed181d0bad0bed0bfd18b-d0bfd0b0d0bcd18fd182d18c-d0b2d0b0d188d0b5d0b9-d0b2d181d0b5d0bbd0b5d0bdd0bdd0bed0b9">&laquo;&#1052;&#1086;&#1080; &#1075;&#1086;&#1088;&#1086;&#1089;&#1082;&#1086;&#1087;&#1099;&raquo;: &#1087;&#1072;&#1084;&#1103;&#1090;&#1100; &#1074;&#1072;&#1096;&#1077;&#1081; &#1074;&#1089;&#1077;&#1083;&#1077;&#1085;&#1085;&#1086;&#1081;</h2>



<p class="wp-block-paragraph">Зачем хранить историю гороскопов? Потому что люди перечитывают их в неожиданные моменты. «А что мне писали в день собеседования?» «А в день знакомства?» Гороскоп эфемерен — сутки прошли и всё. Но сохранённая история превращает его в <strong>личный дневник</strong>.</p>



<p class="wp-block-paragraph">Технический нюанс, которым горжусь: список <code>/my-horoscopes</code> генерируется статически (SSG), а вот карточка <code>/my-horoscopes/[id]</code> — динамическая (в выводе сборки она помечена значком <code>ƒ</code>). Почему? Потому что контент <strong>приватный</strong>. Его нельзя prerender&#8217;ить на билде — иначе Google проиндексирует чужие личные тексты. Динамический рендер с проверкой владельца — и приватность соблюдена.</p>


<h2 class="wp-block-heading" id="shareuuid-d0bfd180d0b8d0b2d0b0d182d0bdd0bed0b5-d0bad0bed182d0bed180d18bd0bc-d0bcd0bed0b6d0bdd0be-d0bfd0bed0b4d0b5d0bbd0b8d182d18cd181d18f">
<code>/share/[uuid]</code>: &#1087;&#1088;&#1080;&#1074;&#1072;&#1090;&#1085;&#1086;&#1077;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1084; &#1084;&#1086;&#1078;&#1085;&#1086; &#1087;&#1086;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100;&#1089;&#1103;</h2>



<p class="wp-block-paragraph">Вот моя любимая фишка кабинета. Любой результат — гороскоп, расклад, анализ совместимости — можно <strong>опубликовать одной ссылкой</strong>.</p>



<p class="wp-block-paragraph">Как устроено: при шеринге генерируется UUID v4. Это 128 бит чистой энтропии — ссылку невозможно угадать перебором.</p>



<p class="wp-block-paragraph">Получается элегантный компромисс:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1087;&#1088;&#1086;&#1092;&#1080;&#1083;&#1100; &#1080; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1103; &#1086;&#1089;&#1090;&#1072;&#1102;&#1090;&#1089;&#1103; &#1087;&#1088;&#1080;&#1074;&#1072;&#1090;&#1085;&#1099;&#1084;&#1080;</li>



<li>&#1085;&#1086; &#1082;&#1086;&#1085;&#1082;&#1088;&#1077;&#1090;&#1085;&#1099;&#1084; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1086;&#1084; &#1084;&#1086;&#1078;&#1085;&#1086; &#1087;&#1086;&#1093;&#1074;&#1072;&#1089;&#1090;&#1072;&#1090;&#1100;&#1089;&#1103; &#1087;&#1086;&#1076;&#1088;&#1091;&#1075;&#1077; (&#1080;&#1083;&#1080; &#1076;&#1088;&#1091;&#1075;&#1091;)</li>
</ul>



<p class="wp-block-paragraph">Публичная страница собирается без авторизации, с красивыми OG-тегами — то есть при вставке ссылки в Telegram или VK показывается карточка с заголовком и описанием, а не голая ссылка. Мелочь? Мелочь. Но именно такие мелочи делают шеринг массовым.</p>


<h2 class="wp-block-heading" id="d0bad0b0d0bbd0b5d0bdd0b4d0b0d180d0bdd18bd0b5-d0bfd0bed0b4d0bfd0b8d181d0bad0b8-d184d0b8d187d0b0-d0bad0bed182d0bed180d0b0d18f-d0b2d0be">&#1050;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1085;&#1099;&#1077; &#1087;&#1086;&#1076;&#1087;&#1080;&#1089;&#1082;&#1080;: &#1092;&#1080;&#1095;&#1072;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1072;&#1103; &#1074;&#1086;&#1079;&#1074;&#1088;&#1072;&#1097;&#1072;&#1077;&#1090; &#1083;&#1102;&#1076;&#1077;&#1081;</h2>



<p class="wp-block-paragraph">В дашборде живёт то, что я считаю главной retention-механикой проекта — <strong>подписки на персональные календари</strong>:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1080;&#1084;&#1077;&#1085;&#1080;&#1085;&#1099;</li>



<li>&#1083;&#1091;&#1085;&#1085;&#1099;&#1077; &#1076;&#1085;&#1080;</li>



<li>&#1087;&#1088;&#1072;&#1074;&#1086;&#1089;&#1083;&#1072;&#1074;&#1085;&#1099;&#1077; &#1080; &#1084;&#1091;&#1089;&#1091;&#1083;&#1100;&#1084;&#1072;&#1085;&#1089;&#1082;&#1080;&#1077; &#1087;&#1088;&#1072;&#1079;&#1076;&#1085;&#1080;&#1082;&#1080;</li>



<li>&#1076;&#1085;&#1080; &#1087;&#1086;&#1089;&#1072;&#1076;&#1082;&#1080; &#1088;&#1072;&#1089;&#1090;&#1077;&#1085;&#1080;&#1081;</li>



<li>&#1076;&#1085;&#1080; &#1089;&#1090;&#1088;&#1080;&#1078;&#1082;&#1080; (&#1076;&#1072;-&#1076;&#1072;, &#1101;&#1090;&#1086; &#1089;&#1077;&#1088;&#1100;&#1105;&#1079;&#1085;&#1072;&#1103; &#1082;&#1072;&#1090;&#1077;&#1075;&#1086;&#1088;&#1080;&#1103; &#1076;&#1083;&#1103; &#1072;&#1091;&#1076;&#1080;&#1090;&#1086;&#1088;&#1080;&#1080;)</li>
</ul>



<p class="wp-block-paragraph">Пользователь выбирает, что ему интересно, — и получает персональную ленту событий. Инженерно это таблица подписок «пользователь <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> календарь», а события считаются нашим сервером астрономических расчётов: лунные фазы — это чистая астрономия, никакая нейросеть тут не нужна, нужна математика эфемерид.</p>



<p class="wp-block-paragraph">Почему это гениально для продукта? Потому что меняет модель поведения. Сайт перестаёт быть «зашёл раз в неделю за гороскопом» и становится «живу с этим каждый день». А для нас это означает возврат пользователей без единого рубля на рекламу.</p>


<h2 class="wp-block-heading" id="d0bfd0bed0b4d0bfd0b8d181d0bad0b0-d0b8-d0bfd0bbd0b0d182d0b5d0b6d0b8-freemium-d0b1d0b5d0b7-d0b4d180d0b0d0bc">&#1055;&#1086;&#1076;&#1087;&#1080;&#1089;&#1082;&#1072; &#1080; &#1087;&#1083;&#1072;&#1090;&#1077;&#1078;&#1080;: freemium &#1073;&#1077;&#1079; &#1076;&#1088;&#1072;&#1084;</h2>



<p class="wp-block-paragraph">Монетизация честная: базовые фичи бесплатны, глубина — по подписке. Страницы: <code>/pricing</code> (витрина тарифов), <code>/subscription</code> (управление), и пара недооценённых героев — <code>/payment/success</code> и <code>/payment/fail</code>.</p>



<p class="wp-block-paragraph">Почему я называю их героями? Потому что 90% разработчиков делают их на отвяжись, а именно они определяют, останется ли человек клиентом.Payment-система после оплаты редиректит пользователя обратно к нам, и мы обязаны:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1085;&#1072; success &mdash; &#1085;&#1077; &#1087;&#1088;&#1086;&#1089;&#1090;&#1086; &#1089;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &laquo;&#1086;&#1087;&#1083;&#1072;&#1095;&#1077;&#1085;&#1086;&raquo;, &#1072; <strong>&#1087;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100;, &#1095;&#1090;&#1086; &#1080;&#1084;&#1077;&#1085;&#1085;&#1086; &#1086;&#1090;&#1082;&#1088;&#1099;&#1083;&#1086;&#1089;&#1100;</strong>: &laquo;&#1090;&#1077;&#1087;&#1077;&#1088;&#1100; &#1090;&#1077;&#1073;&#1077; &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1085;&#1099; &#1084;&#1077;&#1089;&#1103;&#1095;&#1085;&#1099;&#1077; &#1075;&#1086;&#1088;&#1086;&#1089;&#1082;&#1086;&#1087;&#1099; &#1080; &#1074;&#1089;&#1077; &#1082;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1080;&raquo;</li>



<li>&#1085;&#1072; fail &mdash; &#1085;&#1077; &#1086;&#1073;&#1074;&#1080;&#1085;&#1103;&#1090;&#1100; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;, &#1072; &#1089;&#1087;&#1086;&#1082;&#1086;&#1081;&#1085;&#1086; &#1086;&#1073;&#1098;&#1103;&#1089;&#1085;&#1080;&#1090;&#1100; &#1096;&#1072;&#1075;: &laquo;&#1076;&#1077;&#1085;&#1100;&#1075;&#1080; &#1085;&#1077; &#1089;&#1087;&#1080;&#1089;&#1072;&#1083;&#1080;&#1089;&#1100; / &#1082;&#1072;&#1088;&#1090;&#1072; &#1086;&#1090;&#1082;&#1083;&#1086;&#1085;&#1077;&#1085;&#1072;, &#1087;&#1086;&#1087;&#1088;&#1086;&#1073;&#1091;&#1081;&#1090;&#1077; &#1077;&#1097;&#1105; &#1088;&#1072;&#1079; &#1080;&#1083;&#1080; &#1076;&#1088;&#1091;&#1075;&#1091;&#1102; &#1082;&#1072;&#1088;&#1090;&#1091;&raquo;</li>
</ul>



<p class="wp-block-paragraph">Плюс параллельно работаем с вебхуками платёжной системы: редирект — для человека, вебхук — для правды в базе. Человек может закрыть браузер до редиректа, но подписка всё равно активируется корректно. Это та скучная надёжность, за которую потом не стыдно.</p>


<h2 class="wp-block-heading" id="d182d0b5d185d0bdd0b8d187d0b5d181d0bad0b0d18f-d0bad183d185d0bdd18f-d0bad0b0d0b1d0b8d0bdd0b5d182d0b0-d0bad0bed180d0bed182d0bad0be">&#1058;&#1077;&#1093;&#1085;&#1080;&#1095;&#1077;&#1089;&#1082;&#1072;&#1103; &#1082;&#1091;&#1093;&#1085;&#1103; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072;, &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1086;</h2>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>Middleware-&#1079;&#1072;&#1097;&#1080;&#1090;&#1072;</strong>: &#1074;&#1089;&#1077; &#1088;&#1086;&#1091;&#1090;&#1099; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1079;&#1072;&#1082;&#1088;&#1099;&#1090;&#1099;; &#1075;&#1086;&#1089;&#1090;&#1100;, &#1087;&#1086;&#1087;&#1099;&#1090;&#1072;&#1074;&#1096;&#1080;&#1081;&#1089;&#1103; &#1079;&#1072;&#1081;&#1090;&#1080; &#1074; <code>/profile</code>, &#1084;&#1075;&#1085;&#1086;&#1074;&#1077;&#1085;&#1085;&#1086; &#1091;&#1083;&#1077;&#1090;&#1072;&#1077;&#1090; &#1085;&#1072; <code>/login</code> &#1080; &#1074;&#1086;&#1079;&#1074;&#1088;&#1072;&#1097;&#1072;&#1077;&#1090;&#1089;&#1103; &#1086;&#1073;&#1088;&#1072;&#1090;&#1085;&#1086; &#1087;&#1086;&#1089;&#1083;&#1077; &#1074;&#1093;&#1086;&#1076;&#1072;</li>



<li>
<strong>Sanctum-&#1090;&#1086;&#1082;&#1077;&#1085;&#1099;</strong> &#1093;&#1088;&#1072;&#1085;&#1103;&#1090;&#1089;&#1103; &#1074; &#1073;&#1072;&#1079;&#1077; &mdash; &#1089;&#1077;&#1089;&#1089;&#1080;&#1102; &#1084;&#1086;&#1078;&#1085;&#1086; &#1086;&#1090;&#1086;&#1079;&#1074;&#1072;&#1090;&#1100; &#1080;&#1079; &#1080;&#1085;&#1090;&#1077;&#1088;&#1092;&#1077;&#1081;&#1089;&#1072;, &#1082;&#1072;&#1082; &#1074; &#1089;&#1077;&#1088;&#1100;&#1105;&#1079;&#1085;&#1099;&#1093; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1072;&#1093;</li>



<li>
<strong>Redis-&#1082;&#1101;&#1096;</strong> &#1087;&#1088;&#1086;&#1092;&#1080;&#1083;&#1103; &#1080; &#1087;&#1086;&#1076;&#1087;&#1080;&#1089;&#1086;&#1082;: &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090; &#1086;&#1090;&#1082;&#1088;&#1099;&#1074;&#1072;&#1077;&#1090;&#1089;&#1103; &#1084;&#1075;&#1085;&#1086;&#1074;&#1077;&#1085;&#1085;&#1086;, &#1076;&#1072;&#1078;&#1077; &#1082;&#1086;&#1075;&#1076;&#1072; &#1073;&#1072;&#1079;&#1072; &#1087;&#1086;&#1076; &#1085;&#1072;&#1075;&#1088;&#1091;&#1079;&#1082;&#1086;&#1081;</li>



<li>
<strong>&#1055;&#1088;&#1080;&#1074;&#1072;&#1090;&#1085;&#1086;&#1089;&#1090;&#1100; &#1087;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;</strong>: &#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1088;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103; &#1085;&#1077; &#1087;&#1086;&#1087;&#1072;&#1076;&#1072;&#1102;&#1090; &#1074; &#1083;&#1086;&#1075;&#1080;, &#1085;&#1077; &#1086;&#1090;&#1076;&#1072;&#1102;&#1090;&#1089;&#1103; &#1087;&#1091;&#1073;&#1083;&#1080;&#1095;&#1085;&#1099;&#1084;&#1080; API &#1080; &#1085;&#1077; &#1091;&#1095;&#1072;&#1089;&#1090;&#1074;&#1091;&#1102;&#1090; &#1074; &#1072;&#1085;&#1072;&#1083;&#1080;&#1090;&#1080;&#1082;&#1077;. &#1069;&#1090;&#1086; &#1085;&#1077; &#1087;&#1072;&#1088;&#1072;&#1085;&#1086;&#1081;&#1103;, &#1101;&#1090;&#1086; &#1091;&#1074;&#1072;&#1078;&#1077;&#1085;&#1080;&#1077;.</li>
</ul>


<h2 class="wp-block-heading" id="uxd0bcd0b5d0bbd0bed187d0b8-d0bad0bed182d0bed180d18bd0b5-d180d0b5d188d0b0d18ed182-d0b2d181d191">UX-&#1084;&#1077;&#1083;&#1086;&#1095;&#1080;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1088;&#1077;&#1096;&#1072;&#1102;&#1090; &#1074;&#1089;&#1105;</h2>



<p class="wp-block-paragraph">Финальный слой — то, что пользователь не назовёт, но почувствует:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1089;&#1082;&#1077;&#1083;&#1077;&#1090;&#1086;&#1085;&#1099; &#1074;&#1084;&#1077;&#1089;&#1090;&#1086; &#1082;&#1088;&#1091;&#1090;&#1103;&#1097;&#1080;&#1093;&#1089;&#1103; &#1089;&#1087;&#1080;&#1085;&#1085;&#1077;&#1088;&#1086;&#1074; (&#1075;&#1083;&#1072;&#1079; &#1085;&#1077; &#1091;&#1089;&#1090;&#1072;&#1105;&#1090;)</li>



<li>&#1087;&#1086;&#1085;&#1103;&#1090;&#1085;&#1099;&#1077; &#1090;&#1077;&#1082;&#1089;&#1090;&#1099; &#1086;&#1096;&#1080;&#1073;&#1086;&#1082; &#1074;&#1084;&#1077;&#1089;&#1090;&#1086; &laquo;Error 500&raquo;</li>



<li>&#1084;&#1086;&#1073;&#1080;&#1083;&#1100;&#1085;&#1072;&#1103; &#1074;&#1105;&#1088;&#1089;&#1090;&#1082;&#1072; &#1086;&#1090; &#1080; &#1076;&#1086; (&#1072;&#1091;&#1076;&#1080;&#1090;&#1086;&#1088;&#1080;&#1103; &#1072;&#1089;&#1090;&#1088;&#1086;&#1083;&#1086;&#1075;&#1080;&#1080; &mdash; &#1085;&#1072; 80% &#1090;&#1077;&#1083;&#1077;&#1092;&#1086;&#1085;&#1099;)</li>



<li>&#1080; &#1090;&#1072; &#1089;&#1072;&#1084;&#1072;&#1103; &laquo;&#1090;&#1080;&#1093;&#1072;&#1103; &#1087;&#1077;&#1088;&#1089;&#1086;&#1085;&#1072;&#1083;&#1080;&#1079;&#1072;&#1094;&#1080;&#1103;&raquo;: &#1085;&#1080;&#1075;&#1076;&#1077; &#1085;&#1077;&#1090; &#1082;&#1088;&#1080;&#1095;&#1072;&#1097;&#1077;&#1075;&#1086; &laquo;&#1052;&#1067; &#1047;&#1053;&#1040;&#1045;&#1052; &#1054; &#1058;&#1045;&#1041;&#1025; &#1042;&#1057;&#1025;&raquo;, &#1087;&#1088;&#1086;&#1089;&#1090;&#1086; &#1074;&#1089;&#1105; &#1091;&#1078;&#1077; &#1087;&#1086;&#1076;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085;&#1086;.</li>
</ul>


<h2 class="wp-block-heading" id="d187d182d0be-d0bfd180d0bed181d0b8d182d181d18f-d0b4d0b0d0bbd18cd188d0b5">&#1063;&#1090;&#1086; &#1087;&#1088;&#1086;&#1089;&#1080;&#1090;&#1089;&#1103; &#1076;&#1072;&#1083;&#1100;&#1096;&#1077;</h2>



<p class="wp-block-paragraph">Честный список хотелок:</p>


<ol class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>&#1042;&#1093;&#1086;&#1076; &#1095;&#1077;&#1088;&#1077;&#1079; &#1071;&#1085;&#1076;&#1077;&#1082;&#1089;/Google</strong> &mdash; &#1076;&#1083;&#1103; &#1090;&#1077;&#1093;, &#1082;&#1086;&#1084;&#1091; &#1083;&#1077;&#1085;&#1100; &#1087;&#1086;&#1084;&#1085;&#1080;&#1090;&#1100; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; (&#1074;&#1090;&#1086;&#1088;&#1099;&#1084; &#1089;&#1083;&#1086;&#1077;&#1084;, &#1087;&#1086;&#1089;&#1083;&#1077; email-&#1073;&#1072;&#1079;&#1099;)</li>



<li>
<strong>Telegram-&#1073;&#1086;&#1090; &#1089; &#1091;&#1090;&#1088;&#1077;&#1085;&#1085;&#1080;&#1084; &#1076;&#1072;&#1081;&#1076;&#1078;&#1077;&#1089;&#1090;&#1086;&#1084;</strong> &#1087;&#1086; &#1087;&#1086;&#1076;&#1087;&#1080;&#1089;&#1072;&#1085;&#1085;&#1099;&#1084; &#1082;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1103;&#1084; &mdash; &#1083;&#1086;&#1075;&#1080;&#1095;&#1085;&#1086;&#1077; &#1087;&#1088;&#1086;&#1076;&#1086;&#1083;&#1078;&#1077;&#1085;&#1080;&#1077; &#1082;&#1072;&#1083;&#1077;&#1085;&#1076;&#1072;&#1088;&#1085;&#1099;&#1093; &#1087;&#1086;&#1076;&#1087;&#1080;&#1089;&#1086;&#1082;</li>



<li>
<strong>&#1057;&#1077;&#1084;&#1077;&#1081;&#1085;&#1099;&#1077; &#1087;&#1088;&#1086;&#1092;&#1080;&#1083;&#1080;</strong>: &#1076;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1087;&#1088;&#1086;&#1092;&#1080;&#1083;&#1080; &#1073;&#1083;&#1080;&#1079;&#1082;&#1080;&#1093; &mdash; &#1080; &#1089;&#1086;&#1074;&#1084;&#1077;&#1089;&#1090;&#1080;&#1084;&#1086;&#1089;&#1090;&#1100; &#1080;&#1084;&#1105;&#1085; &#1089; &#1075;&#1086;&#1088;&#1086;&#1089;&#1082;&#1086;&#1087;&#1072;&#1084;&#1080; &#1089;&#1086;&#1081;&#1076;&#1091;&#1090;&#1089;&#1103; &#1074;&#1085;&#1091;&#1090;&#1088;&#1080; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1074; &#1086;&#1076;&#1085;&#1091; &#1073;&#1086;&#1083;&#1100;&#1096;&#1091;&#1102; &#1092;&#1080;&#1095;&#1091;</li>



<li>
<strong>&#1042;&#1080;&#1079;&#1091;&#1072;&#1083;&#1080;&#1079;&#1072;&#1094;&#1080;&#1103; &#1085;&#1072;&#1090;&#1072;&#1083;&#1100;&#1085;&#1086;&#1081; &#1082;&#1072;&#1088;&#1090;&#1099;</strong> &mdash; SVG-&#1082;&#1086;&#1083;&#1077;&#1089;&#1086; &#1089; &#1076;&#1086;&#1084;&#1072;&#1084;&#1080; &#1080; &#1072;&#1089;&#1087;&#1077;&#1082;&#1090;&#1072;&#1084;&#1080;, &#1101;&#1090;&#1086; &#1091;&#1078;&#1077; &#1074;&#1099;&#1089;&#1096;&#1072;&#1103; &#1083;&#1080;&#1075;&#1072;</li>
</ol>



<p class="wp-block-paragraph">Технически &#8212; это не сложные решения. Наработки по ним уже есть, и скоро всё будет реализовано.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Мораль этой главы:</strong> личный кабинет — это не «страничка с настройками». Это место, где разрозненные фичи (гороскопы, календари, имена, гадания) собираются в один персональный сервис. Профиль — дирижёр, календари — причина возвращаться, шеринг — причина рассказывать о нас, подписка — причина развивать продукт.</p>



<p class="wp-block-paragraph">В следующей главе буду рассказывать про <strong>платёжную кухню и тарифную модель</strong> подробнее, и немного про <strong>детективные истории продакшена</strong> (дублирующиеся роуты, падающие сборки, холодный старт контейнеров).</p>



<p class="wp-block-paragraph">Подписывайтесь! Буду держать в курсе.</p>



<p class="wp-block-paragraph">Личный кабинет можно самостоятельно пощупать здесь (регистрируйтесь) &#8212; <a href="https://my.neiro-astro.ru/register">РЕГИСТРАЦИЯ</a></p>



<p class="wp-block-paragraph">Посмотрите весь сервис здесь: <a href="https://my.neiro-astro.ru/login">https://my.neiro-astro.ru/</a></p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="1024" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10.jpeg" alt="Личный кабинет в AI-астрологе: где магия становится личной. 2 часть" class="wp-image-569" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10.jpeg 1024w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-150x150.jpeg 150w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-300x300.jpeg 300w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/image-10-768x768.jpeg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/">Личный кабинет в AI-астрологе: где магия становится личной. 2 часть</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Как мы построили AI-астролога: история изнутри</title>
		<link>https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/</link>
					<comments>https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/#comments</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 10:32:55 +0000</pubDate>
				<category><![CDATA[Личный блог]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=565</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />Знаете, есть такие проекты, которые кажутся простыми снаружи, но внутри — целый оркестр технологий. &#171;AI Астролог&#187; — как раз такой. Давайте я расскажу, как он устроен. &#1054; &#1095;&#1105;&#1084; &#1087;&#1088;&#1086;&#1077;&#1082;&#1090; &#1074;&#1086;&#1086;&#1073;&#1097;&#1077;? Представьте: вы заходите на сайт и получаете не шаблонный гороскоп из газеты 1998 года, а персональный текст, написанный нейросетью прямо для вас. Хочешь — толкование [&#8230;]</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/">Как мы построили AI-астролога: история изнутри</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />
<p class="wp-block-paragraph">Знаете, есть такие проекты, которые кажутся простыми снаружи, но внутри — целый оркестр технологий. &#171;AI Астролог&#187; — как раз такой. Давайте я расскажу, как он устроен.</p>



<span id="more-565"></span>


<h2 class="wp-block-heading" id="d0be-d187d191d0bc-d0bfd180d0bed0b5d0bad182-d0b2d0bed0bed0b1d189d0b5">&#1054; &#1095;&#1105;&#1084; &#1087;&#1088;&#1086;&#1077;&#1082;&#1090; &#1074;&#1086;&#1086;&#1073;&#1097;&#1077;?</h2>



<p class="wp-block-paragraph">Представьте: вы заходите на сайт и получаете не шаблонный гороскоп из газеты 1998 года, а <strong>персональный текст, написанный нейросетью прямо для вас</strong>.</p>



<p class="wp-block-paragraph">Хочешь — толкование сна про летающего кота. Хочешь — анализ совместимости имён Александр и Анна (спойлер: там 2800 символов тёплого текста про любовь и дружбу).</p>



<p class="wp-block-paragraph">За этой магией — серьёзная инженерия. И сейчас я покажу, как она работает.</p>


<h2 class="wp-block-heading" id="d0b0d180d185d0b8d182d0b5d0bad182d183d180d0b0-d182d180d0b8-d0bad0b8d182d0b0">&#1040;&#1088;&#1093;&#1080;&#1090;&#1077;&#1082;&#1090;&#1091;&#1088;&#1072;: &#1090;&#1088;&#1080; &#1082;&#1080;&#1090;&#1072;</h2>



<p class="wp-block-paragraph">Система стоит на трёх основных компонентах, как классический веб-стек, но с AI-слоем.</p>



<p class="wp-block-paragraph"><strong>Frontend</strong> — это Next.js 14, современный React-фреймворк. Почему именно он? Потому что нам нужен был серверный рендеринг (SSR) для SEO. Когда Google-бот заходит на страницу <code>/names/anna</code>, он должен увидеть готовый HTML с заголовком и текстом, а не пустой <code>&lt;div id="root"&gt;&lt;/div&gt;</code>, который надо рендерить JavaScript&#8217;ом. Для контентного сайта это критично — без SSR нас бы просто не индексировали.</p>



<p class="wp-block-paragraph"><strong>Backend</strong> — Laravel 11 на PHP 8.3. Да, PHP, и нет, это не архаизм. Laravel — это Rolls-Royce среди PHP-фреймворков. У него из коробки есть всё: очереди, кэш, миграции, админка Filament, аутентификация Sanctum. Когда тебе нужно быстро запустить продукт, а не изобретать велосипеды — Laravel экономит месяцы работы.</p>



<p class="wp-block-paragraph"><strong>База данных</strong> — PostgreSQL 16. Надёжная, мощная, с отличной поддержкой JSON и полнотекстового поиска. Рядом живёт Redis 7 — он отвечает за кэш. Когда тысяча человек одновременно смотрят гороскоп Овна, мы не дёргаем базу каждый раз, а отдаём ответ из Redis за микросекунды.</p>


<h2 class="wp-block-heading" id="docker-d0bad0bed0bdd182d0b5d0b9d0bdd0b5d180d18b-d0bad0b0d0ba-lego">Docker: &#1082;&#1086;&#1085;&#1090;&#1077;&#1081;&#1085;&#1077;&#1088;&#1099; &#1082;&#1072;&#1082; Lego</h2>



<p class="wp-block-paragraph">Всё упаковано в Docker-контейнеры. Почему не просто &#171;поставили на сервер&#187;? Потому что это даёт нам <strong>воспроизводимость</strong>. Один разработчик пишет на Mac, другой на Linux, продакшен на Ubuntu — и везде всё работает одинаково. Плюс можно масштабировать: если нагрузка выросла, просто поднимаем ещё контейнеров.</p>



<p class="wp-block-paragraph">Интересная деталь: backend работает в режиме <code>network_mode: host</code>. Это значит, что он напрямую слушает порт 8002 на хосте, без NAT&#8217;а. Решение нестандартное, но оно даёт нам минимальные задержки и упрощает сетевую конфигурацию.</p>


<h2 class="wp-block-heading" id="aid0b8d0bdd182d0b5d0b3d180d0b0d186d0b8d18f-d181d0b0d0bcd0b0d18f-d0b8d0bdd182d0b5d180d0b5d181d0bdd0b0d18f-d187d0b0d181d182d18c">AI-&#1080;&#1085;&#1090;&#1077;&#1075;&#1088;&#1072;&#1094;&#1080;&#1103;: &#1089;&#1072;&#1084;&#1072;&#1103; &#1080;&#1085;&#1090;&#1077;&#1088;&#1077;&#1089;&#1085;&#1072;&#1103; &#1095;&#1072;&#1089;&#1090;&#1100;</h2>



<p class="wp-block-paragraph">Вот тут начинается магия. Мы используем целый букет неиросетей. В том числе и собственные   наработки и глобальные модели. Если будет интересно &#8212; маякните. Расскажу подробнее. В двух словах тут не получится. По-сути, получается отдельная книга (страниц на 500)..</p>


<h3 class="wp-block-heading" id="d0bfd180d0bed0bcd0bfd182d0b8d0bdd0b6d0b8d0bdd0b8d180d0b8d0bdd0b3-d0b8d181d0bad183d181d181d182d0b2d0be-d180d0b0d0b7d0b3d0bed0b2d0bed180">&#1055;&#1088;&#1086;&#1084;&#1087;&#1090;-&#1080;&#1085;&#1078;&#1080;&#1085;&#1080;&#1088;&#1080;&#1085;&#1075;: &#1080;&#1089;&#1082;&#1091;&#1089;&#1089;&#1090;&#1074;&#1086; &#1088;&#1072;&#1079;&#1075;&#1086;&#1074;&#1086;&#1088;&#1072; &#1089; AI</h3>



<p class="wp-block-paragraph">Самое сложное в AI — не подключить API, а <strong>научить модель писать правильно</strong>. Мы потратили недели на итерации промптов.</p>



<p class="wp-block-paragraph">Плохой промпт:</p>


<pre class="wp-block-code plover-prism prism-github-dark-theme language-clike"><code>&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1078;&#1080; &#1087;&#1088;&#1086; &#1080;&#1084;&#1103; &#1040;&#1083;&#1077;&#1082;&#1089;&#1072;&#1085;&#1076;&#1088;.</code></pre>



<p class="wp-block-paragraph">Результат: сухой текст со списками, эмодзи, заголовками — как из Википедии.</p>



<p class="wp-block-paragraph">Хороший промпт:</p>


<pre class="wp-block-code plover-prism prism-github-dark-theme language-clike"><code>&#1058;&#1099; &mdash; &#1101;&#1082;&#1089;&#1087;&#1077;&#1088;&#1090; &#1087;&#1086; &#1086;&#1085;&#1086;&#1084;&#1072;&#1089;&#1090;&#1080;&#1082;&#1077; &#1080; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1080; &#1080;&#1084;&#1105;&#1085;. &#1055;&#1080;&#1096;&#1080; &#1090;&#1105;&#1087;&#1083;&#1099;&#1081;, 
&#1078;&#1080;&#1074;&#1086;&#1081; &#1090;&#1077;&#1082;&#1089;&#1090; &#1085;&#1072; &#1088;&#1091;&#1089;&#1089;&#1082;&#1086;&#1084; &#1103;&#1079;&#1099;&#1082;&#1077;. &#1041;&#1077;&#1079; &#1089;&#1087;&#1080;&#1089;&#1082;&#1086;&#1074;, &#1073;&#1077;&#1079; &#1101;&#1084;&#1086;&#1076;&#1079;&#1080;, 
&#1073;&#1077;&#1079; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1082;&#1086;&#1074;. &#1055;&#1080;&#1096;&#1080; &#1089;&#1074;&#1103;&#1079;&#1085;&#1099;&#1084;&#1080; &#1072;&#1073;&#1079;&#1072;&#1094;&#1072;&#1084;&#1080;. &#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1078;&#1080; &#1087;&#1088;&#1086; 
&#1080;&#1084;&#1103; &laquo;&#1040;&#1083;&#1077;&#1082;&#1089;&#1072;&#1085;&#1076;&#1088;&raquo;: &#1087;&#1088;&#1086;&#1080;&#1089;&#1093;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1077;, &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;, &#1082;&#1072;&#1082;&#1080;&#1077; &#1095;&#1077;&#1088;&#1090;&#1099; 
&#1093;&#1072;&#1088;&#1072;&#1082;&#1090;&#1077;&#1088;&#1072; &#1086;&#1073;&#1099;&#1095;&#1085;&#1086; &#1087;&#1088;&#1080;&#1087;&#1080;&#1089;&#1099;&#1074;&#1072;&#1102;&#1090; &#1085;&#1086;&#1089;&#1080;&#1090;&#1077;&#1083;&#1103;&#1084; &#1101;&#1090;&#1086;&#1075;&#1086; &#1080;&#1084;&#1077;&#1085;&#1080;, 
&#1080;&#1079;&#1074;&#1077;&#1089;&#1090;&#1085;&#1099;&#1077; &#1083;&#1102;&#1076;&#1080; &#1089; &#1090;&#1072;&#1082;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084;. &#1053;&#1072;&#1087;&#1080;&#1096;&#1080; 4-6 &#1072;&#1073;&#1079;&#1072;&#1094;&#1077;&#1074; 
&#1090;&#1105;&#1087;&#1083;&#1086;&#1075;&#1086; &#1090;&#1077;&#1082;&#1089;&#1090;&#1072;.</code></pre>



<p class="wp-block-paragraph">Результат: текст, который хочется читать. Живой, тёплый, с историей про Македонского и Пушкина.</p>



<p class="wp-block-paragraph">Мы добавили параметр <code>temperature: 0.75</code> — это делает текст разнообразнее. Если поставить 0.2, модель будет писать одно и то же. Если 1.5 — начнёт нести чушь. 0.75 — золотая середина.</p>


<h3 class="wp-block-heading" id="d0bad18dd188d0b8d180d0bed0b2d0b0d0bdd0b8d0b5-d0bdd0b5-d0bfd0bbd0b0d182d0b8d0bc-d0b7d0b0-d0bed0b4d0bdd0be-d0b8-d182d0be-d0b6d0b5-d0b4d0b2">&#1050;&#1101;&#1096;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;: &#1085;&#1077; &#1087;&#1083;&#1072;&#1090;&#1080;&#1084; &#1079;&#1072; &#1086;&#1076;&#1085;&#1086; &#1080; &#1090;&#1086; &#1078;&#1077; &#1076;&#1074;&#1072;&#1078;&#1076;&#1099;</h3>



<p class="wp-block-paragraph">Каждый AI-запрос стоит денег. Поэтому мы агрессивно кэшируем. Когда пользователь проверяет совместимость &#171;Александр + Анна&#187;, мы:</p>


<ol class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1043;&#1077;&#1085;&#1077;&#1088;&#1080;&#1088;&#1091;&#1077;&#1084; &#1093;&#1077;&#1096;: <code>md5("&#1040;&#1083;&#1077;&#1082;&#1089;&#1072;&#1085;&#1076;&#1088;|&#1040;&#1085;&#1085;&#1072;")</code>
</li>



<li>&#1055;&#1088;&#1086;&#1074;&#1077;&#1088;&#1103;&#1077;&#1084;, &#1077;&#1089;&#1090;&#1100; &#1083;&#1080; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090; &#1074; Redis</li>



<li>&#1045;&#1089;&#1083;&#1080; &#1077;&#1089;&#1090;&#1100; &mdash; &#1086;&#1090;&#1076;&#1072;&#1105;&#1084; &#1079;&#1072; 1 &#1084;&#1089;</li>



<li>&#1045;&#1089;&#1083;&#1080; &#1085;&#1077;&#1090; &mdash; &#1079;&#1072;&#1087;&#1088;&#1072;&#1096;&#1080;&#1074;&#1072;&#1077;&#1084; &#1091; AI, &#1089;&#1086;&#1093;&#1088;&#1072;&#1085;&#1103;&#1077;&#1084; &#1074; &#1082;&#1101;&#1096; &#1085;&#1072; 24 &#1095;&#1072;&#1089;&#1072;</li>
</ol>



<p class="wp-block-paragraph">Результат: <strong>80% запросов</strong> обслуживаются из кэша, не нагружая AI API.</p>


<h2 class="wp-block-heading" id="frontend-d181d0bad0bed180d0bed181d182d18c-d0b8-seo">Frontend: &#1089;&#1082;&#1086;&#1088;&#1086;&#1089;&#1090;&#1100; &#1080; SEO</h2>



<p class="wp-block-paragraph">Next.js даёт нам лучшее из двух миров:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>SSG (Static Site Generation)</strong> &#1076;&#1083;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1088;&#1077;&#1076;&#1082;&#1086; &#1084;&#1077;&#1085;&#1103;&#1102;&#1090;&#1089;&#1103; (&#1085;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088;, <code>/names</code> &#1089;&#1086; &#1089;&#1087;&#1080;&#1089;&#1082;&#1086;&#1084; &#1080;&#1084;&#1105;&#1085;)</li>



<li>
<strong>SSR (Server-Side Rendering)</strong> &#1076;&#1083;&#1103; &#1076;&#1080;&#1085;&#1072;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1075;&#1086; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1072; (&#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; &#1082;&#1086;&#1085;&#1082;&#1088;&#1077;&#1090;&#1085;&#1086;&#1075;&#1086; &#1080;&#1084;&#1077;&#1085;&#1080;)</li>



<li>
<strong>ISR (Incremental Static Regeneration)</strong> &mdash; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1103;&#1102;&#1090;&#1089;&#1103; &#1074; &#1092;&#1086;&#1085;&#1077; &#1082;&#1072;&#1078;&#1076;&#1099;&#1077; 60 &#1089;&#1077;&#1082;&#1091;&#1085;&#1076;</li>
</ul>


<h3 class="wp-block-heading" id="perrequest-d0b3d0b5d0bdd0b5d180d0b0d186d0b8d18f-d183d0bcd0bdd0b0d18f-d0bbd0b5d0bdd0b8d0b2d0bed181d182d18c">Per-request &#1075;&#1077;&#1085;&#1077;&#1088;&#1072;&#1094;&#1080;&#1103;: &#1091;&#1084;&#1085;&#1072;&#1103; &#1083;&#1077;&#1085;&#1080;&#1074;&#1086;&#1089;&#1090;&#1100;</h3>



<p class="wp-block-paragraph">Вот элегантное решение, которым я горжусь. У нас 195+ имён в базе. Но что если пользователь вводит редкое имя, которого нет?</p>



<p class="wp-block-paragraph">Вместо того чтобы говорить &#171;не найдено&#187;, мы:</p>


<ol class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1055;&#1088;&#1086;&#1074;&#1077;&#1088;&#1103;&#1077;&#1084;, &#1077;&#1089;&#1090;&#1100; &#1083;&#1080; &#1080;&#1084;&#1103; &#1074; &#1041;&#1044;</li>



<li>&#1045;&#1089;&#1083;&#1080; &#1085;&#1077;&#1090; &mdash; &#1075;&#1077;&#1085;&#1077;&#1088;&#1080;&#1088;&#1091;&#1077;&#1084; on-the-fly &#1095;&#1077;&#1088;&#1077;&#1079; AI</li>



<li>&#1057;&#1086;&#1093;&#1088;&#1072;&#1085;&#1103;&#1077;&#1084; &#1074; &#1041;&#1044; &#1076;&#1083;&#1103; &#1073;&#1091;&#1076;&#1091;&#1097;&#1080;&#1093; &#1079;&#1072;&#1087;&#1088;&#1086;&#1089;&#1086;&#1074;</li>



<li>&#1054;&#1090;&#1076;&#1072;&#1105;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1102;</li>
</ol>



<p class="wp-block-paragraph">Так база растёт органически: чем больше людей пользуются, тем больше контента. Это называется <strong>lazy generation</strong>.</p>


<h2 class="wp-block-heading" id="d0b7d0b0d189d0b8d182d0b0-d0bed182-d0bed188d0b8d0b1d0bed0ba-productionready-d0bad0bed0b4">&#1047;&#1072;&#1097;&#1080;&#1090;&#1072; &#1086;&#1090; &#1086;&#1096;&#1080;&#1073;&#1086;&#1082;: production-ready &#1082;&#1086;&#1076;</h2>



<p class="wp-block-paragraph">Реальный пример из продакшена. Однажды API перестал возвращать поле <code>related</code> (похожие имена). Frontend упал с ошибкой <code>Cannot destructure property 'by_origin' of undefined</code>.</p>



<p class="wp-block-paragraph">Решение — защитное программирование:</p>


<pre class="wp-block-code plover-prism prism-github-dark-theme language-clike"><code>const related = data.related || {};
const by_origin = related.by_origin || [];
const by_letter = related.by_letter || [];</code></pre>



<p class="wp-block-paragraph">Теперь даже если API вернёт пустой объект, страница не упадёт. Это базовая гигиена, но удивительно, как часто её забывают.</p>


<h2 class="wp-block-heading" id="d0b0d0b4d0bcd0b8d0bdd0bad0b0-d0bcd0bed0b4d0b5d180d0b0d186d0b8d18f-aid0bad0bed0bdd182d0b5d0bdd182d0b0">&#1040;&#1076;&#1084;&#1080;&#1085;&#1082;&#1072;: &#1084;&#1086;&#1076;&#1077;&#1088;&#1072;&#1094;&#1080;&#1103; AI-&#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090;&#1072;</h2>



<p class="wp-block-paragraph">AI иногда пишет ерунду. Поэтому мы сделали админку на <strong>Filament 3</strong> — это Laravel-пакет для быстрого создания админ-панелей.</p>



<p class="wp-block-paragraph">Что умеет модератор:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1074;&#1089;&#1077; 195+ &#1080;&#1084;&#1105;&#1085;</li>



<li>&#1054;&#1090;&#1092;&#1080;&#1083;&#1100;&#1090;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1087;&#1086; &#1087;&#1088;&#1086;&#1080;&#1089;&#1093;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1102; (&#1075;&#1088;&#1077;&#1095;&#1077;&#1089;&#1082;&#1086;&#1077;, &#1089;&#1083;&#1072;&#1074;&#1103;&#1085;&#1089;&#1082;&#1086;&#1077;&#8230;)</li>



<li>&#1054;&#1076;&#1086;&#1073;&#1088;&#1080;&#1090;&#1100;/&#1086;&#1090;&#1082;&#1083;&#1086;&#1085;&#1080;&#1090;&#1100; &#1082;&#1086;&#1085;&#1090;&#1077;&#1085;&#1090; &#1084;&#1072;&#1089;&#1089;&#1086;&#1074;&#1086;</li>



<li>&#1054;&#1090;&#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1090;&#1077;&#1082;&#1089;&#1090; &#1074;&#1088;&#1091;&#1095;&#1085;&#1091;&#1102;</li>



<li>&#1059;&#1074;&#1080;&#1076;&#1077;&#1090;&#1100;, &#1082;&#1072;&#1082;&#1080;&#1077; &#1080;&#1084;&#1077;&#1085;&#1072; &#1089;&#1075;&#1077;&#1085;&#1077;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1099; AI, &#1072; &#1082;&#1072;&#1082;&#1080;&#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1099; &#1074;&#1088;&#1091;&#1095;&#1085;&#1091;&#1102;</li>
</ul>



<p class="wp-block-paragraph">Интересная деталь: бейдж на странице имени показывает <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3db.png" alt="🏛" class="wp-smiley" style="height: 1em; max-height: 1em;" /> происхождение. Пользователь сразу видит, что &#171;Анна&#187; — еврейское, а &#171;Ярослава&#187; — славянское. Это добавляет доверия к контенту.</p>


<h2 class="wp-block-heading" id="d0bfd0b5d180d0b5d0bbd0b8d0bdd0bad0bed0b2d0bad0b0-seod0bcd0b0d0b3d0b8d18f">&#1055;&#1077;&#1088;&#1077;&#1083;&#1080;&#1085;&#1082;&#1086;&#1074;&#1082;&#1072;: SEO-&#1084;&#1072;&#1075;&#1080;&#1103;</h2>



<p class="wp-block-paragraph">Поисковики любят, когда страницы связаны между собой. Мы сделали умную перелинковку:</p>



<p class="wp-block-paragraph">На странице &#171;Анна&#187; показываем:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>10 &#1080;&#1084;&#1105;&#1085; &#1077;&#1074;&#1088;&#1077;&#1081;&#1089;&#1082;&#1086;&#1075;&#1086; &#1087;&#1088;&#1086;&#1080;&#1089;&#1093;&#1086;&#1078;&#1076;&#1077;&#1085;&#1080;&#1103;</strong> (&#1052;&#1080;&#1093;&#1072;&#1080;&#1083;, &#1052;&#1072;&#1088;&#1080;&#1103;, &#1048;&#1074;&#1072;&#1085;&#8230;)</li>



<li>
<strong>10 &#1080;&#1084;&#1105;&#1085; &#1085;&#1072; &#1073;&#1091;&#1082;&#1074;&#1091; &#171;&#1040;&#187;</strong> (&#1040;&#1088;&#1080;&#1085;&#1072;, &#1040;&#1088;&#1089;&#1077;&#1085;&#1080;&#1081;, &#1040;&#1083;&#1077;&#1082;&#1089;&#1077;&#1081;&#8230;)</li>
</ul>



<p class="wp-block-paragraph">Это не случайный список — это осмысленные связи, которые улучшают и UX, и SEO. Google видит, что страницы связаны тематически, и ранжирует их выше.</p>


<h2 class="wp-block-heading" id="d181d0bed0b2d0bcd0b5d181d182d0b8d0bcd0bed181d182d18c-d0b8d0bcd191d0bd-d181d0b0d0bcd0b0d18f-virald184d0b8d187d0b0">&#1057;&#1086;&#1074;&#1084;&#1077;&#1089;&#1090;&#1080;&#1084;&#1086;&#1089;&#1090;&#1100; &#1080;&#1084;&#1105;&#1085;: &#1089;&#1072;&#1084;&#1072;&#1103; viral-&#1092;&#1080;&#1095;&#1072;</h2>



<p class="wp-block-paragraph">Эта функция стала хитом. Пользователи вводят два имени и получают <strong>2800 символов</strong> анализа: как эти имена сочетаются в любви, дружбе, работе.</p>



<p class="wp-block-paragraph">Технически:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>POST-&#1079;&#1072;&#1087;&#1088;&#1086;&#1089; &#1085;&#1072; <code>/api/names/compatibility</code>
</li>



<li>AI &#1072;&#1085;&#1072;&#1083;&#1080;&#1079;&#1080;&#1088;&#1091;&#1077;&#1090; &#1087;&#1072;&#1088;&#1091; &#1079;&#1072; 5-7 &#1089;&#1077;&#1082;&#1091;&#1085;&#1076;</li>



<li>&#1056;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090; &#1082;&#1101;&#1096;&#1080;&#1088;&#1091;&#1077;&#1090;&#1089;&#1103; &#1085;&#1072; 24 &#1095;&#1072;&#1089;&#1072;</li>



<li>&#1053;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1077; &mdash; &#1082;&#1085;&#1086;&#1087;&#1082;&#1080; &#171;&#1055;&#1086;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100;&#1089;&#1103;&#187; (Telegram, VK, WhatsApp, OK)</li>
</ul>



<p class="wp-block-paragraph">Почему viral? Потому что люди любят делиться результатами про себя и партнёра. Одна такая публикация в соцсетях = бесплатная реклама.</p>


<h2 class="wp-block-heading" id="d0bcd0b0d181d188d182d0b0d0b1-d0b2-d186d0b8d184d180d0b0d185">&#1052;&#1072;&#1089;&#1096;&#1090;&#1072;&#1073; &#1074; &#1094;&#1080;&#1092;&#1088;&#1072;&#1093;</h2>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>
<strong>195 &#1080;&#1084;&#1105;&#1085;</strong> &#1089; AI-&#1090;&#1086;&#1083;&#1082;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;&#1084;&#1080; (100% coverage)</li>



<li>
<strong>2,206 &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1086;&#1074; &#1089;&#1085;&#1086;&#1074;</strong> &#1074; &#1073;&#1072;&#1079;&#1077;</li>



<li><strong>50+ API endpoints</strong></li>



<li><strong>30+ frontend &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;</strong></li>



<li>
<strong>~2-5 &#1089;&#1077;&#1082;&#1091;&#1085;&#1076;</strong> &#1085;&#1072; AI-&#1075;&#1077;&#1085;&#1077;&#1088;&#1072;&#1094;&#1080;&#1102;</li>



<li>
<strong>80% cache hit rate</strong> &#1076;&#1083;&#1103; &#1089;&#1086;&#1074;&#1084;&#1077;&#1089;&#1090;&#1080;&#1084;&#1086;&#1089;&#1090;&#1080;</li>
</ul>


<h2 class="wp-block-heading" id="d187d182d0be-d0bcd0bed0b6d0bdd0be-d183d0bbd183d187d188d0b8d182d18c">&#1063;&#1090;&#1086; &#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1083;&#1091;&#1095;&#1096;&#1080;&#1090;&#1100;?</h2>



<p class="wp-block-paragraph">Честно говоря, есть куда расти:</p>



<p class="wp-block-paragraph"><strong>Микросервисы.</strong> Сейчас AI-логика живёт внутри Laravel. При росте нагрузки логично вынести её в отдельный FastAPI-сервис (у нас уже есть Python-контейнер для астрологических расчётов).</p>



<p class="wp-block-paragraph"><strong>CDN.</strong> Статические ассеты (картинки, CSS, JS) можно раздавать через Cloudflare или Yandex Cloud CDN. Это ускорит загрузку в разы.</p>



<p class="wp-block-paragraph"><strong>WebSocket.</strong> Для real-time фич (например, live-чат с AI-астрологом) нужен WebSocket. Сейчас всё работает через HTTP-запросы.</p>



<p class="wp-block-paragraph"><strong>Elasticsearch.</strong> PostgreSQL хорош, но для сложного поиска (например, &#171;найди имена, которые означают &#8216;сильный&#8217; и имеют славянское происхождение&#187;) Elasticsearch будет быстрее.</p>



<p class="wp-block-paragraph"><strong>Kubernetes.</strong> Когда проект вырастет до миллионов пользователей, Docker Compose станет узким местом. K8s даст нам автомасштабирование и отказоустойчивость.</p>


<h2 class="wp-block-heading" id="d0b3d0bbd0b0d0b2d0bdd18bd0b9-d0b2d18bd0b2d0bed0b4">&#1043;&#1083;&#1072;&#1074;&#1085;&#1099;&#1081; &#1074;&#1099;&#1074;&#1086;&#1076;</h2>



<p class="wp-block-paragraph">Этот проект — пример того, как <strong>современный стек решает реальные бизнес-задачи</strong>. Мы не использовали технологии ради технологий. Каждый выбор был обоснован:</p>


<ul class="wp-block-list is-layout-flex wp-container-core-list-is-layout-c4cf3051 wp-block-list-is-layout-flex" style="">
<li>Laravel &mdash; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1073;&#1099;&#1089;&#1090;&#1088;&#1086;</li>



<li>Next.js &mdash; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; SEO</li>



<li>PostgreSQL &mdash; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1085;&#1072;&#1076;&#1105;&#1078;&#1085;&#1086;</li>



<li>Qwen &mdash; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1073;&#1099;&#1089;&#1090;&#1088;&#1086; &#1080; &#1076;&#1105;&#1096;&#1077;&#1074;&#1086;</li>



<li>Docker &mdash; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1074;&#1086;&#1089;&#1087;&#1088;&#1086;&#1080;&#1079;&#1074;&#1086;&#1076;&#1080;&#1084;&#1086;</li>
</ul>



<p class="wp-block-paragraph">Результат: продукт, который работает стабильно, масштабируется и приносит пользу пользователям. И да, нейросеть действительно пишет про любовь Александра и Анны лучше, чем некоторые человеческие астрологи. </p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><em>P.S. Если вам интересно, как мы решали конкретные проблемы (дублирование роутов, холодный старт контейнеров, конфликты Next.js) — могу рассказать отдельно. Там были настоящие детективные истории.</em></p>



<p class="wp-block-paragraph">Подписывайтесь! В следующей статье расскажу про личный кабинет. Это целый оркестр технологий и изящество решений в попытках их полноценного использования.</p>



<p class="wp-block-paragraph">Вторую часть можно прочитать: <strong><a href="https://andreyprokopenko.ru/lichnyj-kabinet-v-ai-astrologe-gde-magiya-stanovitsya-lichnoj/">ЗДЕСЬ</a></strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="648" src="https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-1024x648.png" alt="" class="wp-image-566" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-1024x648.png 1024w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-300x190.png 300w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38-768x486.png 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/09/2026-08-31_21-42-38.png 1283w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<p>Сообщение <a href="https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/">Как мы построили AI-астролога: история изнутри</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/kak-my-postroili-ai-astrologa-istoriya-iznutri/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Версия 1.1.2</title>
		<link>https://andreyprokopenko.ru/versiya-1-1-2/</link>
					<comments>https://andreyprokopenko.ru/versiya-1-1-2/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Sat, 15 Aug 2026 15:23:07 +0000</pubDate>
				<category><![CDATA[Блог разработчика]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=562</guid>

					<description><![CDATA[<p>Добавлена проверка на перебор (брутфорс) в авторизации в личных кабинетах агента, клиента и партнера. Добавлена возможность выбора нескольких языков в активностях. Добавлена первичная реализация API для подключения партнеров и сторонних приложений.</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/versiya-1-1-2/">Версия 1.1.2</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Добавлена проверка на перебор (брутфорс) в авторизации в личных кабинетах агента, клиента и партнера.</p>



<p class="wp-block-paragraph">Добавлена возможность выбора нескольких языков в активностях.</p>



<p class="wp-block-paragraph">Добавлена первичная реализация API для подключения партнеров и сторонних приложений.</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/versiya-1-1-2/">Версия 1.1.2</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/versiya-1-1-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Фотопрогулка по берегу горной реки в Пятигорске</title>
		<link>https://andreyprokopenko.ru/fotoprogulka-po-beregu-gornoj-reki-v-pyatigorske/</link>
					<comments>https://andreyprokopenko.ru/fotoprogulka-po-beregu-gornoj-reki-v-pyatigorske/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 10:37:46 +0000</pubDate>
				<category><![CDATA[Личный блог]]></category>
		<category><![CDATA[Фото и видео]]></category>
		<category><![CDATA[Лето]]></category>
		<category><![CDATA[Природа]]></category>
		<category><![CDATA[Фотобанк]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=538</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />В Пятигорске можно найти не только горы. Река Подкумок бежит в городской черте. Тем не менее, это горная река. Чем хороши горные реки? Они сильно зависят от времени года и погоды. Таят снега и ледники, идут сильные дожди, и спокойная река на глазах темнеет. Начинает бурлить превращаясь в ревущий поток. Подкумок, как горная река, отлично [&#8230;]</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/fotoprogulka-po-beregu-gornoj-reki-v-pyatigorske/">Фотопрогулка по берегу горной реки в Пятигорске</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />
<p class="wp-block-paragraph">В Пятигорске можно найти не только горы. Река Подкумок бежит в городской черте. Тем не менее, это горная река.</p>



<span id="more-538"></span>



<p class="wp-block-paragraph">Чем хороши горные реки? Они сильно зависят от времени года и погоды. Таят снега и ледники, идут сильные дожди, и спокойная река на глазах темнеет. Начинает бурлить превращаясь в ревущий поток.</p>



<p class="wp-block-paragraph">Подкумок, как горная река, отлично подходит для фотопрогулок. Летом, из-за частых дождей в горах (выше по течению) превращается в рычащую стихию. Если дождей нет &#8212; в спокойную, бирюзового цвета, речку. Множество порогов и перекатов делают каждый поворот реки уникальным.</p>


<h2 class="wp-block-heading" id="d0b2d0bed182-d0bdd0b5d0bcd0bdd0bed0b3d0be-d184d0bed182d0be-d181-d0bfd0bed181d0bbd0b5d0b4d0bdd0b5d0b9-d0bfd180d0bed0b3d183d0bbd0bad0b8">&#1042;&#1086;&#1090;, &#1085;&#1077;&#1084;&#1085;&#1086;&#1075;&#1086; &#1092;&#1086;&#1090;&#1086; &#1089; &#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1077;&#1081; &#1087;&#1088;&#1086;&#1075;&#1091;&#1083;&#1082;&#1080;:</h2>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6aa2c3e90281f&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e902cb6&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e902cb6" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="687" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="541" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-687x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-541" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-687x1024.jpeg 687w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-201x300.jpeg 201w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-768x1145.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-1030x1536.jpeg 1030w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-1373x2048.jpeg 1373w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698415828-scaled.jpeg 1716w" sizes="auto, (max-width: 687px) 100vw, 687px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9031c0&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9031c0" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="640" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="544" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-640x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-544" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-640x1024.jpeg 640w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-187x300.jpeg 187w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-768x1229.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-960x1536.jpeg 960w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-1280x2048.jpeg 1280w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698322343-scaled.jpeg 1600w" sizes="auto, (max-width: 640px) 100vw, 640px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9035b7&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9035b7" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="540" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-540" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698262962-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9039ae&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9039ae" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="755" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="542" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-755x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-542" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-755x1024.jpeg 755w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-221x300.jpeg 221w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-768x1041.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-1133x1536.jpeg 1133w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-1510x2048.jpeg 1510w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698191643-scaled.jpeg 1888w" sizes="auto, (max-width: 755px) 100vw, 755px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e903d9e&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e903d9e" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="688" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="543" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-688x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-543" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-688x1024.jpeg 688w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-202x300.jpeg 202w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-768x1143.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-1032x1536.jpeg 1032w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-1376x2048.jpeg 1376w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698123545-scaled.jpeg 1720w" sizes="auto, (max-width: 688px) 100vw, 688px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9041a8&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9041a8" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="614" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="550" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-614x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-550" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-614x1024.jpeg 614w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-180x300.jpeg 180w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-768x1281.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-921x1536.jpeg 921w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-1228x2048.jpeg 1228w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698046706-scaled.jpeg 1535w" sizes="auto, (max-width: 614px) 100vw, 614px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e904591&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e904591" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="545" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-545" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697949937-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e904985&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e904985" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="547" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-547" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786698009379-1-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e904d79&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e904d79" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="649" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="546" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-649x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-546" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-649x1024.jpeg 649w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-190x300.jpeg 190w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-768x1212.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-974x1536.jpeg 974w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-1298x2048.jpeg 1298w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697850056-scaled.jpeg 1623w" sizes="auto, (max-width: 649px) 100vw, 649px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e90518e&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e90518e" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="548" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-548" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697772959-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e905557&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e905557" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="657" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="549" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-657x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-549" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-657x1024.jpeg 657w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-193x300.jpeg 193w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-768x1196.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-986x1536.jpeg 986w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-1315x2048.jpeg 1315w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697699894-scaled.jpeg 1643w" sizes="auto, (max-width: 657px) 100vw, 657px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e905912&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e905912" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="551" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-551" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697631090-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e905d5f&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e905d5f" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1024" height="576" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="552" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-1024x576.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-552" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-1024x576.jpeg 1024w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-300x169.jpeg 300w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-768x432.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-1536x864.jpeg 1536w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697490011-2048x1153.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e906022&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e906022" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="553" src="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-576x1024.jpeg" alt="Фотопрогулка по берегу горной реки в Пятигорске" class="wp-image-553" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/08/1786697073329-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</figure>


<h2 class="wp-block-heading" id="d0b2d0b8d0b4d0b5d0be-d181-d0b3d0bed180d0bdd0bed0b9-d180d0b5d0bad0bed0b9-d0bfd0bed0b4d0bad183d0bcd0bed0ba">&#1042;&#1080;&#1076;&#1077;&#1086; &#1089; &#1075;&#1086;&#1088;&#1085;&#1086;&#1081; &#1088;&#1077;&#1082;&#1086;&#1081; &#1055;&#1086;&#1076;&#1082;&#1091;&#1084;&#1086;&#1082;</h2>


<iframe loading="lazy" width="100%" height="405" src="https://rutube.ru/play/embed/01d93723989eb1472c92cbf23cf44e9f/" style="border:none;" allow="clipboard-write; autoplay" allowfullscreen class=" is-display-flex-desktop is-display-flex-tablet is-display-flex-mobile"></iframe>


<h2 class="wp-block-heading" id="d185d0bed182d0b8d182d0b5-d181d0be-d0bcd0bdd0bed0b9-d0bdd0b0-d184d0bed182d0bed0bfd180d0bed0b3d183d0bbd0bad183">&#1061;&#1086;&#1090;&#1080;&#1090;&#1077; &#1089;&#1086; &#1084;&#1085;&#1086;&#1081; &#1085;&#1072; &#1092;&#1086;&#1090;&#1086;&#1087;&#1088;&#1086;&#1075;&#1091;&#1083;&#1082;&#1091;?</h2>



<p class="wp-block-paragraph">Выберите доступный вариант:</p>


<div class="feedzy-d027f6e4e08ede16d0b77f564162ec28 feedzy-rss"><ul><li  style="padding: 9px 0 15px" class="rss_item"><div class="rss_image" style="height:90px;aspect-ratio:auto;"><a href="https://my.magazin-tour.ru/activities/fotoprogulka-po-kurortnoy-chasti-pyatigorska-s-podemom-na-goru-mashuk" target="_blank" rel=" noopener" title="Фотопрогулка по курортной части Пятигорска с подъемом на гору Машук" style="height:90px;aspect-ratio:auto;"><img decoding="async" src="https://andreyprokopenko.ru/wp-content/plugins/feedzy-rss-feeds/img/feedzy.svg" title="Фотопрогулка по курортной части Пятигорска с подъемом на гору Машук" style="height:90px;aspect-ratio:auto;object-fit: fill"></a></div><span class="title"><a href="https://my.magazin-tour.ru/activities/fotoprogulka-po-kurortnoy-chasti-pyatigorska-s-podemom-na-goru-mashuk" target="_blank" rel=" noopener">Фотопрогулка по курортной части Пятигорска с подъемом на гору Машук</a></span><div class="rss_content" style=""><p>Хотите получить максимум от фотопрогулки? Это ваш вариант! Вы приехали в Пятигорск и хотите не только запомнить места где побывали, но, и сохранить красивые фотографии сделанные в ваш телефон. Это реально., Город: Пятигорск, Цена: 6 000 ₽</p></div></li><li  style="padding: 9px 0 15px" class="rss_item"><div class="rss_image" style="height:90px;aspect-ratio:auto;"><a href="https://my.magazin-tour.ru/activities/fotoprogulka-po-beregu-gornoy-reki-v-pyatigorske" target="_blank" rel=" noopener" title="Фотопрогулка по берегу горной реки в Пятигорске" style="height:90px;aspect-ratio:auto;"><img decoding="async" src="https://andreyprokopenko.ru/wp-content/plugins/feedzy-rss-feeds/img/feedzy.svg" title="Фотопрогулка по берегу горной реки в Пятигорске" style="height:90px;aspect-ratio:auto;object-fit: fill"></a></div><span class="title"><a href="https://my.magazin-tour.ru/activities/fotoprogulka-po-beregu-gornoy-reki-v-pyatigorske" target="_blank" rel=" noopener">Фотопрогулка по берегу горной реки в Пятигорске</a></span><div class="rss_content" style=""><p>Как хорошо провести время, но, так, чтобы это было ещё и полезно? Есть отличная идея., Город: Пятигорск, Цена: 6 000 ₽</p></div></li></ul> </div><style type="text/css" media="all">.feedzy-rss .rss_item .rss_image{float:left;position:relative;border:none;text-decoration:none;max-width:100%}.feedzy-rss .rss_item .rss_image span{display:inline-block;position:absolute;width:100%;height:100%;background-position:50%;background-size:cover}.feedzy-rss .rss_item .rss_image{margin:.3em 1em 0 0;content-visibility:auto}.feedzy-rss ul{list-style:none}.feedzy-rss ul li{display:inline-block}</style>


<p class="wp-block-paragraph">Все остальные варианты: <strong><a href="https://my.magazin-tour.ru/partners/fotoprogulki-kmv">ЗДЕСЬ</a></strong></p>



<p class="wp-block-paragraph"></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/fotoprogulka-po-beregu-gornoj-reki-v-pyatigorske/">Фотопрогулка по берегу горной реки в Пятигорске</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/fotoprogulka-po-beregu-gornoj-reki-v-pyatigorske/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Для участников фотопрогулок</title>
		<link>https://andreyprokopenko.ru/dlya/</link>
					<comments>https://andreyprokopenko.ru/dlya/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Tue, 14 Jul 2026 13:27:15 +0000</pubDate>
				<category><![CDATA[Фото и видео]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=533</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />Друзья! Я искренне рад тому, что мы с вами встречались на фотопрогулках. Спасибо за предоставленный мне шанс стать проводником в мир фотографии! Хочу поделиться с вами идеей получения интересных фото. Их можно посмотреть: ЗДЕСЬ Также открываю доступ к архиву фото из моего телефона. Он будет постоянно пополняться. Фотки можно посмотреть: ЗДЕСЬ Кстати, их можно использовать. [&#8230;]</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/dlya/">Для участников фотопрогулок</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />
<p class="wp-block-paragraph">Друзья!</p>



<p class="wp-block-paragraph">Я искренне рад тому, что мы с вами встречались на фотопрогулках.</p>



<span id="more-533"></span>



<p class="wp-block-paragraph">Спасибо за предоставленный мне шанс стать проводником в мир фотографии!</p>



<p class="wp-block-paragraph">Хочу поделиться с вами идеей получения интересных фото. Их можно посмотреть: <a href="https://disk.yandex.ru/d/0jgmn3J5KalUSA">ЗДЕСЬ</a></p>



<p class="wp-block-paragraph">Также открываю доступ к архиву фото из моего телефона. Он будет постоянно пополняться. </p>



<p class="wp-block-paragraph">Фотки можно посмотреть: <a href="https://disk.yandex.ru/d/quohqqjO16MoUw">ЗДЕСЬ</a></p>



<p class="wp-block-paragraph">Кстати, их можно использовать. Участники фотопрогулок могут их использовать без ограничений.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="576" height="1024" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-576x1024.jpg" alt="" class="wp-image-534" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-576x1024.jpg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-169x300.jpg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-768x1365.jpg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-864x1536.jpg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-1153x2048.jpg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/1000761239-scaled.jpg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>
<p>Сообщение <a href="https://andreyprokopenko.ru/dlya/">Для участников фотопрогулок</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/dlya/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Пятигорск глазами туриста. Фотографируем все красивые места в городе. Часть 1</title>
		<link>https://andreyprokopenko.ru/pyatigorsk-glazami-turista-fotografi/</link>
					<comments>https://andreyprokopenko.ru/pyatigorsk-glazami-turista-fotografi/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Sat, 11 Jul 2026 09:09:43 +0000</pubDate>
				<category><![CDATA[Фото и видео]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=509</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />Фотопрогулки по Пятигорску становятся все популярнее и популярнее. Это не банальные экскурсии с заученными гидами текстами. Это, буквально, погружение в атмосферу курорта. В этой серии статей под названием &#171;Пятигорск глазами туриста&#187; буду показывать вам наиболее выигрышные &#171;захваты&#187; в объектив камеры вашего мобильного телефона. В общем, если вы видите на экране примерно похожую картинку, то, наверняка [&#8230;]</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/pyatigorsk-glazami-turista-fotografi/">Пятигорск глазами туриста. Фотографируем все красивые места в городе. Часть 1</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />
<p class="wp-block-paragraph"><br>Фотопрогулки по Пятигорску становятся все популярнее и популярнее. Это не банальные экскурсии с заученными гидами текстами. Это, буквально, погружение в атмосферу курорта.</p>



<span id="more-509"></span>



<p class="wp-block-paragraph">В этой серии статей под названием &#171;Пятигорск глазами туриста&#187;  буду показывать вам наиболее выигрышные &#171;захваты&#187; в объектив камеры вашего мобильного телефона.</p>



<p class="wp-block-paragraph">В общем, если вы видите на экране примерно похожую картинку, то, наверняка фотография получится красивой. Её будет совершенно не стыдно показать друзьям и родственникам (и разместить в блогах в социальных сетях).</p>



<p class="wp-block-paragraph">Фотографии, естественно, увеличиваются при нажатии.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e923950&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e923950" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-576x1024.jpeg" alt="Памятник Остапу Бендеру у входа в озеро Провал в Пятигорске" class="wp-image-510" style="width:380px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130706-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Памятник Остапу Бендеру у входа в озеро Провал в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e923f59&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e923f59" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-576x1024.jpeg" alt="Внутри озера Провал в Пятигорске" class="wp-image-511" style="aspect-ratio:0.5625117503290092;width:379px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130502-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Внутри озера Провал в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9243c4&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9243c4" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-576x1024.jpeg" alt="У входа в озеро Провал в Пятигорске" class="wp-image-512" style="width:381px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_130254-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">У входа в озеро Провал в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e92480f&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e92480f" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-576x1024.jpeg" alt="Цветочная стена около санатория Родник в Пятигорске" class="wp-image-514" style="width:387px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131407-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Стена из роз около санатория Родник в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e924c48&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e924c48" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-576x1024.jpeg" alt="санаторий Родник в Пятигорске" class="wp-image-515" style="width:393px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131427-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e925083&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e925083" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-576x1024.jpeg" alt="Бульвар Гагарина в курортной зоне в Пятигорске" class="wp-image-516" style="aspect-ratio:0.5625055768715981;width:394px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_131856-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Бульвар Гагарина в курортной зоне в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e925522&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e925522" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-576x1024.jpeg" alt="Вид на Пироговские ванны в Пятигорске" class="wp-image-517" style="width:402px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_132304-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Пироговские ванны в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9257b1&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9257b1" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-576x1024.jpeg" alt="Вид на Эолову арфу в Пятигорске" class="wp-image-518" style="aspect-ratio:0.5625134310396699;width:394px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133040-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Эолову арфу в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e925cf0&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e925cf0" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-576x1024.jpeg" alt="Скульптура Бэлла в Пятигорске" class="wp-image-519" style="aspect-ratio:0.5625080193319362;width:398px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133323-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Скульптура Бэлла в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e926191&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e926191" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-576x1024.jpeg" alt="Грот Лермонтова в Пятигорске" class="wp-image-520" style="width:401px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133504-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Грот Лермонтова в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9265c7&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9265c7" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-576x1024.jpeg" alt="Вид на прогулочную дорожку в курортной зоне в Пятигорске" class="wp-image-521" style="aspect-ratio:0.5625081988718352;width:399px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_133900-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на прогулочную дорожку в курортной зоне в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9269e0&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9269e0" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-576x1024.jpeg" alt="Вид на Михайловскую гору и Эолову арфу в Пятигорске" class="wp-image-522" style="width:400px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134239-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Михайловскую гору и Эолову арфу в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e926e59&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e926e59" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-576x1024.jpeg" alt="Вид на Эолову арфу и гору Машук в Пятигорске" class="wp-image-523" style="width:398px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134425-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Эолову арфу и гору Машук в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9272d0&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9272d0" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-576x1024.jpeg" alt="Вид на нарисованного орла на горе Горячей в Пятигорске" class="wp-image-524" style="width:399px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_134633-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на нарисованного орла на горе Горячей в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e9276d8&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e9276d8" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="619" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-619x1024.jpeg" alt="Вид на Китайскую беседку в Пятигорске в солнечную погоду" class="wp-image-525" style="width:402px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-619x1024.jpeg 619w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-181x300.jpeg 181w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-768x1270.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-929x1536.jpeg 929w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-1239x2048.jpeg 1239w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135138-scaled.jpeg 1549w" sizes="auto, (max-width: 619px) 100vw, 619px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Китайскую беседку в Пятигорске в солнечную погоду</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e927acb&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e927acb" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-576x1024.jpeg" alt="Вид на грот Дианы в парке Цветник в Пятигорске" class="wp-image-526" style="width:405px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_135953-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на грот Дианы в парке Цветник в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e927ebb&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e927ebb" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-576x1024.jpeg" alt="Вид на Лермонтовскую галерею сбоку в парке Цветник в Пятигорске" class="wp-image-527" style="width:404px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140033-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на Лермонтовскую галерею сбоку в парке Цветник в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e928295&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e928295" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-576x1024.jpeg" alt="Вид на цветочные клумбы летом в парке Цветник в Пятигорске" class="wp-image-528" style="width:402px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140330-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на цветочные клумбы летом в парке Цветник в Пятигорске</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e928680&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e928680" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-576x1024.jpeg" alt="Вид на атмосферное здание сувениры и цветочную клумбу в парке Цветник в Пятигорске летом" class="wp-image-529" style="width:404px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140221-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на атмосферное здание сувениры и цветочную клумбу в парке Цветник в Пятигорске летом</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e928a94&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e928a94" class="wp-block-image size-large is-resized wp-lightbox-container"><img loading="lazy" decoding="async" width="576" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-576x1024.jpeg" alt="Вид на институт курортологии  с колоннами у входа в парк Цветник летом" class="wp-image-530" style="width:407px;height:auto" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-576x1024.jpeg 576w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-169x300.jpeg 169w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-768x1365.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-864x1536.jpeg 864w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-1153x2048.jpeg 1153w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260618_140521-scaled.jpeg 1441w" sizes="auto, (max-width: 576px) 100vw, 576px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Вид на институт курортологии с колоннами у входа в парк Цветник летом</figcaption></figure>


<h2 class="wp-block-heading" id="d187d182d0be-d182d0b0d0bad0bed0b5-d184d0bed182d0bed0bfd180d0bed0b3d183d0bbd0bad0b0-d0bfd0be-d0bfd18fd182d0b8d0b3d0bed180d181d0bad183">&#1063;&#1090;&#1086; &#1090;&#1072;&#1082;&#1086;&#1077; &#1092;&#1086;&#1090;&#1086;&#1087;&#1088;&#1086;&#1075;&#1091;&#1083;&#1082;&#1072; &#1087;&#1086; &#1055;&#1103;&#1090;&#1080;&#1075;&#1086;&#1088;&#1089;&#1082;&#1091;?</h2>



<p class="wp-block-paragraph">Это уникальный процесс прогулки по курортной части Пятигорска с фотографом по определенному заранее маршруту. </p>



<p class="wp-block-paragraph">Во время прогулки вы сами получите практический опыт и знания о том, как сфотографировать так, чтобы не было стыдно.  О прогулке по курортному городу можно узнать: <strong><a href="https://andreyprokopenko.ru/fotoprogulka-po-kurortnoj-chasti-pyatigorska/">ЗДЕСЬ</a></strong></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/pyatigorsk-glazami-turista-fotografi/">Пятигорск глазами туриста. Фотографируем все красивые места в городе. Часть 1</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/pyatigorsk-glazami-turista-fotografi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Рабочий адрес приложения</title>
		<link>https://andreyprokopenko.ru/h/</link>
					<comments>https://andreyprokopenko.ru/h/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Sun, 05 Jul 2026 10:57:30 +0000</pubDate>
				<category><![CDATA[О приложении "КМВ Новости"]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=503</guid>

					<description><![CDATA[<p>Идут работы по настройке постоянного адреса PWA-приложения. UPD: Домен https://app.news-kmv.ru/ привязан В настоящий момент приложение доступно по адресу: https://bbajphollslm0c6jrn5v.containers.yandexcloud.net/ После окончания подключения DNS приложение будет прописано по адресу: https://app.news-kmv.ru</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/h/">Рабочий адрес приложения</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Идут работы по настройке постоянного адреса PWA-приложения.</p>



<span id="more-503"></span>



<p class="wp-block-paragraph">UPD: Домен <a href="https://app.news-kmv.ru/">https://app.news-kmv.ru/</a> привязан</p>



<p class="wp-block-paragraph">В настоящий момент приложение доступно по адресу: <a href="https://bbajphollslm0c6jrn5v.containers.yandexcloud.net/">https://bbajphollslm0c6jrn5v.containers.yandexcloud.net/</a></p>



<p class="wp-block-paragraph">После окончания подключения DNS приложение будет прописано по адресу: <a href="https://app.news-kmv.ru">https://app.news-kmv.ru</a></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/h/">Рабочий адрес приложения</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/h/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как установить приложение?</title>
		<link>https://andreyprokopenko.ru/kak-ustanovit-prilozhenie/</link>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Sun, 05 Jul 2026 09:45:55 +0000</pubDate>
				<category><![CDATA[О приложении "КМВ Новости"]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=496</guid>

					<description><![CDATA[<p>Рассказываем о том, как установить приложение: На компьютер На android На Ios</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/kak-ustanovit-prilozhenie/">Как установить приложение?</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Рассказываем о том, как установить приложение:</p>



<p class="wp-block-paragraph">На компьютер</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">На android</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">На Ios</p>



<p class="wp-block-paragraph"></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/kak-ustanovit-prilozhenie/">Как установить приложение?</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>О приложении &#171;КМВ Новости&#187;</title>
		<link>https://andreyprokopenko.ru/o-prilozhenii-kmv-novosti/</link>
					<comments>https://andreyprokopenko.ru/o-prilozhenii-kmv-novosti/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Sun, 05 Jul 2026 08:39:21 +0000</pubDate>
				<category><![CDATA[О приложении "КМВ Новости"]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=491</guid>

					<description><![CDATA[<p>Рады сообщить Вам о том, что наконец запустили приложение с важной информацией. Нам очень не хотелось перегружать его информационно. Оставили только самое важное! Приложение развивается. Будем признательны обратной связи. Сейчас работают 3 глобальных раздела: Оповещения о БПЛА и ЧС Новости Ставропольского края Афиша Ставропольского края Вопросы:</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/o-prilozhenii-kmv-novosti/">О приложении &#171;КМВ Новости&#187;</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Рады сообщить Вам о том, что наконец запустили приложение с важной информацией.</p>



<span id="more-491"></span>



<p class="wp-block-paragraph">Нам очень не хотелось перегружать его информационно. Оставили только самое важное!</p>



<p class="wp-block-paragraph">Приложение развивается. Будем признательны обратной связи.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Сейчас работают 3 глобальных раздела:</strong></p>



<p class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-paragraph">Оповещения о БПЛА и ЧС</p>



<p class="has-neutral-200-background-color has-background wp-block-paragraph">Новости Ставропольского края</p>



<p class="has-neutral-200-background-color has-background wp-block-paragraph">Афиша Ставропольского края</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Вопросы:</strong></p>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a49f0ca2 wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://andreyprokopenko.ru/kak-ustanovit-prilozhenie/">Как установить приложение?</a></div>
</div>



<p class="wp-block-paragraph"></p>
<p>Сообщение <a href="https://andreyprokopenko.ru/o-prilozhenii-kmv-novosti/">О приложении &#171;КМВ Новости&#187;</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/o-prilozhenii-kmv-novosti/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ночной Машук с туманом на вершине</title>
		<link>https://andreyprokopenko.ru/nochnoj-mashuk-s-tumano/</link>
					<comments>https://andreyprokopenko.ru/nochnoj-mashuk-s-tumano/#respond</comments>
		
		<dc:creator><![CDATA[kmvlive]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 02:39:36 +0000</pubDate>
				<category><![CDATA[Лето]]></category>
		<category><![CDATA[Природа]]></category>
		<guid isPermaLink="false">https://andreyprokopenko.ru/?p=488</guid>

					<description><![CDATA[<p><img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />На фото ночное движение облаков на вершине горы.</p>
<p>Сообщение <a href="https://andreyprokopenko.ru/nochnoj-mashuk-s-tumano/">Ночной Машук с туманом на вершине</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="150" height="150" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-150x150.jpeg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="" decoding="async" loading="lazy" />
<p class="wp-block-paragraph">На фото ночное движение облаков на вершине горы.</p>



<span id="more-488"></span>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6aa2c3e92d832&quot;}" data-wp-interactive="core/image" data-wp-key="6aa2c3e92d832" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="745" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-745x1024.jpeg" alt="" class="wp-image-489" srcset="https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-745x1024.jpeg 745w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-218x300.jpeg 218w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-768x1056.jpeg 768w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-1118x1536.jpeg 1118w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-1490x2048.jpeg 1490w, https://andreyprokopenko.ru/wp-content/uploads/2026/07/img_20260629_014051-scaled.jpeg 1863w" sizes="auto, (max-width: 745px) 100vw, 745px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>Сообщение <a href="https://andreyprokopenko.ru/nochnoj-mashuk-s-tumano/">Ночной Машук с туманом на вершине</a> появились сначала на <a href="https://andreyprokopenko.ru">Андрей Прокопенко</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://andreyprokopenko.ru/nochnoj-mashuk-s-tumano/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
