February 18th, 2026 — Simone Guzzi
I'm a software developer, and this is the first of a series of articles where I talk about how software development practices have influenced my cube design process. Today, I want to talk about semantic versioning, and how you can use it to become more aware of the impact of the changes you make to your cubes, and to communicate them more transparently to your players.
Versioning is the practice of uniquely identifying each iteration of a product with a version number. Every time changes are made to that product, a new version number is generated, and mapped to this new version.
Versioning your product is important because:
It helps troubleshooting issues.
It helps communicating your product to your audience.
It helps navigating the history of your product.
Versioning communicates that the product has changed, but it doesn't communicate the impact of the changes. Let's fix that!
Semantic versioning is the practice of using version numbers that carry a meaning that goes beyond identifying a specific iteration of the product. In software development, the golden standard of semantic versioning is semver. Each version number in semver is composed of three numbers, separated by dots. Given a version number MAJOR.MINOR.PATCH, each number communicates a different impact for the changes included in this version.
1.0.0 ➡️ 2.0.0 is a MAJOR change. MAJOR changes make the product incompatible with its previous iterations.
1.0.0 ➡️ 1.1.0 is a MINOR change. MINOR changes add new features without compromising compatibility with its previous versions.
1.0.0 ➡️ 1.0.1 is a PATCH change. PATCH changes tweak the product so slightly that the user might not even notice.
Communicating the impact of your changes is important, because it sets the correct expectations into your audience.
A cube is a product! It has a maker (you), an audience (your players), and many exciting features. Communicating a cube correctly might be the difference between a fun afternoon of drafting, and a frustrating train wreck. Communicating changes can be especially tricky. What should be communicated, and how? Troubleshooting a fluid process such as cube design can also be challenging. When did a certain issue come up? Was it always there?
There are many ways semantic versioning can help:
It forces you to stop and think about what changed in your cube. This is the prerequisite to every other point on this list.
It forces you to assess the impact of the changes you just made, raising questions such as:
Is this a good time for these changes? Are you taking your cube to CubeCon next weekend? Then probably not.
Is this something my players should know? Did you remove half of a combo? Then probably yes.
It helps keeping track of the history of your cube, and troubleshoot issues. When you spot a design flaw, you can parse the history of your cube much more easily, and look for culprits.
This is how I apply semantic versioning to my cubes:
1.0.0 ➡️ 2.0.0 is a MAJOR change. MAJOR changes revolutionize the drafting experience. After a major change, players may not be able to rely on prior knowledge of the cube with profit. Therefore, major changes should be extensively communicated. I use this when adding/removing multiple themes, or drastically shifting the power level.
1.0.0 ➡️ 1.1.0 is a MINOR change. MINOR changes alter the drafting experience substantially. Nevertheless, players should be able to rely on prior knowledge of the cube with profit. MINOR changes should be communicated. I use this when adding/removing a theme, or replacing a very big chunk of cards.
1.0.0 ➡️ 1.0.1 is a PATCH change. PATCH changes don't alter the drafting experience. As such, they should not be communicated to the players. I use this when fixing a very specific issue.
Every time I'm about to click the save button on Cubecobra, I stop and think about the impact of my changes. Then, I choose which part of the version number to bump. Next time I play the cube with my friends, I know what I should tell them before we start.
Your cube means the world to you, but it's just another cube to everyone else. What's obvious to you will not be to your players. Taking the time to properly communicate your cube and its changes will help everyone enjoy your cube better — including you! Semantic versioning is a very low hanging practice that can help you a lot in doing that. Next time you're making changes to your cube, try it!