Hey Oliver!
My way of working with Neos is somehow like this:
- take the composer.json from typo3/neos-base-distribuition and customize it to my project (e.g. rename, add maintainer, etc).
- Create my own repository based on it, that would hold the whole distribution + website package. There’s really no practical reason to keep the site package separate.
To speed up this step I have created a boilerplate distribution for our own projects that I just clone and customize: https://github.com/sfi-ru/BolierplateDistr - As project growth, I try to find parts of functionality that could later be reused and separate them out into a own opensource package, for which I do semantic versioning, try to add the docs and maintain in a clean way. E.g. https://github.com/Flowpack/Flowpack.Listable
Try to avoid creating big bloated packages and keep everything related to given site in one repository, and only take out small reusable parts.