Вообще вон в Grokking Simplicity нормально Эрик предлагает делать в этом плане, даже не смотря на то, что по поводу разбиения на "маленькие" функции у меня есть сомнения.
Если подумать - результат работы рефрейма - это вектор из векторов который потом рендерится в html. Можно то же самое на бэкэнде делать только рендерить в http response