A portfolio website is something of a necessity for working photographers today. For many, dancing pixels have entirely supplanted the printed portfolios of yore while also functioning as online business cards and phonebook entries of sorts. A well-designed site should offer a solid venue for viewing work while also leveraging the inbound marketing opportunities the internet affords.
A number of firms offer custom and pre-packaged websites that balance the visual and technical needs of photographers with varying degrees of success, but none offer quite what I want at a price-point I can easily justify. Thus I've spent quite a great deal of time over the past few years working on designs of my own.
I've put together a number of ultimately ill-fated portfolio designs using static HTML, the Indexhibit CMS, Simpleviewer flash galleries, and a number of other tools. After using systems that were a bit over targeted or simplified for my tastes, I decided it was time to learn a CMS/CMF with more flexibility than I could possibly use. I settled on Drupal. Drupal isn't the simplest system - a clean install doesn't support image insertion without add-on modules, for instance - but it can be made to do just about anything.
My current website uses Drupal 6 with a number of add-on modules to get it to work the way I want. I find the end result attractive and fast to load while also conforming to search engine recommendations for code. Hopefully the availability of image alt-text and visible captions will make it equally attractive to search engine spiders and result in improved search rankings over time.
The website is easy to maintain and use; adding or replacing galleries and images is all done through a simple online interface and most aspects of the website can be changed without touching a line of code.
If you want to give Drupal a try, here are some of the things I've found useful in building my site. Drupal core is well documented on the Drupal website as are many modules, but others can be a bit troublesome to implement. Since I've managed to get everything below to work it must all be fairly user-friendly...