Greymatter is a free and open-source blogging software package, originally created by Noah Grey in November 2000. It was "the original opensource weblogging software". Noah Grey stopped maintaining it around 2002. Since then, it has been maintained by the community of users. It is one of the first software packages created for blogging, and had a large number of users. With the creation of WordPress and Google's Blogspot, its users have declined since 2005, but it is still in use. Greymatter does not require a database; its only requirement is Perl support on a webserver. It features robust options and extensibility, with a focus on customization and user control. Its current version is 1.8.2. Design Greymatter is written in Perl, designed as a CGI script placed in the cgi-bin directory of a website. The blog can be displayed on the website's homepage or in a subdirectory. The archives are in a user customized folder on the server, typically called "archives". The main, archive, and entry pages are written in HTML. Source files GM.cgi is the main powerhouse of the program and the largest file. GM-Authors.cgi contains author information, which is now encrypted (as of version 1.21d) GM-Banlist.cgi contains a list of banned IPs (usually comment spammers) which is editable through GM.cgi. GM-Comments.cgi contains the subroutines not only for comment posting and viewing but also for searching entries. GM-Config.cgi has information relating to user preferences and site information. GM-Counter.cgi keeps track of the number of entries, archived entries (entries older than X number of days, specified by user, default 7), the "stay at top" entry which sits at the top of the main page, positive and negative karma votes, comments, opened entries, and closed entries (equivalent of deleted entries but can be re-opened at any time). GM-CPLog.cgi contains raw HTML for the control panel log (optional feature, user specified). GM-Entrylist.cgi is a list of all of the entries and information about each (time of post, author, and so on). * GM-Karma.cgi contains the subroutines for karma voting. * GM-Library.cgi contains the most used subroutines. GM-Templates.cgi contains the user-specified templates for the site's HTML and the format of the entry. GM-Upload.cgi is the script that enables users to upload files to their site through Greymatter to their archives directory. Functionality Static pages Greymatter creates static pages. Therefore, when an entry is edited, only the main page and the entry's page are rebuilt