Gensite

Download Gensite v0.0.1

Gensite is the tool I use to generate this website. It's primary purpose is to prevent me from having to use html directly and managing the whole site by hand. It is good at that, but not perfect. It's secondary purpose is to improve the performance of my web server by serving up static pages. In that regard, it's my intention that gensite will offer the best of both worlds: it will completely manage my content for me, and it will not require heavy server-side processing of each page in order to serve a page.

I find it distressing that so many people make websites whose content largely doesn't change--after it's written, but use heavy-handed CMS systems. So they want it to be easy to add new content and update old content, I understand that. But putting a big server-side program to manage all of that loads up the web server unnecessarily, and usually results in breaking any number of caching mechanisms that are in place to speed up the web. That last part adds extra traffic to the internet, slowing it down for everybody.

When the webpages on this site are served, every browser except Internet Explorer caches all of the graphics locally. That means that for each new webpage, only the text must be retrieved. This makes each page somewhere around 10% of the total size of the delivery. Most CMS systems include a directive telling proxies not to cache the page, and telling browsers not to cache anything. They do that because their content is generated on the fly, and the software has no way of knowing whether or not it has changed since the last time it rendered the page. Since most sites are still largely static in that once a page is written, it is never changed, this is extra work on the server and the internet that doesn't need to be done. Internet Explorer doesn't cache the big globe in the left-hand corner because it has such crappy support for standards (specifically, PNG, an image format) that I had to throw in an IE-specific hack to make the globe work.

Finally, what really frustrates me about these big, bulbous CMS packages is that they do 60% of what I want, and 150% of what I don't want. They're a pain to use, a pain to manage. I'd almost rather manage plain html over the big hairy CMS packages. Almost, but not quite. Instead, I wrote this tool. This tool is just a step above managing plain html pages, but it's the most important step. It uses the excellent txt2tags program to render the pages. This means I can completely revise my site at any time I please, and the entire site will be re-generated as needed. That's 50% of what I want a CMS for in the first place!

There are some things you don't get. You don't get forums, you don't get a lot of fancy things. Luckily, gensite doesn't replace those things. I could throw in a phpBB installation if I wanted to. I could even hack it very easily afterwards, since it will be kept in the same subversion repository as the rest of my site.

This tool is best used in a subversion commit hook, so that it takes changes to the repository and immediately updates the website with those changes. Even if you don't have subversion, you can use any of a number of other tools to handle uploading only the files that have changed. So you'd first run gensite locally in a certain directory, then your special tool that updates your remote website.


Contact me! I want to hear from you. Send your mail to <dave (a) davefancella com>


Home Resume Articles Software Hobbies About