Граница проходит на уровне API. Бэкенд отвечает за:
Фронтенд отвечает за:
В классическом подходе бэкенд генерирует HTML-страницы, фронтенд лишь добавляет интерактивность. В SPA (Single Page Application) граница более четкая, так как взаимодействие происходит исключительно через API.
Пример:
ruby
javascript
В гибридных подходах, типа Hotwire, часть логики рендеринга может быть смещена на бэкенд, но взаимодействие все равно строится на передаче данных или фрагментов HTML через специфичные протоколы (например, Turbo Streams).
ruby
html
Основной принцип: бэкенд предоставляет данные и сервисы, фронтенд их потребляет и визуализирует для пользователя.