I'm thinking about making my games "in public". I don't mind if the source code will be reused, the more the better I guess. But while working on them I would prefer to separate the art part (graphics, audio, story) from the rest (a sort of template for a game). I think I learned it here that those are sometimes (often?) separated.

My point is - do you know any practices to make that maintainable? And what is the common tech stack for such a solution?

I use a separate repository for asset development. Doesn't require any additional tech stack other than git and bash. Each folder in the asset repo has a bash script that runs though all assets and checks against the dates of the exported assets in the main repo and copies/exports if required.

This setup allows me to develop assets asynchronously from the code base (which uses only placeholer assets) without getting the main repo working tree dirty in the middle of code development. It also allows me to commit a few intermediate stages of the assets to the repo without blowing up the main repo in size.

I have no experience in the same context as yours. But I am starting to use Git Submodules and looks like it can be helpful for you too.