Things · Developer tools and systems
Sync
A page that shows what each of my systems holds right now, how far behind each hop between them runs, and a receipt for the newest item of each kind.
Is the new issue in Thingy yet?
- Status
- Active Being built or operated.
- Dates
- Started (Live since October 26, 2026)
- Where
- sync.thingelstad.xyz/
- Topics
- Automation The open web
My writing moves through a lot of systems. An issue of the Weekly Thing is written in WT Builder, sent to the website, the email and the podcast feed, pulled into the Librarian, served by Thingy, and joined to the links it carried in Linking Things. A blog post goes from Micro.blog to the Librarian and gets a card. Most of the time it all works, and when it does not, the only way to know was to go and look. The question that started this was a simple one: is the new issue available in Thingy yet?
The first step was a map. A single shared file now names every hop between the systems, what moves across it, what starts it, how long it should take, and how to check that it arrived. The second step was this page, which reads a fact from each system every half hour and shows, for the newest item of each kind, who has it and who does not. The page is public because it holds only ids and times, never a reader.
The first thing it showed was a gap I already suspected. Linking Things learned which links an issue carried from a copy of the newsletter on my Mac, so Weekly Thing 354 had not joined its links. The page reads that hop as late and leaves it that way until the hop itself is fixed. That is the point: the page shows the state and does not touch anything.
The build
- One AWS Lambda function on a half-hour EventBridge schedule reads a fact from each system and writes a scriptless HTML page, a status.json and a receipt per kind into a private S3 bucket that CloudFront serves.
- It reads only what each system already publishes, such as feeds, the metadata on the Librarian's corpus objects in S3, Thingy's health check, and the Linking Things MCP server. A system that publishes nothing shows as "no fact yet" rather than a guess.
- The hops themselves are a contract, a shared flows file that names every hop, what it moves, what starts it, the lag to expect and how to verify it. The page vendors the file and never invents a hop of its own.
- Each hop reads fresh, moving, late, held or unknown. A hop with no fact at its source is measured from the next system down and says so.
- The map is drawn at deploy time with Pele, the same renderer that draws the connection diagrams on this site, and coloured on each run by the worst status of the kinds a hop moves.
Node AWS Lambda Amazon EventBridge Scheduler Amazon S3 Amazon CloudFront Pele
Artifacts
Files from the project itself, as they were kept.
-
The map, the first evening
Every hop between my systems on October 26, 2026, coloured by its state. Weekly Thing 354 had reached the Librarian and Thingy and had not reached Linking Things, the gap the page was built to show.
-
The sync page
The page as it first went live, with its counts, the map, and the receipts for the newest issue, post, link, episode and audio edition.
Sources and evidence
Observed daily from GitHub, sitemaps, feeds, the Internet Archive, and Tinylytics. Evidence never sets a status.
-
jthingelstad/sync.thingelstad.xyz implementation
-
sync.thingelstad.xyz/ website
-
sync.thingelstad.xyz/flows/ reference
Commits and publications per month, last twelve months.
Connections
-
Sync follows the newest issue of Weekly Thing
The Weekly Thing feed names the newest issue, and the page follows it to the Librarian, to Thingy, and to Linking Things, showing where it has arrived and where it has not. Source
-
Sync watches the sends of WT Builder
Every send WT Builder makes is a hop on the map, to the website, the email, the audio and the Librarian. WT Builder publishes no receipt of its own yet, so those hops are measured from what the next system down holds. Source
-
Sync follows the newest post of Jamie Thingelstad blog
The blog's feed names the newest post, and the page checks that the Librarian has pulled it and that it has a card. Source
-
Sync follows the newest episode of Another Thing
The podcast feed names the newest episode, and the page checks that the Librarian holds it and Thingy serves it. Source
-
Sync follows the newest link of Linking Things
Linking Things says when a link was last saved and which issues it has joined, so the page can show the newest link reaching the Librarian and the newest issue reaching Linking Things. Source
-
Sync checks what is served by Thingy
Each corpus the Librarian uploads carries the id of its newest item as metadata, and Thingy's health check names the corpus versions it was deployed against. When the two agree, Thingy serves what the Librarian holds. Source
-
Sync checks the newest post's card at Cards
The newest post's share image is fetched from Cards, so the page knows the card is being drawn. Source
-
Sync reads the activity feed of Things I’ve built
The registry's activity feed is one of the sources the Librarian pulls on a clock, and the page shows that hop beside the others. Source
History
-
launch
Sync goes live
A page that shows what each of my systems holds and how far behind each hop between them runs, built from a shared map of every flow. Source