I’ve been taking photos lately. You can see them here. I wasn’t satisfied with my flow for tagging, encoding, and deploying these to my site; so I wrote a houseplant program to help. If you’re interested, you can see the code here–but, fair warning, it’s only meant to be useful to me. A gallery in phloto, light mode A gallery in phloto, light mode Digital photo development When I’m developing a photo, I run through these steps: I take a picture. The camera captures a RAW file with the image sensor data. The camera embeds metadata: the camera model, lens model, timestamp, F-stop and shutter speed, etc. This file has more data than we typically shunt around the web. My camera has 14 bits of resolution (sensitivity) in each color channel; most displays still only have 8 bits / channel of color resolution. I develop the RAW file. Using Darktable, RAWPower, or some other software, I process the photos. After triaging, I make choices like cropping, exposure, white balance… For the photos that I’m happy with, I export a then export a developed image: a lossless 16-bit PNG. These are very large files–in some cases, >100MB. I convert the photo for the web. The lossless, high-bit-depth image is good for archives; but for the web, I need something smaller, and without a “lossless” requirement. I transcode the image into a web-safe image in the WebP format. I also create scaled-down versions. The “featured image” I have in the articles list winds up being a lot smaller on your screen than the original; why bother sending the extra bits around? The web versions also need to have filtered metadata. I’d like to be able to GPS-tag my photos for my own usage; but I don’t want to put the coordinates of my backyard on my web site. I write captions and alt-text for each image. These go into the album page; but I try to embed these as additional metadata fields in the image. Motivating issues Before writing phloto, my process was to do (1) with the camera, (2) with RAWPower, (3) with Hu...
First seen: 2026-05-27 15:54
Last seen: 2026-05-27 18:57