The current era of Tenrankai turned the “blog engine from day 3” into a first-class publishing system — and you’re looking at the result, because this site runs it.

The posts revamp

Posts gained categories (chips on the cards, path-style URLs like /projects/category/astrophotography, filter bars with counts, per-category options via _categories.md) and hero images — either a plain URL or a gallery:name:path reference that pulls straight from a gallery, with click-through to the image and hover details. The index became a flowing magazine layout with a featured first card and reading times. Post detail pages got a share bar (native share, Bluesky, Mastodon with a remembered instance, and friends) and richer Open Graph metadata.

Editing moved into the browser: a permission-gated post editor (title, slug, summary, categories, markdown, delete) backed by a CRUD API, with a gallery image picker for choosing heroes. Posts share the gallery permission scheme — site permissions plus per-directory _folder.md overrides — so private drafts and members-only sections fall out for free.

RSS 2.0 feeds appeared at {prefix}/feed.xml (and per category), with permission-aware filtering and full content. Posts systems can also embed anywhere a template renders — an embeddable posts preview block for dropping “recent projects” onto a home page.

The sky map

My favorite recent addition: image detail pages for astrophotos now show a sky map. If an image’s metadata sidecar carries ra and dec — fields the images in the astro gallery already carry — the viewer plots where in the sky the image was taken on an all-sky chart, with one-click jumps to Aladin Lite and SIMBAD:

The Sky Position card: RA/Dec readout and an all-sky chart marking the Whirlpool Galaxy’s position, with Aladin Lite and SIMBAD links

And it didn’t stop at “where was the telescope pointing.” With seiza wired in, tenrankai now plate-solves astro images and annotates them: toggle “Objects” on the detail page and every catalogued galaxy in the frame gets an ellipse and a label. Here’s my Whirlpool shot — M 51 and NGC 5195, plus four background galaxies down to PGC anonymity, found automatically from a sub-second solve:

The Whirlpool image with the Objects overlay on: M 51, NGC 5195, UGC 8493, UGC 8494, IC 4277, and IC 4278 circled and labeled

The newest round went further. Images with no coordinates anywhere now blind-solve — gated to astro folders, so ordinary photos are never touched — and a new minor-body catalog puts comets and asteroids into the overlay, positions propagated to each image’s capture time (validated against JPL Horizons). Comets draw in green with the dash oriented anti-sunward along the actual tail; asteroids in orange along their apparent motion; neither is ever persisted, because they move. My comet Lemmon frame is the full demo: no RA/Dec in its metadata (comets don’t have fixed coordinates to write down), blind-solved from 104 field stars, and the ephemeris labels it C/2025 A6 (Lemmon) · V~7.5, 0.71 AU — while surfacing seventy-odd anonymous PGC galaxies hiding behind the tail:

The comet Lemmon image with the Objects overlay on: the comet labeled in green with magnitude and distance, its marker dash following the visible tail, and dozens of faint PGC galaxies circled across the field

The overlays also escaped the gallery: gallery images embedded in posts — including explicit hero images, like the one on this very post — carry the same “Objects” toggle inline.

Flat files in, planetarium out. Next on the design docs: plate solving and object overlays.

The series: Part 1 — the ten-day birth, Part 2 — the January push, Part 3 — boring on purpose. Source at github.com/theatrus/tenrankai.