Как организовать структуру для spa приложения (backend, frontend)?
на самом деле вы должны проектировать ваш rest отталкиваясь от предметной области, от сущностей, а там нет разделения публичка, админка
Начнем с того, что от "легкого фреймворка" вам легче не станет. Написание API-шного бекенда не изменяет бизнес логику и вам пригодятся все фишки "обычного" фреймворка.
Про админку: если вам действительно важно, что бы админка была на SPA, и вам не лень писать еще одно приложение для этого - тогда вам нужны два приложения. С другой же стороны, админка на SPA не нужна почти никогда и вместо нее проще использовать какой-нибудь пакет-генератор под ваш фреймворк. Никто не запрещает вам сделать часть приложения SPA-шной, а часть - обычной.
Так что тут все зависит от того, что это за админка и в каких целях/где она будет использоваться.