For the last few months, I’ve been building a content management system aimed at a particular industry.

I’m close to finishing the first working version of the product. There are still a few things to do, like account management and theme options, but these are trivial things that will not present any problems.

While reviewing the CMS source code this morning, I spotted a way that I can refactor a part of the CMS. The change involves simplifying the different content from multiple types of content to a single base content model that I can base other content on. This is a significant structural change to the product. It involves changes in how the CMS presents and manages the content.

If I spend the time making the change now, it would be much easier to handle any created content and migrations of data in the future.

If I schedule the switch for later on after the release, I’ll always know that I have this change in the structure to make and will be presented with an increasing problem of migrating data.

Thinking on it, I like the idea of taking the hit now and getting this right before the product gets released. I’m just wondering now why I didn’t see this before when I was modeling the content for the CMS.