Суть
Одно приложение живёт в двух мирах одновременно
У любого приложения есть как минимум две версии: та, где вы и агент его строите, и та, которой пользуются реальные люди.
Среда разработки (development, dev) — место, где приложение пишут и проверяют. Обычно это ваш компьютер: открываете браузер, набираете localhost:3000 (адрес приложения на вашей машине) и видите то, что агент только что сделал. Здесь можно ломать, экспериментировать, видны подробные сообщения об ошибках — всё это нужно разработчику. Реальные пользователи этого не видят.
Продакшн (production, prod) — боевая версия в интернете, которой пользуются реальные люди. Она должна быть стабильной и быстрой. Подробные ошибки там скрыты намеренно: если сервер показывает внутренние детали ошибок всем подряд, это дыра в безопасности.
Между ними бывает staging (предпрод) — промежуточная копия прода. Туда выкладывают версию перед боевым релизом, чтобы проверить всё в условиях, максимально близких к настоящим, не рискуя реальными пользователями.1
У каждой среды — свои переменные окружения (настройки и ключи, которые приложение читает при запуске). В dev — тестовая база данных и тестовый ключ оплаты. В prod — боевая база и настоящий ключ. Именно поэтому «работает локально, падает на проде» — это почти всегда про разницу сред: другой ключ, другая база или настройка, которую забыли добавить на сервер.1
📌 Практическое правило: Если агент говорит, что что-то «работает локально», уточните: «Переменные окружения на проде добавлены?» — чаще всего именно там собака зарыта.