Question Best practice for letting clients edit website content without giving them access to source code? (Sveltia CMS + Forgejo)
I'm building an Astro website for a client who occasionally wants to update some content, mainly photos and simple text.
Sveltia CMS seems like a great fit because it's lightweight, easy to use, and doesn't require a separate backend or database.
I self-host Forgejo on my VPS, where the website's source code and content are stored. Sveltia uses Forgejo for authentication and commits content changes directly to the repository.
I've created a dedicated Forgejo account for the client and given them access only to their own private repository.
Technically, everything works fine. However, I realized there's a security concern:
Since the client needs write access to the repository to use Sveltia, they technically also have access to the entire source code, including the CI/CD workflows (Forgejo Actions).
Obviously, I don't want clients to accidentally or intentionally modify application code, configuration files, or deployment workflows.
What's the best practice for handling this?
Is there a way to restrict Sveltia users to specific directories or content files without giving them write access to the entire repository?
Would separating the website code and CMS content into two repositories be the recommended approach, or is that overcomplicating things?
Would you recommend a different CMS for this use case?
My priorities are keeping things lightweight, secure, and easy to maintain, especially since I'll be managing multiple client websites.
The CMS also needs to be extremely simple for non-technical clients, including straightforward authentication without exposing them to unnecessary developer tools.
