A project is structured as so:
A build server listens to changes in two repositories: a frontend and backend repo. When it picks up a change it builds, tests, and deploys the updates to a production server that exposes a publicly accessible endpoint.
On the production server, the backend is a Golang https server that serves static files and then has a designated endpoint handling CRUD interactions with the database via REST API. The frontend is split between a static react app built and updated by the build server that reads dynamic content from the backend REST API and then a similarly static authenticated CMS interface to manage the content itself.
Is this a solid or terrible way to structure a non-commercial webapp? Are there any obvious weaknesses I'm overlooking (besides pushing from build to production automatically)?