For all of my side projects, I recently moved away from classic semantic versioning (MAJOR.MINOR.PATCH) to a more liberating CalVer one (YYYY.MM.RELEASE (PATCH)).
Wait, why did I say liberating?
I know it sounds stupid, especially for the scope and size of my side projects, but semantic versioning made everything “too official” and I often found myself doubting what I would’ve done to justify a new major release of a project: “Is this v2.4 or v3.0? And what am I going to do for v4?”
With CalVer all of that is gone because…
CalVer is a versioning convention based on your project’s release calendar, instead of arbitrary numbers. 1
If in July I ship four releases and two patches, I’ll be on version 2026.07.4 (2). If the next one falls in August, it’s simply going to be 2026.08.1.
Simple. Clear. Beautiful.