GitLab has an excellent, candid discussion of how they're doing 'open core' development, and resolving the tensions that occur: https://about.gitlab.com/stewardship/
Related Posts
Learning software development through playing and contributing to a MUD: https://tashian.com/articles/how-i-learned-to-program/
I have a bunch of open tasks on my GH repos, so I tried asking ChatGPT and Claude to write a card-based web UI that showed some random open issues.
ChatGPT gave me something that worked, but the Claude mock-ups look better (and render inline!).
I really like the MELPA model of packaging directly from git. It solves the problem of forgetting to release something -- just merge a PR and you're done.
It also makes version number bumps much less important.
You could go even further in a statically typed language and also figure out when breaking changes occur.