# How to extend the CMS interface # ## Introduction ## The CMS interface works just like any other part of your website: It consists of PHP controllers, templates, CSS stylesheets and JavaScript. Because it uses the same base elements, it is relatively easy to extend. As an example, we're going to add a permanent "bookmarks" link list to popular pages into the main CMS menu. A page can be bookmarked by a CMS author through a simple checkbox. For a deeper introduction to the inner workings of the CMS, please refer to our guide on [CMS Architecture](/developer_guides/customising_the_admin_interface/cms_architecture). ## Redux Devtools It's important to be able to view the state of the React application when you're debugging and building the interface. To be able to view the state, you'll need to be in a dev environment and have the [Redux Devtools](https://github.com/zalmoxisus/redux-devtools-extension) installed on Google Chrome or Firefox, which can be found by searching with your favourite search engine. ## Overload a CMS template ## If you place a template with an identical name into your application template directory (usually `mysite/templates/`), it'll take priority over the built-in one. CMS templates are inherited based on their controllers, similar to subclasses of the common `Page` object (a new PHP class `MyPage` will look for a `MyPage.ss` template). We can use this to create a different base template with `LeftAndMain.ss` (which corresponds to the `LeftAndMain` PHP controller class). Copy the template markup of the base implementation at `framework/admin/templates/Includes/LeftAndMain_Menu.ss` into `mysite/templates/Includes/LeftAndMain_Menu.ss`. It will automatically be picked up by the CMS logic. Add a new section into the `