~keith's Web site

Web site


This Web site is designed to require only local files in the main site directory - no databases or other external resources (apart from fonts). Updates are made to a local git repository, tested on a VM, and then pushed to the server. By relying on PHP alone, the Web site becomes much easier to synchronize, manage, and work on offline, and there are less possible points of failure.

Some parts of this site do use a database - currently, the mailbox page and the "increment" button in the footer; however, these components don't affect the rest of the site if they fail.

Current Status


In Progress


About the dynamic sitemap

The dynamic sitemap is no longer in use due to performance issues & spaghetti code. At some point I may come back to it.

To avoid having to manually modify the sitemap each time I added a page, I wrote a PHP script to generate one dynamically for me. It creates a page entry for every PHP file it finds. When it finds a subdirectory with an index.php file, it stores all the other pages in the directory as children of that index.php file. To get the name of each page, it reads the first line of each PHP file, which contains the page name in an HTML comment. (Fun fact: you can still see this comment in the page source.)