Now that we've discussed what you can omit from your design, what are we left with? Our stripped down version has three major components. The first part is the core of the entire system, the database.
Setting up your database schema is going to take some thought. Don't rush this step because the next two components of your CMS rely on this step. You want to reduce the number of changes you'll need to make to the database schema as much as possible. So spend a bit of extra time while drafting your database schema. As we've previously discussed, this system is only intended for your own personal use, so your schema doesn't need to take every possible page feature into account, only the features you're going to use. The schema can be as simple as a single table with three columns, page_id, title and content. Your schema can be just that simple, but if you have different types of pages that share common features, you can expand the complexity of your schema.
The next component to a custom content management system is a web based front end that allows you to edit the information in your database. In its most basic design it's a simple form that displays the list of pages you can edit, then once you select one of those pages, it pulls that page's data from the database into editable text fields and allows you to save any changes you make to that data. Of course, you'll need a "new page" option as well to allow you to create a new page. The basic idea is to provide a text box to edit any of the database columns that you should be editing. Once again, we've just gone over a bare bones version. You can make any additions that you feel will make your work easier. For example, if you created some infrastructure for breadcrumbs in your database, you could have a drop down list that would allow you to select a page's parent page. You could then calculate the breadcrumb tree as you create the pages.
At this point, we've built a database that holds all of the information for each of your web pages and a web based interface that allows you to enter and alter the values in that database. But web users don't browse databases, they browse web pages. This leads us to the third and final component of our CMS.