dev log_

Senior DevOps Engineer building in public. Shipped features across Local Fitness, Ghostwriter, and more — the tradeoffs behind them, and what broke.

Latest · Ghostwriter · 12 min read read
· Ghostwriter

Cohesion is leverage: pulling a drifting card family onto one base

Ghostwriter's image cards had drifted into separate looks. Redesigning them onto one shared base isn't just about brand; the base is what makes the next card type cheap to add and structurally unable to drift. Here's the full build, from tokens to a rendered PNG to the check that keeps the family honest.

· Ghostwriter

Reach is earned in dwell time: encoding LinkedIn's feed rules into a posting tool

ghostwriter v0.3.0 turned a pile of researched LinkedIn reach rules into config the skill reads on every draft, and added native carousels by rendering HTML slides into a PDF that LinkedIn shows as a swipeable document. Here is the full build: the playbook as data, the slide-to-PDF render, the documents-API upload, and the check that runs before anything publishes.

· Ghostwriter

An attribution mark the common crops can't remove: mark every region a reshare keeps

The LinkedIn ghostwriter got new card templates, but the real lesson was attribution: a corner byline crops off and a tiled watermark looks awful, so the fix was to put a mark on every region a reshare keeps, bracketing the headline with the signature and co-locating the handle with the figure, so a bottom-strip, top-strip, or single-side crop can't take a region without leaving a mark. Here is the full build from card template to rendered PNG.

· Ghostwriter

A skill is code: scoring the SKILL.md and testing the glue around it

A Claude skill is software, so I held the ghostwriter skill to software's bar: a scorer that structurally grades the SKILL.md as a CI gate, 100% line coverage on its glue scripts by mocking the network and browser boundaries, and an honest line about what coverage doesn't prove.

· Ghostwriter

You already have an image renderer: HTML and Mermaid into PNGs on your own machine

Ghostwriter can now attach a rendered diagram or card to a post, and it renders entirely through a local headless browser instead of a third-party service. The two lessons worth keeping are that a browser you already run is a capable image renderer, and that personal styling belongs in config that never touches the shared repo.