Начните с конкретной задачи
Определите, что посетитель должен иметь возможность делать, какие данные нужны приложению и от каких внешних сервисов оно зависит. У статического веб-сайта, API и фоновой задачи разные требования. Описывайте их отдельно, даже если они используют один репозиторий.
Разделите код, настройки и данные
Обращайтесь с исходным кодом, настройками среды выполнения и сохранёнными данными как с отдельными аспектами. Код должен находиться под управлением версий. Конфигурация описывает среду. Постоянные данные нуждаются в процессе резервного копирования и восстановления. Такое разделение облегчает изменение одного компонента без перестройки всех остальных компонентов.
Сделайте процесс воспроизводимым
Запишите команду сборки, ожидаемый результат и проверки, которые показывают, что релиз работает. Другой разработчик должен иметь возможность выполнить те же шаги. Сохраняйте последнюю рабочую версию релиза и практический способ возврата к ней. Руководства здесь охватывают эти основы от первого проекта до доступа к API.