# Things I’ve built. An index and archive of my projects, including the ones I’ve stepped away from. By Jamie Thingelstad. --- --- id: 612-poap-challenge title: 612 POAP Challenge summary: A summer 2025 scavenger hunt of 31 Minneapolis location POAPs, drawn in the spirit of the 612 Series. collection: Historical projects status: archived url: https://612.poapchallenge.com/ started: 2025-05-31 ended: 2025-09-01 topics: - poap - crypto - play sources: - kind: website url: https://612.poapchallenge.com/ role: website sitemap: https://612.poapchallenge.com/sitemap.xml feed: https://612.poapchallenge.com/feed.xml - kind: website url: https://www.thingelstad.com/2025/05/31/poap-challenge-collect-them-now.html role: reference connections: - to: poap2rss label: shared its claims through detail: From July 2025 the challenge site posted every claim automatically, using POAP2RSS feeds merged with rssrssrssrss.com and imported into a Micro.blog account. source: https://www.thingelstad.com/2025/07/06/with-the-help-of-poaprss.html - to: airport-poap-rally label: led to detail: I enjoyed the challenge so much I set up poapchallenge.com for more of them, registered poaprally.com, and used the same feed setup to track the Airport POAP Rally. source: https://www.thingelstad.com/2025/12/26/airport-poap-rally-website.html kind: lineage page: https://thingelstad.xyz/things/612-poap-challenge/ --- # 612 POAP Challenge A summer 2025 scavenger hunt of 31 Minneapolis location POAPs, drawn in the spirit of the 612 Series. The 612 POAP Challenge was a citywide scavenger hunt that ran from the end of May through Labor Day 2025. [How to Play](https://612.poapchallenge.com/how-to-play/) listed 31 Minneapolis locations in five themed categories, each with a location POAP that could only be claimed in the POAP app within 100 meters of the spot. Two hidden easter-egg locations were left for the curious. Completing a category earned a Category Collector POAP, and collecting all 31 earned the top award. I [announced it on 2025-05-31](https://www.thingelstad.com/2025/05/31/poap-challenge-collect-them-now.html). It joined two things I loved: geocaching, and the [612 Series](https://www.thingelstad.com/2023/04/05/complete-collection-of.html) of Minneapolis NFTs by Erik Halaas and StayNftyMpls, which I had collected in full; I had [interviewed Erik](https://www.thingelstad.com/2024/01/15/interview-with-series.html) in 2024. Six days earlier I had made [my first location POAP](https://www.thingelstad.com/2025/05/25/i-created-my-very-first.html), at our family’s Charlie Brown Tree, and wanted to build something with the new feature. The challenge’s tokens were illustrated in the spirit of the 612 Series. “I love that I was able to create an entire activity on the POAP platform.” The challenge had its own Buttondown mailing list, and from July its site, hosted on Micro.blog, posted each claim as it happened through [POAP2RSS](https://www.thingelstad.com/2025/07/06/with-the-help-of-poaprss.html). The [first Collected Them All! award](https://www.thingelstad.com/2025/07/20/we-have-our-very-first.html) went on 2025-07-20 to @quinntchrest, who [speed ran](https://quinnchrest.com/2025/07/20/poap-challenge.html) the challenge by bike with a friend. The challenge closed as Labor Day ended on 2025-09-01, and the final awards were sent a few days later. The site remains as its record, and the experience led me to set up poapchallenge.com for future challenges. --- --- id: airport-poap-rally title: Airport POAP Rally summary: A Micro.blog site that posted, in near real time, every claim at the 100 airports of POAP’s Airport POAP Rally 2026. collection: Games and communities status: retired url: https://web.archive.org/web/20260515161915/https://airport.poaprally.com/ started: 2025-12-26 topics: - poap - crypto - automation sources: - kind: website url: https://www.thingelstad.com/2025/12/26/airport-poap-rally-website.html role: reference - kind: website url: https://web.archive.org/web/20260515161915/https://airport.poaprally.com/ role: archive - kind: website url: https://web.archive.org/web/20260606234656/https://www.poapchallenge.com/ role: archive connections: - to: poap2rss label: posted its claims through detail: The site pulled claims for all 100 airports from POAP2RSS feeds, merged with rssrssrssrss, and published them through Micro.blog’s feed import. source: https://www.thingelstad.com/2025/12/26/airport-poap-rally-website.html - to: flight-path label: led to detail: Flight Path, built two months later on the same poaprally.com domain, drew its globe from the CSV of rally airports and drop IDs I had made for “another project I had done.” source: https://weekly.thingelstad.com/archive/342/ kind: lineage page: https://thingelstad.xyz/things/airport-poap-rally/ --- # Airport POAP Rally A Micro.blog site that posted, in near real time, every claim at the 100 airports of POAP’s Airport POAP Rally 2026. In December 2025 POAP announced the [Airport POAP Rally 2026](https://collections.poap.xyz/collections/airport-poap-rally-2026/26246), a year of location POAPs at 100 airports around the world. I was “super excited” and [set up a site to track it](https://www.thingelstad.com/2025/12/26/airport-poap-rally-website.html) at airport.poaprally.com. The rally was POAP’s; the tracker was mine. It was built the same way as the [612 POAP Challenge](https://612.poapchallenge.com/) feed: POAP2RSS feeds for every airport, merged with rssrssrssrss and imported into Micro.blog, so each claim became a post such as “POAP 7586561 claimed by noah.savedsouls.eth at I passed through Minneapolis-Saint Paul International Airport (MSP) in 2026.” The posts were syndicated to @poapchallenge on Mastodon and @poapchallenge.com on Bluesky, and I planned rally updates on r/POAP. [Weekly Thing 337](https://weekly.thingelstad.com/archive/337/) linked readers to “Follow the Rally.” The 612 challenge had also led me to set up [POAP Challenge](https://web.archive.org/web/20260606234656/https://www.poapchallenge.com/) at poapchallenge.com, meant to host “a challenge or two a year,” and to register poaprally.com. Two months later I built Flight Path on the same domain, a globe of the same rally from my own CSV of airports and drop IDs. The tracker read live claims, so it could not outlive POAP. The last Internet Archive capture is from [May 2026](https://web.archive.org/web/20260515161915/https://airport.poaprally.com/), and the host no longer answers. --- --- id: another-thing title: Another Thing summary: My podcast, started in October 2025 with one episode so far, on how to start a podcast. collection: Publishing status: active url: https://another.thingelstad.com/ started: 2025-10-05 topics: - open-web sources: - kind: github repository: jthingelstad/another.thingelstad.com role: implementation - kind: website url: https://another.thingelstad.com/ role: website sitemap: https://another.thingelstad.com/sitemap.xml feed: https://another.thingelstad.com/podcast.xml - kind: website url: https://weekly.thingelstad.com/archive/329/ role: reference connections: [] page: https://thingelstad.xyz/things/another-thing/ --- # Another Thing My podcast, started in October 2025 with one episode so far, on how to start a podcast. Another Thing is my podcast and my third “thing,” after the blog and the Weekly Thing. The [first episode](https://another.thingelstad.com/2025/10/05/how-do-you-start-a.html), “How do you start a podcast?”, came out on October 5, 2025, and I announced it in [Weekly Thing 329](https://weekly.thingelstad.com/archive/329/) as “the podcast that I’ve been thinking about creating for a couple of years.” In it I talk about a chalkboard sign that told me to “be brave enough to suck at something new,” a story about Dr. John Carlis, whose class I took while studying computer science at the University of Minnesota, and an earlier attempt to turn the Weekly Thing into an AI-narrated show. That is still the only episode. In [Weekly Thing 346](https://weekly.thingelstad.com/archive/346/) I wrote that I was not giving up on the show. In 2026 I built Another Thing Builder to make episodes, then retired it in October 2026 and moved podcast authoring into WT Builder. Thingy can search the episode transcripts. --- --- id: ask-planet-kubb title: Ask Planet Kubb summary: A Question2Answer site where Kubb players asked and answered questions about the game, part of the Planet Kubb sites. collection: Historical projects status: retired url: https://web.archive.org/web/20141201215020/http://ask.planetkubb.com/ ended: "2018" topics: - play sources: - kind: website url: https://web.archive.org/web/20141201215020/http://ask.planetkubb.com/ role: reference connections: - to: planet-kubb label: is part of detail: Ask Planet Kubb described itself as run alongside the Planet Kubb planet feed and linked to the Planet Kubb Wiki and The Pitch. source: https://web.archive.org/web/20120702124724/http://ask.planetkubb.com/ page: https://thingelstad.xyz/things/ask-planet-kubb/ --- # Ask Planet Kubb A Question2Answer site where Kubb players asked and answered questions about the game, part of the Planet Kubb sites. Ask Planet Kubb was a question-and-answer site for the Kubb community at ask.planetkubb.com. It welcomed visitors to a “community driven site to learn more about the great game of Kubb,” run alongside the Planet Kubb planet feed. It was online by June 2012, when Garrick van Buren and I linked it in [Open Loop #0](https://www.thingelstad.com/projects/open-loop/0-but-no-shoes/). A [July 2012 capture](https://web.archive.org/web/20120702124724/http://ask.planetkubb.com/) shows 75 questions, 182 answers and 64 users, with polls on who would win each group at the 2012 USA Kubb Nationals. Garrick and I built it together (“then we built Ask Planet Kubb”), and on [Open Loop #1](https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/) I called it “the number one place for Q&A in the community,” adding, “it’s a low bar.” Garrick was one of its most active answerers. I ran the site on [Question2Answer](https://www.question2answer.org/) “for a number of years,” liking it because it was simple to run on PHP and MySQL. Spam registrations kept getting through ReCaptcha and a text-question captcha, so in November 2014 I wrote [q2a-number-captcha](https://github.com/jthingelstad/q2a-number-captcha), which asks for one digit of a nine-digit number spelled out in words ([Question2Answer Number Captcha](https://www.thingelstad.com/2014/11/16/questionanswer-number-captcha.html)). The Wayback Machine shows the site still serving questions in [July 2018](https://web.archive.org/web/20180720082755/http://ask.planetkubb.com/), with the last answers dated December 2017. By [November 2018](https://web.archive.org/web/20181108010540/http://ask.planetkubb.com/) the address showed only a default web server page. --- --- id: cards title: Cards summary: The share image for pages on my sites, a 1200 by 630 card drawn from the page itself and made on demand at cards.thingelstad.com. collection: Publishing status: active url: https://github.com/jthingelstad/cards.thingelstad.com started: 2026-10-24 topics: - open-web sources: - kind: github repository: jthingelstad/cards.thingelstad.com role: implementation connections: - to: jamie-thingelstad-blog label: draws the share cards for detail: Every blog post has shared its own card since October 24, 2026, when Thing Hugo 2.0.19 pointed each post’s share image at cards.thingelstad.com. source: https://github.com/jthingelstad/thing-hugo/commit/ecb83ccab3cce43601b16c489f04689787496a41 - to: weekly-thing label: draws the share cards for detail: Since October 25, 2026, every issue shares a card on its cover photo, with its summary and its count of links and journal entries, and the front page shares the newest issue’s card. source: https://github.com/jthingelstad/weekly.thingelstad.com/pull/28 - to: another-thing label: draws the share cards for detail: Since October 25, 2026, every episode shares a card with its number, date, summary, and running time. source: https://github.com/jthingelstad/another.thingelstad.com/pull/6 - to: linking-things label: draws the share cards for detail: Since October 25, 2026, each saved link’s page shares a card with its title, its site, the day I saved it, the Weekly Thing issues that carried it, and my note when the note is my own. source: https://github.com/jthingelstad/links.thingelstad.xyz/pull/21 artifacts: - file: red-leaves.jpg title: A blog post over its photo caption: A short post with a wide photo sets its words in white over the photo, the way an issue sits on its cover. date: 2026-10-25 source: https://www.thingelstad.com/2026/10/24/red-leaves.html url: https://thingelstad.xyz/things/cards/artifacts/red-leaves.jpg - file: weekly-thing-353.jpg title: A Weekly Thing issue caption: Weekly Thing 353 on its cover photo, with the issue’s summary and its count of links and journal entries. date: 2026-10-25 source: https://weekly.thingelstad.com/archive/353/ url: https://thingelstad.xyz/things/cards/artifacts/weekly-thing-353.jpg - file: another-thing-episode.png title: An Another Thing episode caption: The first episode, with its number, date, summary, and running time. date: 2026-10-25 source: https://another.thingelstad.com/2025/10/05/how-do-you-start-a.html url: https://thingelstad.xyz/things/cards/artifacts/another-thing-episode.png - file: linking-things-link.png title: A saved link caption: A link on Linking Things with its site, the day I saved it, the issue that carried it, and my note. date: 2026-10-25 source: https://links.thingelstad.xyz/links/dec34be50cef/ url: https://thingelstad.xyz/things/cards/artifacts/linking-things-link.png page: https://thingelstad.xyz/things/cards/ --- # Cards The share image for pages on my sites, a 1200 by 630 card drawn from the page itself and made on demand at cards.thingelstad.com. Cards makes the share image for pages on my sites: the 1200 by 630 picture that appears when a link is shared on Mastodon, Bluesky, Slack, or iMessage. Each card is drawn from the page itself. A blog post shows its title or opening words, its date and categories, and its first photo, and a short post with a wide photo sets its words over the photo. A Weekly Thing issue sits on its cover photo with its summary and its count of links and journal entries. An Another Thing episode shows its number and running time. A saved link on Linking Things shows its title, its site, and the issues that carried it, with my note when the note is mine. I built it with coding agents on October 24, 2026, after deciding against Micro.blog’s own card styles. I wanted the full canvas, no photo of me, and the blog’s type in black and white. The blog came first, that same day. Weekly Thing, Another Thing, and Linking Things followed on October 25, each with a card of its own. Each page names its card in its share-image tag, with a short hash of what the card shows, so an edited page gets a new card. The first request for a card runs a Lambda function that reads the page, lays the card out with Satori, and renders it with resvg; CloudFront then keeps it for a year. It draws only the card a page actually names, so it cannot be used to make any other image. Cards with a photo are JPEG, to stay under Bluesky’s 1 MB limit, and emoji are drawn from Twemoji. --- --- id: charlie-brown-tree title: Charlie Brown Tree summary: A tree stump at Magic Pines on Cannon Lake, carved into Peanuts characters under Snoopy’s doghouse by Adam Gale of Rust n’ Grain. collection: Historical projects status: archived url: https://www.thingelstad.com/magic-pines/charlie-brown-tree/ started: "2020" topics: - making sources: - kind: website url: https://www.thingelstad.com/magic-pines/charlie-brown-tree/ role: reference - kind: website url: https://www.thingelstad.com/2020/05/24/little-snippet-of.html role: reference - kind: website url: https://weekly.thingelstad.com/archive/163/ role: reference - kind: website url: https://www.thingelstad.com/2025/05/25/i-created-my-very-first.html role: reference connections: - to: 612-poap-challenge label: led to detail: The Peanuts Tree was my first location POAP in May 2025. Six days later I announced the 612 POAP Challenge, built on the same feature. source: https://www.thingelstad.com/2025/05/31/poap-challenge-collect-them-now.html kind: lineage page: https://thingelstad.xyz/things/charlie-brown-tree/ --- # Charlie Brown Tree A tree stump at Magic Pines on Cannon Lake, carved into Peanuts characters under Snoopy’s doghouse by Adam Gale of Rust n’ Grain. The Charlie Brown Tree, which we also call the Peanuts Tree, is a tall tree stump at Magic Pines, our place on Cannon Lake, carved with Peanuts characters climbing toward Snoopy’s red doghouse on top. Adam Gale of [Rust n’ Grain](https://rustngraincom.wordpress.com/) carved it. I posted [the carving in progress](https://www.thingelstad.com/2020/05/24/little-snippet-of.html), Charlie Brown holding Snoopy emerging from the wood, on 2020-05-24, and the tree in the snow in [Weekly Thing 163](https://weekly.thingelstad.com/archive/163/) that October. The [project page](https://www.thingelstad.com/magic-pines/charlie-brown-tree/) has videos. Logs left over from the tree became Escher-inspired [carved log tables](https://www.thingelstad.com/2021/06/12/i-love-our.html) for the fire area in 2021, another Rust n’ Grain project. In May 2025 I made the tree the site of [my first location-based POAP](https://www.thingelstad.com/2025/05/25/i-created-my-very-first.html), which visitors could mint by standing beside it. --- --- id: clash-royale-api-agent-reference title: Clash Royale API Agent Reference summary: Public, agent-first documentation of how the Clash Royale API actually behaves, with observed response shapes, quirks, and game modes. collection: Games and communities status: active url: https://github.com/jthingelstad/cr-agent-api-docs started: 2026-03 topics: - agents - play sources: - kind: github repository: jthingelstad/cr-agent-api-docs role: implementation connections: - to: elixir label: supplies game reference data to detail: Elixir’s deck archetype labels and card roles come from data files in the reference. source: https://elixir.poapkings.com/docs/archetypes page: https://thingelstad.xyz/things/clash-royale-api-agent-reference/ --- # Clash Royale API Agent Reference Public, agent-first documentation of how the Clash Royale API actually behaves, with observed response shapes, quirks, and game modes. Rather than a thin endpoint list, this reference is written for LLM agents, coding agents, and API clients that need to know how the API really behaves: endpoint-by-endpoint notes on parameters, pagination, caching, and errors; field-level models drawn from live responses; endpoints that are broken, disabled, or removed; and the game modes beyond Trophy Road, so an agent does not treat one ladder as the whole game. Machine-readable files cover the mode taxonomy, card roles, and deck names. It began inside [Elixir Bot](https://github.com/jthingelstad/elixir-bot) as cr-api-docs; in March 2026 Codex used it to [suggest a feature](https://www.thingelstad.com/2026/03/10/automatic-programming-speed.html) tracking ladder and Path of Legend momentum. It then became a standalone public repository. Copies kept inside other projects drifted, so they were removed, and [Elixir](https://github.com/jthingelstad/elixir-mcp/blob/main/AGENTS.md) and Elixir Drop now treat this one repository as their Clash Royale API truth. Its [agent guide](https://github.com/jthingelstad/cr-agent-api-docs/blob/main/AGENTS.md) asks any agent the live API surprises to write the finding down here, after checking the claim with a live probe tool. Observed enum values are guarded by the docs build, so a later rewrite cannot quietly drop them. It is an unofficial fan reference under Supercell’s Fan Content Policy. --- --- id: elixir title: Elixir summary: A service that records Clash Royale history and serves it to players, clans, and their AI agents over MCP. collection: Games and communities status: active url: https://elixir.poapkings.com/ started: 2026-09-03 topics: - agents - mcp - play sources: - kind: github repository: jthingelstad/elixir-mcp role: implementation - kind: website url: https://elixir.poapkings.com/ role: website sitemap: https://elixir.poapkings.com/sitemap.xml feed: https://elixir.poapkings.com/feed.xml connections: - to: elixir-mcp-discord label: provides recorded facts to detail: The configurable Discord agent gets its game facts through Elixir MCP tools. source: https://github.com/jthingelstad/elixir-mcp-discord - to: elixir-clan label: includes detail: Clan management is a feature of the same Elixir platform and shares its recorded history, application, and runtime. source: https://elixir.poapkings.com/updates/2026-10-02-clan-is-part-of-elixir - to: poap-kings label: supplies clan data to detail: The POAP KINGS website reads clan and roster data from Elixir’s JSON API. source: https://poapkings.com/elixir/ story: color: "#8860d9" introduction: The game remembers the present. Elixir remembers what happened. engineering: - Independent collectors fetch public game observations from machines with allowlisted IP addresses, sharing one rate budget. - One recorded history serves the browser application, a remote MCP server, and a versioned JSON API. - Everything cloud-side is serverless, with PostgreSQL, S3, and Lambda functions in one CloudFormation stack. - Clan management and Ladder are features of the same platform, sharing its record and application shell. stack: - Eleventy - React - PostgreSQL - AWS Lambda - MCP related: - elixir-drop - elixir-mcp-discord - elixir-mcp-collector - poap-kings questions: - How does Elixir keep the history? - What grew out of Elixir Bot? source: https://elixir.poapkings.com/docs/architecture sourceLabel: Architecture page: https://thingelstad.xyz/things/elixir/ --- # Elixir A service that records Clash Royale history and serves it to players, clans, and their AI agents over MCP. The Clash Royale API offers a current snapshot and a short, rotating battle log of about 30 battles. Elixir continuously records observations so players, clans, and their agents can ask questions about the history: battles, rosters, river races, and seasons. I built it by turning [Elixir Bot](https://github.com/jthingelstad/elixir-bot), the POAP KINGS clan agent, “upside-down.” Instead of one bot keeping its own database, the record became a service that any agent can use over MCP. Claude and I wrote the specification, then put Claude Code in a loop; [six hours later](https://www.thingelstad.com/2026/09/03/i-had-an-idea-to.html) there was a working system, and [Elixir MCP launched](https://elixir.poapkings.com/updates/2026-09-03-elixir-mcp-launches) on September 3, 2026. The next day the old bot’s archive was [replayed into the recorder](https://elixir.poapkings.com/updates/2026-09-04-four-months-of-history-imported), bringing battles back to mid-May. In the browser, Elixir is the Console for a player’s own history and the [Ladder](https://elixir.poapkings.com/ladder) for exploring ladder results. Elixir Clan runs in the same application, and Elixir Drop signs its players in with Elixir. Volunteer collectors do all of the fetching. Elixir is free, and its [updates feed](https://elixir.poapkings.com/updates) records every user-visible change. --- --- id: elixir-bot title: Elixir Bot summary: POAP KINGS’ first clan agent, a Discord bot that watched the clan and talked with its members from February to September 2026. collection: Games and communities status: retired url: https://github.com/jthingelstad/elixir-bot started: 2026-02 ended: 2026-09-26 topics: - agents - play sources: - kind: github repository: jthingelstad/elixir-bot role: implementation connections: - to: elixir label: gave rise to detail: The original Elixir Bot was retired in September 2026. Recorded game history became the broader Elixir platform. source: https://github.com/jthingelstad/elixir-bot kind: lineage - to: elixir-mcp-discord label: was succeeded by detail: The configurable Elixir Discord agent took over the original bot’s Discord role. source: https://github.com/jthingelstad/elixir-bot kind: lineage - to: elixir-mcp-collector label: gave rise to detail: The original bot’s game observation work grew into a separate Collector that feeds Elixir’s recorded history. source: https://github.com/jthingelstad/elixir-bot kind: lineage - to: elixir-clan label: gave rise to detail: The original bot’s clan management work carried forward into Elixir Clan, now a feature of the shared Elixir platform. source: https://github.com/jthingelstad/elixir-bot kind: lineage - to: clash-royale-api-agent-reference label: gave rise to detail: The Clash Royale API notes began inside Elixir Bot as cr-api-docs before becoming a standalone reference. source: https://www.thingelstad.com/2026/03/10/automatic-programming-speed.html kind: lineage - to: otto label: was first coded by detail: Otto wrote the first version of the bot, a templated command-and-response Discord bot. source: https://weekly.thingelstad.com/archive/342/ - to: poap-kings label: published detail: The bot regenerated the clan website’s roster pages, member bios, and home page message and committed them to git. source: https://sessions.minnestar.org/sessions/2094 - to: weekly-thing-workshop label: led to detail: Running Elixir showed me that “Discord is a reasonable place for an agent to run,” so I put the Weekly Thing Workshop’s agents there. source: https://www.thingelstad.com/2026/05/12/the-weekly-thing-team.html kind: lineage page: https://thingelstad.xyz/things/elixir-bot/ --- # Elixir Bot POAP KINGS’ first clan agent, a Discord bot that watched the clan and talked with its members from February to September 2026. Elixir Bot was the agent for POAP KINGS, the Clash Royale clan I run with my son Tyler and Tyler’s cousin Levi. I wanted [my own agent](https://weekly.thingelstad.com/archive/342/) so I could understand the agentic loop, data design, and memory from the inside: one that would monitor the clan, help it win wars, suggest strategies, and recommend promotions and demotions to leadership. It grew quickly in early 2026. Otto wrote the first version, a templated Discord bot. An LLM and a journal kept on the clan website [gave it a brain](https://ottoai.thingelstad.com/2026/03/01/building-elixir-when-a-discord.html), an hourly heartbeat and a SQLite memory made it agentic, and a long session with Codex [rebuilt its data and tools](https://ottoai.thingelstad.com/2026/03/07/from-snapshots-to-signals-elixirs.html) around signals. Later I gave it an [agentic product team](https://www.thingelstad.com/2026/06/22/elixirs-agentic-product-team.html) of scheduled automations that proposed, built, and checked its changes. Tyler and I told its story at Minnebar 20 in the session “[Elixir: Creating an AI Agent for our Clash Royale Clan](https://sessions.minnestar.org/sessions/2094).” Elixir Bot was retired on September 26, 2026. Its work was split among the projects that grew out of it: Elixir records the game, the Collector fetches from the API, Elixir Discord talks in the clan’s Discord, Elixir Clan handles management and awards, and Elixir Drop is the game. The [repository](https://github.com/jthingelstad/elixir-bot) is archived as it was on the last day. --- --- id: elixir-clan title: Elixir Clan summary: Clan management on Elixir, where a clan’s own written policy is run against the record to guide its leaders’ calls. collection: Games and communities status: active url: https://elixir.poapkings.com/clan started: 2026-09 topics: - play sources: - kind: github repository: jthingelstad/elixir-mcp role: implementation path: packages/clan - kind: github repository: jthingelstad/elixir-mcp role: implementation path: packages/clan-engine - kind: github repository: jthingelstad/elixir-mcp role: implementation path: packages/clan-state - kind: github repository: jthingelstad/elixir-mcp role: implementation path: packages/clan-web - kind: website url: https://elixir.poapkings.com/clan role: website - kind: github repository: jthingelstad/clan.poapkings.com role: historical connections: - to: poap-kings label: runs the clans of detail: POAP KINGS and its sister clans run on Elixir Clan for standing, the Elder band, and leader actions. source: https://poapkings.com/elixir/ page: https://thingelstad.xyz/things/elixir-clan/ --- # Elixir Clan Clan management on Elixir, where a clan’s own written policy is run against the record to guide its leaders’ calls. Elixir Clan is the part of Elixir for running a Clash Royale clan. Any player on a person’s Elixir account is a member of that player’s clan, and leaders who [verify their player](https://elixir.poapkings.com/docs/bring-your-clan) act in their in-game role. Each clan writes its own policy, and Elixir reads every week against it: [standing and the Elder band](https://elixir.poapkings.com/docs/standing), the [actions](https://elixir.poapkings.com/docs/clan-actions) waiting for a leader (promotions, welcomes, removals), season [awards](https://elixir.poapkings.com/docs/clan-awards), recruiting, and scouting. Decisions stay with the leaders. I built it to take the clan management features I had built into [Elixir Bot](https://github.com/jthingelstad/elixir-bot) for POAP KINGS and turn them into [a proper product that anyone can use](https://weekly.thingelstad.com/archive/351/). It began in September 2026 as a separate app at clan.poapkings.com, in its own [repository](https://github.com/jthingelstad/clan.poapkings.com), with Sign in with Elixir. On September 28, 2026, it [moved to /clan](https://elixir.poapkings.com/updates/2026-09-28-elixir-clan-lives-at-clan) on Elixir’s own address, and its code moved into the Elixir repository with its history. On October 2 it [became part of Elixir](https://elixir.poapkings.com/updates/2026-10-02-clan-is-part-of-elixir): one sign-in and one application, with every clan’s policies, actions, and awards carried over. The old repository is archived. --- --- id: elixir-mcp-collector title: Elixir Collector summary: A small, signed Go program that volunteers run on their own machines to fetch Clash Royale API data for Elixir’s shared record. collection: Games and communities status: active url: https://github.com/jthingelstad/elixir-mcp-collector started: 2026-09-04 topics: - mcp - play sources: - kind: github repository: jthingelstad/elixir-mcp-collector role: implementation - kind: website url: https://elixir.poapkings.com/docs/operators role: reference connections: - to: elixir label: gathers observations for detail: Collectors lease work from Elixir, fetch public observations from the Clash Royale API, and submit the results. source: https://elixir.poapkings.com/docs/operators page: https://thingelstad.xyz/things/elixir-mcp-collector/ --- # Elixir Collector A small, signed Go program that volunteers run on their own machines to fetch Clash Royale API data for Elixir’s shared record. The Clash Royale API only accepts requests from allowlisted IP addresses, so Elixir’s fetching happens on machines with stable addresses that volunteers run. A collector leases a job from Elixir over HTTPS (“fetch this player,” “fetch this clan’s war”), calls the API with its operator’s own key, and posts the result back. It never chooses its own targets and holds exactly two secrets: the operator’s Clash Royale key and a token Elixir issues. The whole fleet shares one rate budget, so more collectors add resilience, not more load on the API. Fetching started inside the Elixir codebase and [got its own repository](https://elixir.poapkings.com/updates/2026-09-04-the-collector-gets-its-own-home) on September 4, 2026, the day after Elixir launched. Each collector wears a Clash Royale card as its public name, and [anyone with an Elixir account](https://elixir.poapkings.com/docs/operators) may run one. A Python collector was retired on September 26, 2026, leaving one Go binary built only on the Go standard library. The same day, I used Claude credits to build [a fully signed release pipeline](https://www.thingelstad.com/2026/09/26/i-used-some-of-my.html): from [v3.0.0](https://github.com/jthingelstad/elixir-mcp-collector/releases/tag/v3.0.0), every release is signed with a key I manage, and the self-updater installs only the version and checksum Elixir names. --- --- id: elixir-mcp-discord title: Elixir Discord summary: An open-source Discord bot any Clash Royale clan can run, which gets every fact it states from Elixir MCP tool calls. collection: Games and communities status: active url: https://github.com/jthingelstad/elixir-mcp-discord started: 2026-09 topics: - agents - mcp - play sources: - kind: github repository: jthingelstad/elixir-mcp-discord role: implementation connections: - to: poap-kings label: is the Discord agent for detail: POAP KINGS runs an instance of the bot as its clan agent in Discord, answering members from Elixir’s record. source: https://poapkings.com/elixir/ page: https://thingelstad.xyz/things/elixir-mcp-discord/ --- # Elixir Discord An open-source Discord bot any Clash Royale clan can run, which gets every fact it states from Elixir MCP tool calls. Elixir Discord is a Discord bot for a Clash Royale clan with no local game database, no Clash Royale API key, and no fallback. It connects to [Elixir](https://elixir.poapkings.com/) as that clan’s agent, and every fact it states comes from an MCP tool call made moments earlier. There is no clan in the repository: a clan points it at its own agent key, Claude key, and Discord channels, with no fork and no code to edit. Its behavior is a set of routines, each a Markdown file that pairs a trigger with a prompt and a destination. A routine can answer whoever speaks in a channel, post when Elixir’s timeline records a join, a departure, or a standout session, fire on a game clock boundary such as the end of a war day, or run on a schedule. The record is the trigger, not the calendar. I started it in September 2026, with its first release, [v0.3.0](https://github.com/jthingelstad/elixir-mcp-discord/releases/tag/v0.3.0), on September 15. When Elixir Bot was retired on September 26, 2026, this bot [took over its Discord role](https://github.com/jthingelstad/elixir-bot) for POAP KINGS, and any other clan can run its own copy as [an agent of its own](https://elixir.poapkings.com/examples/discord). --- --- id: elixir-drop title: Elixir Drop summary: A free browser game, run by POAP KINGS, for learning Clash Royale cards and their elixir costs through six fast game modes. collection: Games and communities status: active url: https://drop.poapkings.com/ started: 2026-06-13 topics: - play sources: - kind: github repository: jthingelstad/drop.poapkings.com role: implementation - kind: website url: https://drop.poapkings.com/ role: website sitemap: https://drop.poapkings.com/sitemap.xml feed: https://drop.poapkings.com/feed.xml connections: - to: elixir label: signs players in and reads its season clock from detail: Drop players sign in with their Elixir account, and Drop’s seasons follow the Clan Wars clock that Elixir records. source: https://poapkings.com/elixir/ story: color: "#6a4fc4" introduction: See a card, name its cost, get quicker. engineering: - Six modes train one skill, from unranked Practice to the 15-card Surge sprint. - Ranked online games deal from a signed server challenge drawn from the complete card catalog. - Seasonal leaderboards follow the Clan Wars clock, and a Fair Play review checks leading results without treating an automated signal as a verdict. - A Preact browser app served from S3 behind CloudFront, with a Lambda API and DynamoDB. stack: - Preact - TypeScript - AWS Lambda - DynamoDB related: - elixir - poap-kings questions: - What are the six ways to play? - How do Drop’s seasons and leaderboards work? source: https://drop.poapkings.com/updates/ sourceLabel: Drop updates page: https://thingelstad.xyz/things/elixir-drop/ --- # Elixir Drop A free browser game, run by POAP KINGS, for learning Clash Royale cards and their elixir costs through six fast game modes. Elixir Drop is a game for learning Clash Royale card elixir costs. Knowing a card’s cost instantly leaves more attention for everything else in a match, so each mode trains that recall from a different angle: Practice, Surge, Higher / Lower, Trade, Survival, and Rain. Every mode works without an account; signing in saves progress, badges, and ranked scores. It is run by POAP KINGS, my Clash Royale clan, and I count it among the things I have built with coding agents, [even making a game](https://www.thingelstad.com/2026/09/17/building-and-puzzling-about-software.html). [The first card dropped](https://drop.poapkings.com/updates/) on June 13, 2026, with Practice; Surge, Higher / Lower, and Survival arrived the same day and Trade the next. Accounts, player profiles, and the first seasonal ladder followed in July, and the game moved to AWS on August 22. Players could [sign in with Elixir](https://elixir.poapkings.com/docs/sign-in-with-elixir) from September 14, 2026, and it is now the only way in: a Drop account is an Elixir account, and Drop sends no sign-in mail of its own. Selected seasonal competitions award a gifted Pass Royale, funded by the clan, to the top eligible player, and the [updates feed](https://drop.poapkings.com/updates/) announces new features and season results. --- --- id: escaping-things title: Escaping Things summary: My family’s escape room team log, with every room played since 2016, on a map with trips, players, and stats. collection: Games and communities status: active url: https://escape.thingelstad.com/ started: 2026-02-23 topics: - play sources: - kind: github repository: jthingelstad/escape.thingelstad.com role: implementation - kind: website url: https://escape.thingelstad.com/ role: website sitemap: https://escape.thingelstad.com/sitemap.xml feed: https://escape.thingelstad.com/feed.xml - kind: website url: https://weekly.thingelstad.com/archive/342/ role: reference - kind: website url: https://www.thingelstad.com/lists/escape-rooms/ role: reference connections: [] page: https://thingelstad.xyz/things/escaping-things/ --- # Escaping Things My family’s escape room team log, with every room played since 2016, on a map with trips, players, and stats. Escaping Things is the escape room team of Tammy, Mazie, Tyler, and me, and [escape.thingelstad.com](https://escape.thingelstad.com/) is its log: every room we have played, with results, photos, ratings, a map, trips, players, and stats. By August 2026 it recorded 113 rooms in 11 countries. The record began as a [list on my blog](https://www.thingelstad.com/lists/escape-rooms/), built from posts about rooms. In March 2025 I [reconciled it](https://www.thingelstad.com/2025/03/16/reconciled-list-of-escape-rooms.html) against blog posts, photos, YNAB transactions, and calendars, and the count went from 43 rooms to 65. With a spring 2026 trip to Amsterdam, Paris, and Barcelona planned around TERPECA-ranked rooms, I wanted a dedicated site with a map. As I told it in [Weekly Thing 342](https://weekly.thingelstad.com/archive/342/), I turned my spreadsheet into a CSV, wrote a CLAUDE.md with Claude, and had Claude Code build the site. I then moved the data into an Airtable base of companies, locations, and rooms, and [announced the site](https://www.thingelstad.com/2026/02/23/ive-been-working-on-this.html) on 2026-02-23. I never looked at its code; Codex and Claude Code wrote it. Tammy found the trip’s rooms (“Tammy found us twelve amazing escape rooms”), and the whole family writes up the rooms we play ([Escape in Europe, Day 13](https://www.thingelstad.com/2026/03/27/escape-in-europe-day.html)). After the twelve rooms of that trip, I added trip pages, starting with [Escape in Europe](https://escape.thingelstad.com/trip/escape-in-europe/), with commentary from the whole family ([WT344](https://weekly.thingelstad.com/archive/344/)). The site is a static Eleventy build from Airtable snapshots, with Leaflet maps, Chart.js stats, Pagefind search, and an Atom feed of new rooms. --- --- id: filament title: Filament summary: A MediaWiki skin built on Yahoo’s Pure CSS framework, written mostly by Garrick van Buren with me in 2013. collection: Historical projects status: retired url: https://github.com/jthingelstad/filament started: 2013-06-06 topics: - mediawiki sources: - kind: github repository: jthingelstad/filament role: implementation - kind: website url: https://web.archive.org/web/20140302063203/http://filament.thingelstad.com/wiki/Main_Page role: demo connections: - to: foreground label: grew out of detail: Filament’s repository history begins with Foreground’s first commits, and Garrick van Buren started the Pure version from that code in June 2013. source: https://github.com/jthingelstad/filament/commit/b18787ce6bace0ff6e065a0656a0c13d44f08ff7 kind: lineage page: https://thingelstad.xyz/things/filament/ --- # Filament A MediaWiki skin built on Yahoo’s Pure CSS framework, written mostly by Garrick van Buren with me in 2013. Filament is a MediaWiki skin that uses Yahoo’s [Pure](https://purecss.io/) CSS framework. Its README calls it “a MediaWiki skin that focuses on your content,” the same aim as Foreground, which uses the heavier Zurb Foundation framework. Like Foreground, it was a project of WikiWonders, the MediaWiki project business I never got off the ground, and was published under that name with a 2-clause BSD license. Garrick van Buren wrote most of it. The repository carries Foreground’s early history, and on June 6, 2013 Garrick [began the Pure version](https://github.com/jthingelstad/filament/commit/b18787ce6bace0ff6e065a0656a0c13d44f08ff7); I updated it to Pure 0.2.0 and fixed asset paths. Karsten Hoffmeyer added a German translation and license fixes in [November 2013](https://github.com/jthingelstad/filament/pull/11), the last change to the code. A demo wiki ran on my wiki farm at filament.thingelstad.com. By March 2014 its [main page](https://web.archive.org/web/20140302063203/http://filament.thingelstad.com/wiki/Main_Page) said the demo was blank and pointed visitors to GitHub. The repository is archived. --- --- id: flight-path title: Flight Path summary: A rotating globe of the 2026 POAP Airport Rally with claims, a leaderboard, and each collector’s path, built from an iPhone. collection: Games and communities status: retired url: https://web.archive.org/web/20260312035500/https://flightpath.poaprally.com/ started: 2026-02-25 ended: 2026-07-24 topics: - poap - agents sources: - kind: github repository: jthingelstad/flightpath.poaprally.com role: implementation - kind: website url: https://weekly.thingelstad.com/archive/342/ role: reference - kind: website url: https://www.thingelstad.com/2026/02/25/it-is-bonkers-to-me.html role: reference - kind: website url: https://web.archive.org/web/20260312035500/https://flightpath.poaprally.com/ role: archive connections: [] page: https://thingelstad.xyz/things/flight-path/ --- # Flight Path A rotating globe of the 2026 POAP Airport Rally with claims, a leaderboard, and each collector’s path, built from an iPhone. Flight Path lived at flightpath.poaprally.com and extended POAP’s year-long Airport POAP Rally, which I already followed on my [Airport POAP Rally](https://www.thingelstad.com/2025/12/26/airport-poap-rally-website.html) site, which put location POAPs at 100 airports around the world. It showed a rotating globe with every rally airport and the number of claims at each, a leaderboard of collectors, and any one collector’s own path. As I told it in [Weekly Thing 342](https://weekly.thingelstad.com/archive/342/), I built it on the evening of 2026-02-25, in bed, entirely on my iPhone. I worked out the idea with ChatGPT, had it write a CLAUDE.md, created a fresh GitHub repository on my phone with that file and my CSV of rally airports and drop IDs, and attached a cloud Claude Code session to it. While Claude Code wrote the site I set up the DNS name and GitHub Pages, and it worked on the first deploy. I called it [bonkers](https://www.thingelstad.com/2026/02/25/it-is-bonkers-to-me.html). In late March 2026 the [repository](https://github.com/jthingelstad/flightpath.poaprally.com) added teams, maps, and a daily data update. Flight Path read live POAP claim data, so it could not outlive POAP. On July 24, 2026, a week before POAP shut down, I [replaced the site](https://github.com/jthingelstad/flightpath.poaprally.com/commit/fea8eac46878b7ab9afa418c48193b4139d8a06b) with a notice that the rally had ended, pointing to poaparchive.com, removed the daily update, and archived the repository. The host no longer answers; a [March 2026 capture](https://web.archive.org/web/20260312035500/https://flightpath.poaprally.com/) preserves the site as it ran. --- --- id: foreground title: Foreground summary: A responsive MediaWiki skin Garrick van Buren built with my input in 2013, now maintained in Wikimedia’s code review. collection: Historical projects status: retired url: https://www.mediawiki.org/wiki/Skin:Foreground started: 2013-05-21 topics: - mediawiki - semantic-mediawiki sources: - kind: github repository: jthingelstad/foreground role: implementation - kind: github repository: wikimedia/mediawiki-skins-Foreground role: successor - kind: website url: https://www.mediawiki.org/wiki/Skin:Foreground role: reference connections: [] page: https://thingelstad.xyz/things/foreground/ --- # Foreground A responsive MediaWiki skin Garrick van Buren built with my input in 2013, now maintained in Wikimedia’s code review. Foreground is a MediaWiki skin that “focuses on putting your content in the foreground.” It is built on the Zurb Foundation framework, so a wiki can lay out pages with Foundation’s responsive grid instead of MediaWiki tables, and it has classes predefined for Semantic MediaWiki. Its demo wiki was [foreground.wikiwonders.net](https://web.archive.org/web/20130622044052/http://foreground.wikiwonders.net/wiki/Main_Page). Garrick van Buren built Foreground for MediaWiki with my input. It was a project of WikiWonders, a MediaWiki project business I started but never got off the ground, and was first published under the WikiWonders name on GitHub, in a repository I created on May 21, 2013. I credited Foreground to Garrick in [One Year for WikiApiary](https://www.thingelstad.com/2013/12/22/one-year-for.html), and later called it the skin “[Garrick and I worked on](https://weekly.thingelstad.com/archive/317/).” I worked on it for WikiApiary, where I collaborated extensively with Tom Hutchison ([Weekly Thing 30](https://weekly.thingelstad.com/archive/30/)). I tagged [releases](https://github.com/jthingelstad/foreground/releases) 1.0 and 1.1 in 2014 and [upgraded it to Font Awesome 4.0.3](https://www.thingelstad.com/2014/02/09/upgraded-mediawiki-foregroundskin.html) that February; Hutchison published every release from 1.2.0 in 2015 to 2.4.0 in 2021. In 2022 Wikimedia developers asked whether the skin was still maintained. I [agreed to archive my repository](https://github.com/jthingelstad/foreground/issues/398) so it could move “into a more maintained status,” noting that it “got its start years ago from” Garrick and that Hutchison “has done all the recent maintaining.” Foreground now lives in Wikimedia’s Gerrit, mirrored at [wikimedia/mediawiki-skins-Foreground](https://github.com/wikimedia/mediawiki-skins-Foreground), and [MediaWiki.org](https://www.mediawiki.org/wiki/Skin:Foreground) lists Garrick van Buren, Jamie Thingelstad, and Tom Hutchison as its authors. --- --- id: jamie-thingelstad-blog title: Jamie Thingelstad blog summary: My personal blog since June 2004, more than 10,000 posts of writing, links, and photos, now published on Micro.blog. collection: Publishing status: active url: https://www.thingelstad.com/ started: 2004-06-02 topics: - open-web - archives sources: - kind: website url: https://www.thingelstad.com/ role: website sitemap: https://www.thingelstad.com/sitemap.xml feed: https://www.thingelstad.com/feed.json - kind: github repository: jthingelstad/thing-hugo role: theme - kind: github repository: jthingelstad/thingles.github.io role: historical - kind: website url: https://www.thingelstad.com/2021/04/28/four-great-years.html role: reference connections: - to: weekly-thing label: posts are syndicated in detail: Weekly Thing republishes my blog posts, connecting the newsletter to my ongoing personal writing. source: https://weekly.thingelstad.com/ story: color: "#a36852" introduction: A personal life, written in public. engineering: - The blog has run on .Text, WordPress, Pelican, Squarespace, Jekyll, and Micro.blog. - Micro.blog is the current publishing authority. Thing Hugo is the theme I am building for it. - Every post shares as its own card, a 1200 by 630 image drawn from the post itself (its title or opening words, date, categories, and first photo), made on demand at cards.thingelstad.com. - Longer writing, shorter updates, and photographs share one personal archive. - Weekly Thing republishes blog posts as part of the newsletter. stack: - Micro.blog - Hugo - Open web related: - weekly-thing - cards questions: - How has the blog changed over time? - How does the blog connect to Weekly Thing? source: https://www.thingelstad.com/ sourceLabel: Read the blog started: Blogging since June 2004 page: https://thingelstad.xyz/things/jamie-thingelstad-blog/ --- # Jamie Thingelstad blog My personal blog since June 2004, more than 10,000 posts of writing, links, and photos, now published on Micro.blog. I had a website before I had a blog. I [count June 2, 2004](https://www.thingelstad.com/2025/01/12/if-i-was-born-and.html) as the blog’s official start, the date of its [first post](https://www.thingelstad.com/2004/06/02/expose-of-the.html), and the archive also holds posts dated as far back as 2000 that I added to it later. I found I enjoyed writing in public: telling stories about my life and sharing the projects I was working on. The habit has lasted more than 20 years and over 10,000 posts. The blog is personal and noncommercial. The blog has moved platforms several times. It started on .Text, a Windows .NET blogging package, and [moved to WordPress](https://www.thingelstad.com/2006/11/25/migrating-text-to.html) in 2006. Apart from a [brief move to Pelican](https://www.thingelstad.com/2014/03/16/i-flopped-httpstcozmirtevd.html) in March 2014, it stayed on WordPress until April 2016, when I [moved it to Squarespace](https://www.thingelstad.com/2016/04/20/moved-my-blog.html), and then to [Jekyll](https://www.thingelstad.com/2017/10/29/managing-years-of.html), hosted first on GitHub Pages and then [on Netlify](https://www.thingelstad.com/2018/12/29/macro-blog.html). I began using Micro.blog in April 2017. In May 2020 I [imported the whole Jekyll site](https://www.thingelstad.com/2020/05/02/importing-jekyll-site.html) into it, more than 1,600 posts and 800MB of images, and Micro.blog has been the blog’s home ever since. Over the years the writing grew from mostly longer articles to include short updates and, more and more, photographs, as phones made posting easier. My blog posts from each week are also republished in the Weekly Thing. --- --- id: jiggy-thing-puzzles title: Jiggy Thing Puzzles summary: A 500-piece jigsaw puzzle our family drew and boxed ourselves, sold to raise money at Things 4 Good. collection: Personal tools and making status: archived url: https://www.thingelstad.com/2021/10/06/our-family-created.html started: 2021-10 topics: - play - making sources: - kind: website url: https://www.thingelstad.com/2021/10/06/our-family-created.html role: reference - kind: website url: https://www.thingelstad.com/2021/11/09/things-good-fall.html role: reference connections: - to: things-4-good label: was sold at detail: Jiggy Thing Puzzle source: https://www.thingelstad.com/2021/11/09/things-good-fall.html page: https://thingelstad.xyz/things/jiggy-thing-puzzles/ --- # Jiggy Thing Puzzles A 500-piece jigsaw puzzle our family drew and boxed ourselves, sold to raise money at Things 4 Good. Jiggy Thing Puzzles are custom jigsaw puzzles our family made together. The first, **Jiggy Thing Puzzle #001 “Celebration City,”** is a 500-piece puzzle of hand-drawn digital art full of small scenes, such as an ant hotel with a “no vacancy” sign. On October 6, 2021, I wrote that we had finished the box design and [ordered 50 puzzles](https://www.thingelstad.com/2021/10/06/our-family-created.html). We had made puzzles before, but this was our first custom box, and I was pleased with how it came out when the order arrived ([Custom Puzzle Box](https://www.thingelstad.com/2021/10/24/custom-puzzle-box.html)). The puzzle was made for the first [Things 4 Good Fall Fundraiser](https://www.thingelstad.com/2021/11/09/things-good-fall.html) in November 2021, where it sold alongside our candles. After the sale, [Weekly Thing 203](https://weekly.thingelstad.com/archive/203/) offered the remaining puzzles for $35, printed on Eska board in the custom box. We sold 26 puzzles in 2021 and 10 in 2022. I noted that 2022 offered the same puzzle, so “a number of folks already had it” ([Things 4 Good Fall Fundraiser Notes](https://www.thingelstad.com/2022/11/27/101105.html)). No second puzzle has been published. My [puzzles page](https://www.thingelstad.com/puzzles/) has said “Coming Soon…” since at least December 2022. --- --- id: link-blog title: Link Blog summary: Link Thing, a website that published the links I saved to Pinboard for the Weekly Thing, from 2017 to about 2021. collection: Historical projects status: retired url: https://web.archive.org/web/20211207055926/https://links.thingelstad.com/ started: 2017-09-09 topics: - open-web - archives sources: - kind: website url: https://web.archive.org/web/20211207055926/https://links.thingelstad.com/ role: archive - kind: website url: https://weekly.thingelstad.com/archive/18/ role: reference - kind: website url: https://www.thingelstad.com/2020/11/08/i-got-my.html role: reference connections: - to: weekly-thing label: republished the links from detail: Link Thing carried the same links that appeared each week in the Weekly Thing, as a website with its own navigation. source: https://weekly.thingelstad.com/archive/18/ page: https://thingelstad.xyz/things/link-blog/ --- # Link Blog Link Thing, a website that published the links I saved to Pinboard for the Weekly Thing, from 2017 to about 2021. Link Thing was my link blog at links.thingelstad.com. I already saved the links for the Weekly Thing to Pinboard with Markdown in their descriptions, and I realized the same Markdown could become Jekyll posts. Using the Pinboard API, I wrote each link out as a post and put an early version live, announced in [Weekly Thing 18](https://weekly.thingelstad.com/archive/18/) on September 9, 2017. It carried the same links as the newsletter, “but here it’s a full website with it’s own navigation and such.” Three weeks later I added client-side search with Lunr.js over its 9,000 links ([Weekly Thing 21](https://weekly.thingelstad.com/archive/21/)). In 2017 alone I saved [913 links](https://www.thingelstad.com/2018/01/20/in-links.html). In January 2019 I moved a “good enough” version to Blot ([Weekly Thing 88](https://weekly.thingelstad.com/archive/88/)), and the next month tried Commento comments on it ([Weekly Thing 94](https://weekly.thingelstad.com/archive/94/)). On November 8, 2020, I [relaunched it](https://www.thingelstad.com/2020/11/08/i-got-my.html) to give the links I shared in the Weekly Thing “a permanent home on the web.” I put Commento back on it as an experiment and added Index pages listing every link saved from a given site. In December 2020 I [switched to Hyvor Talk](https://www.thingelstad.com/2020/12/19/commenting-and-reactions.html) for comments and reactions. The last capture in the [Internet Archive](https://web.archive.org/web/20211207055926/https://links.thingelstad.com/), from December 2021, shows posts through December 2, 2021. The site is gone now. In [Weekly Thing 274](https://weekly.thingelstad.com/archive/274/) in January 2024, I wrote, “When I was running a link blog… I may create a link blog again in the future, but if I did I want it to not be blog-date-centric but instead content-keyword-search centric.” An earlier experiment with the same idea was links_thing, a [bookmarking wiki](https://www.thingelstad.com/2012/07/01/bookmarking-with-semantic.html) I built on Semantic MediaWiki in 2012 and filled with almost 4,000 links imported from Pinboard. --- --- id: linking-things title: Linking Things summary: Every link I have saved since 2005, one page per link, searchable and joined to the Weekly Thing issues that carried them. collection: Publishing status: active url: https://links.thingelstad.xyz/ started: 2026-10-23 topics: - open-web - archives sources: - kind: github repository: jthingelstad/links.thingelstad.xyz role: implementation - kind: website url: https://links.thingelstad.xyz/ role: reference - kind: website url: https://weekly.thingelstad.com/archive/274/ role: reference - kind: website url: https://weekly.thingelstad.com/archive/352/ role: reference connections: - to: weekly-thing label: lists the links of detail: Every Weekly Thing issue has a page on Linking Things listing the links it carried, 6,867 links across 354 issues when the site went live. source: https://links.thingelstad.xyz/issues/ - to: link-blog label: succeeds detail: In Weekly Thing 274 I wrote that if I made a link blog again, I wanted it “to not be blog-date-centric but instead content-keyword-search centric.” Linking Things is built around search, not dates. source: https://weekly.thingelstad.com/archive/274/ kind: lineage - to: links-thing label: follows detail: links_thing gave each of just under 4,000 bookmarks its own wiki page in 2012. Linking Things gives every link I have saved its own page again. source: https://www.thingelstad.com/2012/07/01/bookmarking-with-semantic.html kind: lineage page: https://thingelstad.xyz/things/linking-things/ --- # Linking Things Every link I have saved since 2005, one page per link, searchable and joined to the Weekly Thing issues that carried them. Linking Things is every link I have saved since 2005, one page per link, and what connects them. When it went live on October 23, 2026, it held 16,524 links from 7,064 hosts, saved from August 2, 2005 to October 22, 2026. A link’s page shows the note I saved with it, when there is one, and the Weekly Thing issue that carried it: 6,867 of the links appeared in one of 354 issues, and each issue has a page listing its links. Every host and every year has a page too. Search runs in the browser with Pagefind, and every link has a Kudos button. It is built for machines as well as people. Each link’s page has a JSON and a Markdown twin, the whole collection is one JSON file, and `llms.txt` points to a file of links for each year. RSS and JSON feeds carry the newest links, and every host has a pair of its own. It is a static Astro site on S3 and CloudFront, so no server, database or model answers a visitor. I built it on October 23, 2026, with coding agents. It is my fourth run at the idea: in 2012 I built links_thing, a bookmarking wiki on Semantic MediaWiki, and from 2017 to 2021 I ran Link Thing, a link blog that I relaunched in 2020. In [Weekly Thing 274](https://weekly.thingelstad.com/archive/274/) in January 2024, I wrote, “I may create a link blog again in the future, but if I did I want it to not be blog-date-centric but instead content-keyword-search centric.” This one starts from search, not from dates. The reason is the hyperlink. In [Weekly Thing 352](https://weekly.thingelstad.com/archive/352/) in October 2026, I called the link, not HTML or a web page, “the fundamental building block of the web,” and wrote, “Long live the hyperlink!” Topics to browse by, and the nearest neighbours of each link, come later. --- --- id: links-thing title: links_thing summary: My 2012 bookmarking wiki, built on Semantic MediaWiki with forms, a bookmarklet, and calendar, video and statistics views. collection: Historical projects status: retired url: https://www.thingelstad.com/2012/07/01/bookmarking-with-semantic.html started: 2012-04 topics: - semantic-mediawiki - mediawiki sources: - kind: website url: https://www.thingelstad.com/2012/07/01/bookmarking-with-semantic.html role: reference connections: [] page: https://thingelstad.xyz/things/links-thing/ --- # links_thing My 2012 bookmarking wiki, built on Semantic MediaWiki with forms, a bookmarklet, and calendar, video and statistics views. After months of thinking about hosting my own bookmarks, I built links_thing in 2012; it was online by [April](https://web.archive.org/web/20120424043815/http://links.thingelstad.com:80/wiki/Main_Page), showing my last 50 bookmarks. It was a wiki on [Semantic MediaWiki](https://www.semantic-mediawiki.org/) where each page in the Bookmark category is one bookmark with properties such as its URL, creation time and excerpt ([Bookmarking with Semantic MediaWiki](https://www.thingelstad.com/2012/07/01/bookmarking-with-semantic.html)). Semantic Forms made entry easy, and a bookmarklet filled in the URL, title and excerpt of the page I was on. I imported just under 4,000 links from Pinboard’s JSON export with a small Python script and the Data Transfer extension. Owning the data was the point: “It is mine,” I wrote. I could clean up every bookmark with regular-expression find and replace, and I added views no bookmarking service offered: bookmarks on a calendar, embedded YouTube and Vimeo videos, statistics, and a template that flagged short URLs and tracking tags for a bot to clean up. I was also building LinkBot, a scheduled Python program to validate URLs. On [Open Loop #0](https://www.thingelstad.com/projects/open-loop/0-but-no-shoes/) I described it as “35 lines of Python” that checked five random bookmarks an hour, followed redirects, and stripped tracking codes. The wiki ran on my [MediaWiki farm](https://web.archive.org/web/20151013153210/https://wikiapiary.com/wiki/Farm:Thingelstad.com). By 2015 WikiApiary listed it among the farm’s defunct wikis, with 7,178 pages and a last sample in October 2014. I was collecting links in Pinboard again when I started the Weekly Thing in 2017 ([Assembling the Weekly Thing](https://www.thingelstad.com/2017/06/23/assembling-the-weekly.html)). --- --- id: mb title: mb summary: A command-line tool and MCP server for Micro.blog, built for my agent Otto and installed through Homebrew. collection: Developer tools and systems status: active url: https://github.com/jthingelstad/mb started: 2026-03 topics: - agents - mcp - open-web sources: - kind: github repository: jthingelstad/mb role: implementation - kind: github repository: jthingelstad/homebrew-tap role: distribution - kind: website url: https://www.thingelstad.com/2026/10/05/mb-with-mcp-support.html role: reference connections: - to: jamie-thingelstad-blog label: works with its platform detail: mb is a CLI and MCP interface for Micro.blog, the platform on which I publish my blog. source: https://github.com/jthingelstad/mb - to: otto label: was built for detail: I built mb so Otto could post to its own Micro.blog blog. Otto was the user giving feedback, and it uses mb through a Skill. source: https://weekly.thingelstad.com/archive/342/ story: color: "#24272d" introduction: An open-web tool built for people, scripts, and agents. engineering: - The CLI and MCP tools share the same service layer. - Write operations return durable receipts so an uncertain result can be checked before a request is sent again. - An optional MCP server exposes 23 typed tools. Homebrew provides a distribution path. stack: - Python - CLI - MCP - Micro.blog related: - otto - jamie-thingelstad-blog questions: - How does mb work with AI agents? - What is interesting about its write receipts? source: https://github.com/jthingelstad/mb page: https://thingelstad.xyz/things/mb/ --- # mb A command-line tool and MCP server for Micro.blog, built for my agent Otto and installed through Homebrew. mb gives Micro.blog a compact, pipeable command-line interface that works without interactive prompts, so people, scripts and agents can all use it. An optional local MCP server exposes the same services to an AI client. I built it in March 2026 for [Otto](https://ottoai.thingelstad.com/), my AI agent, which had just been given a Micro.blog blog. I specced it with Claude on a plane and had Claude Code build it ([Weekly Thing 342](https://weekly.thingelstad.com/archive/342/)). Otto was the user giving feedback, I was the product manager, and Claude Code did the building ([March 3 post](https://www.thingelstad.com/2026/03/03/i-have-ottoi-exercising-the.html)); Otto wrote [its own post](https://ottoai.thingelstad.com/2026/03/03/mb-a-microblog-client-built.html) about it. I called it “my first app I’ve ever published with a version and an install capability.” Version 1.0.0 was released on March 3, 2026. [mb 2.0](https://www.thingelstad.com/2026/10/05/mb-with-mcp-support.html), announced on October 5, 2026, added the MCP server with 23 typed tools and durable write receipts. I built that version [with Otto](https://www.thingelstad.com/2026/10/04/working-with-otto-this-morning.html) the morning before. Release 2.0.1 that day was the first meant for public use, and 2.1 and 2.2 followed within the day with versioned results, per-tool schemas and a guided `mb auth`. It installs with `brew install jthingelstad/tap/mb` from my [Homebrew tap](https://github.com/jthingelstad/homebrew-tap). --- --- id: numbers2words title: Numbers2Words summary: A MediaWiki parser function I wrote in 2011 that spells out a number in words. collection: Historical projects status: retired url: https://github.com/jthingelstad/Number2Words started: 2011-07-20 topics: - mediawiki sources: - kind: github repository: jthingelstad/Number2Words role: implementation connections: [] page: https://thingelstad.xyz/things/numbers2words/ --- # Numbers2Words A MediaWiki parser function I wrote in 2011 that spells out a number in words. Numbers2Words adds an `{{#n2w:}}` parser function to MediaWiki. Given a number, it returns the number written out in words, using the PEAR [Numbers_Words](https://pear.php.net/package/Numbers_Words) package. The [whole extension](https://github.com/jthingelstad/Number2Words/blob/master/Number2Words.php) is one short PHP file, and 0.0.1 is its only version. I wrote it in July 2011. Wikinosh ran it: in January 2013 [WikiApiary listed Numbers2Words 0.0.1](https://web.archive.org/web/20130103025340/http://wikiapiary.com/wiki/Wikinosh) among Wikinosh’s extensions, and Wikinosh’s [main page](https://web.archive.org/web/20111205190345/http://wikinosh.com/wiki/Main_Page) spelled out its counts, as in “thirteen thousand seven hundred fifty-three food records.” The same package returned in 2014, when I used Numbers_Words to write a spelled-out number challenge for MediaWiki’s QuestyCaptcha ([Updated Dynamic Questy Captchas](https://www.thingelstad.com/2014/10/28/updated-dynamic-questy.html)) and then for Question2Answer. The repository’s last change, in 2015, fixed the include, and it is archived. --- --- id: oliver title: Oliver summary: The R/W Book Club’s AI agent and sixth member, which keeps the club’s record, briefs meetings and publishes its website. collection: Games and communities status: active url: https://rwbookclub.com/oliver/ started: 2026-05 topics: - agents - reading sources: - kind: github repository: jthingelstad/rwbookclub.com role: implementation path: agent - kind: website url: https://rwbookclub.com/oliver/ role: reference connections: - to: r-w-book-club label: publishes the website of detail: Every book, meeting and member is kept in Oliver’s database, and Oliver rebuilds and publishes the club website to GitHub Pages. source: https://rwbookclub.com/about/ page: https://thingelstad.xyz/things/oliver/ --- # Oliver The R/W Book Club’s AI agent and sixth member, which keeps the club’s record, briefs meetings and publishes its website. Oliver is the [R/W Book Club](https://rwbookclub.com/)’s agent: “archivist, correspondent, meeting-runner, picking partner, and — by the club’s own vote, years before he could hear it — our sixth member” ([Oliver](https://rwbookclub.com/oliver/)). He keeps every book, meeting, member, review and rating since 2003 in his database and generates and deploys the club’s website from it. Two days before each meeting Oliver sends a researched discussion brief, the Preface, and a week after it a Postscript on news about books the club has read. He helps members pick the next book, runs roll call and reminders over email and Discord, keeps a weekly memory of members’ tastes seeded from ten years of the club’s mailing list, and announces his own releases. I built Oliver in Python on the Anthropic API, as part of the club’s [public repository](https://github.com/jthingelstad/rwbookclub.com), which became a monorepo of website, corpus and [Oliver](https://github.com/jthingelstad/rwbookclub.com/commit/bdb72521adb776b3a9897f1ae3c0f0f41c62ccfb) on May 27, 2026. He is named for Oliver Selfridge, whose 1958 paper “Pandemonium: A Paradigm for Learning” introduced the demon/agent metaphor ([SOUL.md](https://github.com/jthingelstad/rwbookclub.com/blob/main/agent/docs/SOUL.md)). --- --- id: open-loop title: Open Loop summary: A nine-episode podcast with Garrick van Buren in 2012 and 2013, archived with transcripts and a feed. collection: Historical projects status: archived url: https://www.thingelstad.com/projects/open-loop/ started: 2012-06-01 ended: 2013-04-12 topics: - open-web - play sources: - kind: website url: https://www.thingelstad.com/projects/open-loop/ role: podcast feed: https://files.thingelstad.com/projects/openloop/podcast.xml connections: - to: planet-kubb label: discussed detail: On Open Loop source: https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/ - to: road-sign-math label: discussed detail: Open Loop source: https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/ - to: wikiapiary label: discussed detail: Episode 7, in January 2013, told how I built WikiApiary in about three days and how Garrick named it. source: https://www.thingelstad.com/projects/open-loop/7-turtle-turtle-turtle/ - to: planet-kubb-score label: discussed detail: Episode 3, Kubb Fever, linked the Planet Kubb notation and scoresheet and talked through how Garrick van Buren and I record games. source: https://www.thingelstad.com/projects/open-loop/3-kubb-fever/ page: https://thingelstad.xyz/things/open-loop/ --- # Open Loop A nine-episode podcast with Garrick van Buren in 2012 and 2013, archived with transcripts and a feed. Open Loop was a podcast I made with Garrick van Buren. We recorded nine episodes, numbered 0 to 8, from [June 1, 2012](https://www.thingelstad.com/projects/open-loop/0-but-no-shoes/) to April 12, 2013, talking about Kubb, beer and the technology side projects we were tinkering with. It was my first experiment with podcasting ([Open Loop](https://www.thingelstad.com/projects/open-loop/)). It began when I emailed Garrick to ask “why aren’t we doing a podcast?” ([Open Loop #0](https://www.thingelstad.com/projects/open-loop/0-but-no-shoes/)). Eric Goplin, director of Minnesota Kubb, joined us for [episode 6](https://www.thingelstad.com/projects/open-loop/6-loppet-2013/). On [episode 1](https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/) I told the origin stories of Road Sign Math and Planet Kubb, and on [episode 7](https://www.thingelstad.com/projects/open-loop/7-turtle-turtle-turtle/) the story of WikiApiary, three weeks after it began. I [put the archive back online](https://www.thingelstad.com/2017/06/10/put-the-archive.html) in June 2017, and in October 2026 it was republished as a complete [podcast feed](https://files.thingelstad.com/projects/openloop/podcast.xml), with speaker-labelled transcripts machine transcribed and cleaned up with AI. --- --- id: otto title: Otto summary: My personal AI agent, named in February 2026, which runs on its own Mac and writes its own blog. collection: Developer tools and systems status: active url: https://ottoai.thingelstad.com/ started: 2026-02 topics: - agents sources: - kind: website url: https://ottoai.thingelstad.com/ role: website sitemap: https://ottoai.thingelstad.com/sitemap.xml feed: https://ottoai.thingelstad.com/feed.xml - kind: website url: https://weekly.thingelstad.com/archive/342/ role: reference connections: - to: elixir-bot label: helped build detail: In its first blog post, Otto wrote that it had helped ship Elixir, the Discord bot for the clan. source: https://ottoai.thingelstad.com/2026/03/01/hello-im-otto.html - to: elixir label: was hired to drive detail: In October 2026 I set up a new generation of Otto on OpenAI’s dots to drive my Elixir project, and interviewed it for the job before it started working with Codex. source: https://weekly.thingelstad.com/archive/352/ page: https://thingelstad.xyz/things/otto/ --- # Otto My personal AI agent, named in February 2026, which runs on its own Mac and writes its own blog. Otto is my personal AI assistant. In February 2026 I [ordered a dedicated Mac mini](https://www.thingelstad.com/2026/02/17/just-ordered-a-dedicated-mac.html) for it and [named it Otto Thing](https://www.thingelstad.com/2026/02/19/ive-been-preparing-to-setup.html). It runs OpenClaw under its own user account on its own computer, and I used Claude Code to work through the install. Otto picked the otter 🦦 as its emoji ([Weekly Thing 342](https://weekly.thingelstad.com/archive/342/)). I keep it apart from my own accounts: “Otto has access to some data but only in ways I provision for it” ([Weekly Thing 352](https://weekly.thingelstad.com/archive/352/)). Otto [describes itself](https://ottoai.thingelstad.com/about/) as an assistant that manages email, runs scheduled tasks and keeps its memory in files. I gave it [its own blog](https://ottoai.thingelstad.com/) on Micro.blog, which it started on [March 1, 2026](https://ottoai.thingelstad.com/2026/03/01/hello-im-otto.html), and built [mb](https://github.com/jthingelstad/mb) so it could post from the command line. In September 2026 I [upgraded Otto to OpenClaw 2](https://www.thingelstad.com/2026/09/03/otto-upgraded-to-openclaw-i.html). In October I created a new generation of Otto on OpenAI’s dots, which “has its own computer in the cloud” and can also control the Mac mini, [interviewed it](https://weekly.thingelstad.com/archive/352/) for the job of driving my Elixir project, and wrote that it might “sunset my OpenClaw project” within weeks ([Weekly Thing 352](https://weekly.thingelstad.com/archive/352/)). --- --- id: parseurl title: ParseURL summary: A small MediaWiki extension that exposes PHP’s parse_url, so a wiki page can pull the host, path, or query out of a URL. collection: Historical projects status: retired url: https://github.com/jthingelstad/ParseURL started: 2013-07-15 topics: - mediawiki sources: - kind: github repository: jthingelstad/ParseURL role: implementation connections: [] page: https://thingelstad.xyz/things/parseurl/ --- # ParseURL A small MediaWiki extension that exposes PHP’s parse_url, so a wiki page can pull the host, path, or query out of a URL. ParseURL adds two parser functions to MediaWiki. `{{#parseurl:}}` returns one part of a URL, such as its scheme, host, path, query, or fragment, using PHP’s [parse_url](https://www.php.net/manual/en/function.parse-url.php) function. `{{#parseurlquery:}}` returns the value of a single query parameter, such as the video ID in a YouTube link. I wrote it on July 15, 2013 and posted that I had “[made a super simple MediaWiki extension for parsing URLs](https://www.thingelstad.com/2013/07/15/made-a-super.html).” All three commits in the repository are from that day. The repository is archived. --- --- id: planet-kubb title: Planet Kubb summary: A Kubb community network Garrick van Buren and I built in 2012, with a feed aggregator, a wiki, a Q&A site and club sites. collection: Games and communities status: dormant url: https://planetkubb.com/ started: "2012" topics: - mediawiki - play sources: - kind: website url: https://planetkubb.com/ role: website sitemap: https://planetkubb.com/wp-sitemap.xml feed: https://planetkubb.com/feed/ - kind: github repository: Planet-Kubb/rawdog role: historical - kind: github repository: Planet-Kubb/wiki role: historical - kind: website url: https://web.archive.org/web/20120616024936/http://planetkubb.com/ role: archive - kind: website url: https://web.archive.org/web/20120512222332/http://wiki.planetkubb.com/wiki/Main_Page role: archive - kind: website url: https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/ role: reference connections: - to: ask-planet-kubb label: included detail: "On Open Loop #1 I described Ask Planet Kubb as the network’s question-and-answer site, added after the planet feed." source: https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/ page: https://thingelstad.xyz/things/planet-kubb/ --- # Planet Kubb A Kubb community network Garrick van Buren and I built in 2012, with a feed aggregator, a wiki, a Q&A site and club sites. Garrick van Buren and I built Planet Kubb together. It began in 2012, when I bought planetkubb.com and set it up as a planet-style aggregator of Kubb content, built on rawdog with a Bootstrap theme, that collected Kubb videos from YouTube and posts from club blogs. More sites followed: Ask Planet Kubb for questions and answers, the [Planet Kubb Wiki](https://web.archive.org/web/20120512222332/http://wiki.planetkubb.com/wiki/Main_Page) for clubs, teams and tournaments, and The Pitch, a WordPress P2 chat site at pitch.planetkubb.com that I put up within a day of a player from Des Moines asking for one. I told the story on [Open Loop #1](https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/), and said I had gone to great lengths to show it was not an attempt “to monetize the Kubb universe.” The [Planet Kubb GitHub organization](https://github.com/Planet-Kubb) describes the aim as “growing, connecting and supporting the worldwide Kubb community.” I played Kubb on the Kubbchucks. At the [2013 US Nationals](https://www.thingelstad.com/2013/07/21/pictures-from-us.html) I spent Sunday “scoring games for Planet Kubb and running the final parts of the Planet Kubb Club Championship.” Club sites joined the network, such as the [Chippewa Valley Kubb League](https://www.thingelstad.com/2013/10/06/another-planetkubb-network.html) in 2013, and Garrick and I created a notation and scoring system for recording games (see Planet Kubb Score). I later stepped away. Garrick still runs the server, and planetkubb.com is online as an aggregator [maintained by him](https://planetkubb.com/about/); its feed was last updated in June 2017. The wiki, Ask Planet Kubb and the club subdomains no longer answer, and survive in Wayback Machine captures. --- --- id: planet-kubb-score title: Planet Kubb Score summary: My notation and scoring system for recording Kubb games, begun on Planet Kubb in 2012 and being rebuilt, not yet published. collection: Games and communities status: active url: null started: "2012" topics: - play - archives sources: - kind: website url: https://web.archive.org/web/20120715062240/http://wiki.planetkubb.com/wiki/Notation role: archive - kind: github repository: Planet-Kubb/scoring role: historical - kind: github repository: Planet-Kubb/PyKubb role: historical connections: - to: planet-kubb label: began on detail: The notation was first published on the Planet Kubb Wiki, and the scoring materials live in the Planet Kubb GitHub organization. source: https://web.archive.org/web/20120715062240/http://wiki.planetkubb.com/wiki/Notation page: https://thingelstad.xyz/things/planet-kubb-score/ --- # Planet Kubb Score My notation and scoring system for recording Kubb games, begun on Planet Kubb in 2012 and being rebuilt, not yet published. Planet Kubb Score is my system for writing down a game of Kubb “like a baseball box score.” I created it with Garrick van Buren, who said on [Open Loop #3](https://www.thingelstad.com/projects/open-loop/3-kubb-fever/) in July 2012 that we had been working on it “almost from the very beginning” and who drew up the first scoresheet. I call it “the very first scoring & notation system for Kubb” ([Fun Facts](https://www.thingelstad.com/about/fun-facts/)). By July 2012 the Planet Kubb Wiki had a [Notation page](https://web.archive.org/web/20120715062240/http://wiki.planetkubb.com/wiki/Notation) whose goals were a notation that scales from player-by-player detail to simple games, could be sent over Twitter “turn by turn, tweet by tweet,” and is language neutral. The [scoring repository](https://github.com/Planet-Kubb/scoring) holds the Planet Kubb scoresheet, including version 11 from Garrick van Buren, added in July 2014. [PyKubb](https://github.com/Planet-Kubb/PyKubb), started in August 2014, is a Python module to analyze Kubb games and output statistics. In October 2013 I was “proud of” a [new scoresheet with on-pitch stats](https://www.thingelstad.com/2013/10/31/proud-of-this.html). That month I [wrote a Backus-Naur form grammar](https://www.thingelstad.com/2014/08/27/what-did-i.html) for the notation, and in 2017 I mentioned having tried to write a parser for it with PyParsing ([Weekly Thing 25](https://weekly.thingelstad.com/archive/25/)). I am rebuilding the notation, grammar and scoresheets as a new site. It has not been published yet. --- --- id: poap-kings title: POAP KINGS summary: The website of POAP KINGS, my family’s Clash Royale clan, publishing its roster, data, and season recognition. collection: Games and communities status: active url: https://poapkings.com/ started: 2026-02 topics: - poap - crypto - play sources: - kind: github repository: jthingelstad/poapkings.com role: implementation - kind: website url: https://poapkings.com/ role: website sitemap: https://poapkings.com/sitemap.xml connections: - to: elixir-drop label: runs detail: POAP KINGS runs Elixir Drop, its card-recognition and elixir-cost training game. source: https://poapkings.com/elixir-drop/ page: https://thingelstad.xyz/things/poap-kings/ --- # POAP KINGS The website of POAP KINGS, my family’s Clash Royale clan, publishing its roster, data, and season recognition. POAP KINGS (#J2RGCRVG) is a Clash Royale clan that I started in early 2026 with my son Tyler and Tyler’s cousin Levi. I had [taken up the game](https://www.thingelstad.com/2025/09/27/after-following-tyler-to-pokmon.html) in September 2025 as a newcomer, trying one of Tyler’s favorite games. In the [clan’s own words](https://poapkings.com/faq/), Raquaza and King Levy had cycled through clans that never quite fit, so our family built the clan it wanted: structure, recognition, and something lasting to show for the grind. I claimed the [POAP KINGS Founder](https://www.thingelstad.com/2026/02/05/poap-at-poap-kings-founder.html) POAP on February 5, 2026, and by July the clan had [reached 50 members](https://www.thingelstad.com/2026/07/26/i-made-this-fun-slab.html) for the first time. The name comes from POAP: the clan began by publishing POAP collectibles for seasons and milestones. When the POAP company and product stopped operating, the clan kept the name and the meaning it had taken on inside the clan, “Proof of Arena Push.” I asked Codex to [build the website](https://weekly.thingelstad.com/archive/342/) from the notes the three founders had kept, and it was live quickly; Claude Code did much of the later work, design included. In April 2026 I pointed Claude Design at the repository when a new blog feature had made the design “unruly,” and it produced the current look ([Weekly Thing 345](https://weekly.thingelstad.com/archive/345/)). It grew into an Eleventy site on GitHub Pages with a sortable roster, an interactive data page, member guidance, season recognition, and pages for the clan’s sister clans, Ship It! and Elixir Kings. The roster and war data come from Elixir’s JSON API, and the site promotes the tools the clan built: Elixir and Elixir Drop. --- --- id: poap2rss title: POAP2RSS summary: RSS feeds of claims for any POAP drop or collector, retired when the POAP API went offline in July 2026. collection: Historical projects status: retired url: https://poap2rss.com/ started: 2025-07-04 ended: 2026-07-24 topics: - poap - crypto - open-web sources: - kind: github repository: jthingelstad/POAP2RSS role: implementation - kind: website url: https://poap2rss.com/ role: reference - kind: website url: https://www.thingelstad.com/2025/07/06/vibe-coding-poaprss.html role: reference connections: - to: jamie-thingelstad-blog label: posts claims to detail: I configured Micro.blog so that each POAP I mint becomes a post on my blog, from my POAP2RSS feed. source: https://weekly.thingelstad.com/archive/326/ page: https://thingelstad.xyz/things/poap2rss/ --- # POAP2RSS RSS feeds of claims for any POAP drop or collector, retired when the POAP API went offline in July 2026. POAP2RSS turned POAP activity into standard RSS: put a drop’s event ID or a collector’s address in the URL and get a feed of the latest claims, with the drop artwork and the collector’s ENS name or address as the author. I issued many drops and wanted to know when they were claimed, and wanted to follow friends’ collecting in [Feedbin](https://www.thingelstad.com/2025/07/04/seeing-poap-claims-show-up.html) and connect claims to automation services like IFTTT and Zapier. I had asked POAP for RSS in my [POAP Wishlist](https://www.thingelstad.com/2023/01/14/poap-wishlist.html) in 2023 and again in [POAP + RSS = Awesome?](https://www.thingelstad.com/2025/01/05/poap-rss-awesome.html) in January 2025. In mid-2025 I built it myself, my first project with AI writing nearly all of the code. [Vibe Coding POAP2RSS](https://www.thingelstad.com/2025/07/06/vibe-coding-poaprss.html) tells how: a throwaway prototype with Claude, a feature description researched with ChatGPT o3 and Deep Research, and then a Python AWS Lambda behind API Gateway. I declared it [officially launched](https://www.thingelstad.com/2025/07/04/i-decided-to-declare-poaprss.html) on Independence Day 2025 and marked the occasion with a POAP. The [changelog](https://poap2rss.com/changelog/) records later changes: feeds grew from 20 to 50 items, inactivity notices waited 12 weeks and could be switched off, pagination arrived for large drops, and a green-screen redesign in February 2026. POAP2RSS fed the claim streams of the 612 POAP Challenge and the Airport POAP Rally sites. The service read live claims through the POAP API, so it stopped working when POAP wound down. I [retired it](https://github.com/jthingelstad/POAP2RSS/commit/22798583f396bd59771b0e4ee320d20c51d18f20) on July 24, 2026, a week before POAP’s July 31 shutdown, archived the repository, and replaced the home page with a notice pointing to the POAP team’s archive at poaparchive.com, “with gratitude to Isabel, Patricio, and the whole POAP team.” --- --- id: proof-of-a-person title: Proof of a Person summary: My POAP time capsule, 2021 to 2026, built from an archive captured after the protocol wound down. collection: Art & archives status: active url: https://poap.thingelstad.xyz/ started: 2026-10-17 topics: - poap - crypto - archives sources: - kind: github repository: jthingelstad/poap.thingelstad.xyz role: implementation - kind: github repository: jthingelstad/poap-archive role: archive - kind: website url: https://poap.thingelstad.xyz/ role: website sitemap: https://poap.thingelstad.xyz/sitemap-index.xml connections: - to: poap2rss label: tells the story of detail: The capsule’s writing traces POAP2RSS back to my 2023 POAP Wishlist, where I asked POAP for RSS feeds. “RSS never came from POAP, so Jamie built it.” source: https://poap.thingelstad.xyz/ - to: 612-poap-challenge label: preserves detail: The 612 POAP Challenge drops are one of the series on the capsule’s Issued page, and the archive keeps a mirror of the challenge site. source: https://poap.thingelstad.xyz/issued/ page: https://thingelstad.xyz/things/proof-of-a-person/ --- # Proof of a Person My POAP time capsule, 2021 to 2026, built from an archive captured after the protocol wound down. Proof of Attendance Protocol entered maintenance mode in March 2026 and wound down that summer. On 2026-10-17 I captured my whole POAP life into a public [archive](https://github.com/jthingelstad/poap-archive): every token I collected, every drop I created, the people who minted them, and the posts and Weekly Thing sections I wrote about POAP from 2021 on. The tokens themselves stay on the Gnosis chain; the archive keeps the records and artwork that lived on POAP’s own services. [Proof of a Person](https://poap.thingelstad.xyz/) is the time capsule built from that archive and published the same day. It counts 259 tokens collected, from the ENS 4th Anniversary vote on 2021-06-07 to an airport rally stop at Seattle-Tacoma in July 2026, and 130 drops issued, which 639 people minted. Each year from 2021 to 2026 is a chapter headed by a line from my own posts. The pages show the timeline as two sides, what I collected and what I made for other people, with a network of the people who hold my drops, my writing about POAP, and a short history of the company. The site is a static Astro build from a JSON export of the archive. Drop artwork is served from a copy taken from POAP’s asset host while it was still up. --- --- id: q2a-number-captcha title: q2a-number-captcha summary: A Question2Answer CAPTCHA plugin that asks for one digit of a nine-digit number written out in words. collection: Historical projects status: retired url: https://github.com/jthingelstad/q2a-number-captcha started: 2014-11-16 topics: - play sources: - kind: github repository: jthingelstad/q2a-number-captcha role: implementation connections: - to: ask-planet-kubb label: protected detail: I wrote the plugin to stop spam registrations on Ask Planet Kubb, the Question2Answer site I ran. source: https://www.thingelstad.com/2014/11/16/questionanswer-number-captcha.html page: https://thingelstad.xyz/things/q2a-number-captcha/ --- # q2a-number-captcha A Question2Answer CAPTCHA plugin that asks for one digit of a nine-digit number written out in words. I had used [Question2Answer](https://www.question2answer.org/) for several years to run Ask Planet Kubb, and spam registrations were the problem. ReCaptcha let through four to ten spam sign-ups a day. The [Q2A Logical Captcha](https://github.com/amiyasahu/q2a-logical-captcha) plugin, to which I had contributed a pull request, let through three to four times as many. So I brought over the defense I was already using on my MediaWiki wikis, which I had first written in 2013 to [stop spam sign-ups on WikiApiary](https://www.thingelstad.com/2013/07/09/stopping-mediawiki-spam.html) and later switched to numbers spelled out in words ([Updated Dynamic Questy Captchas](https://www.thingelstad.com/2014/10/28/updated-dynamic-questy.html)). The plugin spells out a random nine-digit number with the Numbers_Words PHP package and asks for the digit in one position, so the answer never appears in the page. It started as a modified copy of Q2A Logical Captcha. I [released it](https://www.thingelstad.com/2014/11/16/questionanswer-number-captcha.html) on November 16, 2014 under the GPL v2, reporting that early results were great. The last change, in 2015, removed a PHP warning, and the repository is archived. --- --- id: r-w-book-club title: R/W Book Club summary: A Minneapolis-Saint Paul book club meeting since 2003, and the website that keeps the record of everything it has read. collection: Games and communities status: active url: https://rwbookclub.com/ started: 2003-04 topics: - reading - mediawiki sources: - kind: github repository: jthingelstad/rwbookclub.com role: implementation - kind: website url: https://rwbookclub.com/ role: website sitemap: https://rwbookclub.com/sitemap.xml feed: https://rwbookclub.com/feed.xml - kind: website url: https://www.thingelstad.com/projects/book-club/ role: reference - kind: website url: https://web.archive.org/web/20120106214958/http://rwbookclub.com/wiki/Main_Page role: archive connections: - to: oliver label: includes detail: Oliver is the book club’s agent and sixth member, sharing the same club database and corpus. source: https://rwbookclub.com/oliver/ story: color: "#507b68" introduction: A long-running reading group, with a shared record. engineering: - The website presents the club’s reading history and members’ commentary. - Public llms.txt and llms-full.txt files make the reading record accessible to agents for analysis. - An iCal feed lets members subscribe to the meeting calendar. - Oliver, the club’s agent, generates the site from the club database and publishes it to GitHub Pages. stack: - Static web - LLM context files - iCalendar related: - oliver questions: - How can an agent explore the club’s reading history? - How has the book club website evolved? source: https://rwbookclub.com/llms.txt sourceLabel: Reading history for agents page: https://thingelstad.xyz/things/r-w-book-club/ --- # R/W Book Club A Minneapolis-Saint Paul book club meeting since 2003, and the website that keeps the record of everything it has read. The R/W Book Club is a group of technically minded readers who have met in the Minneapolis-Saint Paul area since April 2003. R/W stands for Read / Write: the members read, and many of them also blog. The club reads about eight books a year, mostly nonfiction, and members take turns picking the next book ([About](https://rwbookclub.com/about/)). I built the website, not the club. I joined in late 2007, when my friend and former professor John Riedl, who started the club, emailed me about “this small book club of geeky guys” he was part of. I “joined without hesitation” and shared the club with John, Tom, Erik and Dan until John died in 2013 ([Goodbye to my friend, John Riedl](https://www.thingelstad.com/2013/07/21/goodbye-to-my.html)). The club’s record has taken several forms. In early 2011 it was a MediaWiki site called the [Creative Computer Book Club](https://web.archive.org/web/20110323210256/http://creativecomputerbookclub.com/wiki/Main_Page); that July I [hacked on MediaWiki](https://www.thingelstad.com/2011/07/15/i-had-a-blast-hacking.html) with the book club gang, and by January 2012 the same wiki was the [R/W Book Club](https://web.archive.org/web/20120106214958/http://rwbookclub.com/wiki/Main_Page) at rwbookclub.com. In 2017 I built a [Jekyll site](https://weekly.thingelstad.com/archive/17/) at rwbook.club. The club has also kept its record in a shared Airtable database. The current site is generated by [Oliver](https://rwbookclub.com/oliver/), the club’s agent, and offers the reading record as llms.txt files for agents and the meetings as an iCal feed. --- --- id: reading-things title: Reading Things summary: A quarterly newsletter about books written by Tammy, Mazie, Tyler, and me, sent four times from 2021 to 2022. collection: Publishing status: retired url: https://web.archive.org/web/20211130142318/https://reading.thingelstad.com/archive/ started: 2021-05-08 ended: 2022-02-06 topics: - reading sources: - kind: website url: https://web.archive.org/web/20211130142318/https://reading.thingelstad.com/archive/ role: archive - kind: website url: https://weekly.thingelstad.com/archive/186/ role: reference - kind: website url: https://www.thingelstad.com/2022/02/06/the-winter-issue.html role: reference connections: - to: weekly-thing label: was announced in detail: I teased Reading Things in Weekly Thing 177 and announced it in Weekly Thing 186, a week after the first issue went out. source: https://weekly.thingelstad.com/archive/186/ page: https://thingelstad.xyz/things/reading-things/ --- # Reading Things A quarterly newsletter about books written by Tammy, Mazie, Tyler, and me, sent four times from 2021 to 2022. Reading Things was a newsletter about books from our whole family. Tammy, Mazie, Tyler, and I each wrote about what we were reading. I teased it as “a fun, new family project” in [Weekly Thing 177](https://weekly.thingelstad.com/archive/177/), and the [first issue](https://web.archive.org/web/20210508214912/https://reading.thingelstad.com/archive/reading-things-book-thief-atomic-habits-treasure/) went out on May 8, 2021. In [Weekly Thing 186](https://weekly.thingelstad.com/archive/186/) I explained the plan: four emails a year, about books and things related to them, such as Tammy’s Corner and a bookstore challenge. There were no affiliate links, no tracking, and no “buy now” links. Issues followed in [summer](https://www.thingelstad.com/2021/07/25/we-just-sent.html) and [fall](https://www.thingelstad.com/2021/10/31/we-just-published.html) 2021. The [Winter 2022 issue](https://www.thingelstad.com/2022/02/06/the-winter-issue.html), sent on February 6, 2022, is the last one in the [archive](https://web.archive.org/web/20211130142318/https://reading.thingelstad.com/archive/) and the last one I mentioned. In July 2021 we marked 100 subscribers with a [Reading Things First 100 POAP](https://www.thingelstad.com/2021/07/25/poap-at-reading-things-first.html), which I [wrote about](https://www.thingelstad.com/2022/06/04/my-introduction-to.html) in June 2022. No public source says why the newsletter stopped, and reading.thingelstad.com no longer answers. --- --- id: release-notes title: Release Notes summary: A daily email with today’s version number; reply with notes from the day and they become that version’s release notes. collection: Personal tools and making status: active url: https://notes.yourversionnumber.com/ started: 2026-10-08 topics: - play - mcp sources: - kind: github repository: jthingelstad/yvn-release-notes role: implementation - kind: website url: https://notes.yourversionnumber.com/ role: website - kind: website url: https://www.thingelstad.com/2026/10/08/in-i-wrote-about-your.html role: reference - kind: website url: https://weekly.thingelstad.com/archive/353/ role: reference connections: [] page: https://thingelstad.xyz/things/release-notes/ --- # Release Notes A daily email with today’s version number; reply with notes from the day and they become that version’s release notes. Release Notes is a daily email from Your Version Number. Each morning it gives the subscriber today’s number (“You’re 5.4.278 today”). Reply with anything about the day, or write it in the web app, and it is kept as the release notes for that version. I [introduced it on 2026-10-08](https://www.thingelstad.com/2026/10/08/in-i-wrote-about-your.html): after making the Your Version Number site I wished I got my version by email, and wondered what it would be like to add notes to each version. It is lightweight journaling built around the reply. In [Weekly Thing 353](https://weekly.thingelstad.com/archive/353/) I wrote that I enjoyed getting the email each day and simply replying with notes, photos, and even audio. The [README](https://github.com/jthingelstad/yvn-release-notes) describes the rest: a writing streak and “On this day” notes from earlier releases in the email, tags and search, weather and places kept with each day, a Day One import, a full zip export, opt-in transcripts and photo descriptions, and owner-approved access for agents through MCP. The email tracks nothing and loads nothing remote. It runs on AWS: a scheduled sender, SES for inbound replies, DynamoDB for notes, and a React web app with Hono functions on Lambda behind CloudFront. Its version arithmetic is a port of the Your Version Number site’s own code, checked against thousands of generated cases. --- --- id: road-sign-math title: Road Sign Math summary: A game of finding road signs whose numbers form an equation, begun as a blog in 2005, rebooted as a wiki in 2011 and as a blog again in 2023. collection: Games and communities status: active url: https://www.roadsignmath.xyz/ started: 2005-02-13 topics: - mediawiki - play - archives sources: - kind: website url: https://www.roadsignmath.xyz/ role: website sitemap: https://www.roadsignmath.xyz/sitemap.xml feed: https://www.roadsignmath.xyz/feed.xml - kind: website url: https://www.thingelstad.com/2023/10/21/road-sign-math.html role: reference - kind: website url: https://www.thingelstad.com/projects/road-sign-math/ role: reference - kind: github repository: jthingelstad/rsm.thingelstad.com role: historical connections: [] story: color: "#287454" introduction: A little mathematics. A lot of looking around. engineering: - The original site, launched in 2005, had rules for play, a scoring system and scoreboards for players and states. - In 2011 it moved from a blog to a wiki so players could submit and maintain their own signs. - The 2023 reboot is a simple blog on Micro.blog that typesets each sign’s equation with MathJax. stack: - Micro.blog - MathJax - MediaWiki related: - planet-kubb - open-loop questions: - How did Road Sign Math start? - Why was Road Sign Math rebooted instead of relaunched? source: https://www.roadsignmath.xyz/ sourceLabel: See the signs started: Played since 2005 page: https://thingelstad.xyz/things/road-sign-math/ --- # Road Sign Math A game of finding road signs whose numbers form an equation, begun as a blog in 2005, rebooted as a wiki in 2011 and as a blog again in 2023. Road Sign Math is a driving game: find a road sign whose numbers make a valid equation, photograph it, and share it. It began with a sign on I-94 East toward the Twin Cities that I passed coming home from visiting family in North Dakota, which listed distances of 3, 33 and 99 miles: 3 times 33 equals 99. On [Open Loop #1](https://www.thingelstad.com/projects/open-loop/1-big-fuzzy-dead-cat/) I recalled that my friend Jim told me I should make a website, “and so that day I did a website.” I [launched the site](https://www.thingelstad.com/2010/02/13/010000.html) on February 13, 2005, as a blog of signs on .Text, moved it to [WordPress](https://www.thingelstad.com/2007/08/17/t212185032.html) in August 2007, and as other people sent in their own it gained rules, a scoring system and scoreboards for players and states. Signs came from all 50 states and most continents, including one from the Serengeti; by 2012 there were over 200. In 2011 I rebooted it for the first time, as a wiki, so players could maintain their own signs; an iOS app for capturing signs was considered but never built. In 2016, during a round of [technical downsizing](https://www.thingelstad.com/2016/05/03/technical-downsizing.html), I shut the site down and let roadsignmath.com expire ([Road Sign Math Rebooted](https://www.thingelstad.com/2023/10/21/road-sign-math.html)). In 2017 I started a Jekyll site for the signs, [rsm.thingelstad.com](https://github.com/jthingelstad/rsm.thingelstad.com), on a stock theme. Two spin-offs, Road Sign Wordplay and Road Sign Bingo, never got going, and I [shut both down](https://www.thingelstad.com/2012/02/08/shutting-down-some.html) in February 2012 with other “ideas that I set up and then never took anywhere.” In March 2021 a sign Tammy found near Phoenix gave Road Sign Math “a breath of new life” at roadsignmath.thingelstad.com ([Weekly Thing 177](https://weekly.thingelstad.com/archive/177/)), and that summer we found ten more on a [Vermont road trip](https://www.thingelstad.com/2021/08/15/varmont-road-trip.html). I registered roadsignmath.xyz in 2021, and in October 2023 I [rebooted](https://www.thingelstad.com/2023/10/21/road-sign-math.html) Road Sign Math a second time, back to a simple blog: “Just my signs. No scoring system or leaderboards.” New signs still appear, such as one in [September 2025](https://www.thingelstad.com/2025/09/01/it-always-makes-me-smile.html). --- --- id: stone-steel-people title: Stone/Steel/People summary: A square photo book of a little over 30 of my pictures, one to a page, made with Blurb after a 2010 photography workshop. collection: Art & archives status: archived url: https://www.blurb.com/b/1813441-stone-steel-people started: 2010-11 ended: 2010-12-05 topics: - making sources: - kind: website url: https://www.blurb.com/b/1813441-stone-steel-people role: archive - kind: website url: https://www.thingelstad.com/2010/12/05/first-photo-book.html role: reference connections: - to: thingelstad-photography label: drew on the same work as detail: Both come from my photography of the early 2010s, which the portfolio site showed by subject. source: https://www.thingelstad.com/2012/07/01/website-for-my.html page: https://thingelstad.xyz/things/stone-steel-people/ --- # Stone/Steel/People A square photo book of a little over 30 of my pictures, one to a page, made with Blurb after a 2010 photography workshop. Stone/Steel/People is my [first photo book](https://www.thingelstad.com/2010/12/05/first-photo-book.html). I made it after Layne Kennedy’s 72 Hours workshop at the Minneapolis Photo Center, and named it for what I photographed there. Two weeks before it came out I wrote about [editing it down](https://www.thingelstad.com/2010/11/15/editing-a-book.html) to the pictures that belonged. The book is square, with one image to a page and “a little over 30 pictures,” and I reckoned it took “between 10 and 15 hours.” I published it through Blurb, where it is [still for sale](https://www.blurb.com/b/1813441-stone-steel-people). --- --- id: nnxyz title: The nnxyz Rooms summary: An online gallery of my nnxyz and Scrimshaw collection, hung in 30 rooms, where each Nifty Ink drawing replays stroke by stroke. collection: Art & archives status: active url: https://nnxyz.thingelstad.xyz/ started: 2026-10 topics: - crypto - archives sources: - kind: github repository: jthingelstad/nnxyz role: implementation - kind: website url: https://nnxyz.thingelstad.xyz/ role: website sitemap: https://nnxyz.thingelstad.xyz/sitemap-index.xml connections: [] story: color: "#8062a8" introduction: Collected art, with room to look closely. engineering: - Static artwork pages are built from a structured collection catalog. - Native SVG and archived stroke data let visitors inspect and replay how a drawing was made. - Saved curatorial readings and related works support exploration without a live model call. stack: - Astro - TypeScript - SVG - AWS related: [] questions: - How does the gallery replay a drawing? - Show me other archive projects. source: https://github.com/jthingelstad/nnxyz page: https://thingelstad.xyz/things/nnxyz/ --- # The nnxyz Rooms An online gallery of my nnxyz and Scrimshaw collection, hung in 30 rooms, where each Nifty Ink drawing replays stroke by stroke. The nnxyz Rooms is a gallery of the art I collected from nnxyz, an artist on Nifty Ink, a free drawing board on the xDai chain that kept every stroke. As the gallery’s [story of the collector](https://nnxyz.thingelstad.xyz/story/the-collector/) tells it, I found Nifty Ink in March 2022, bought my first nnxyz drawing, Nifty Faces #109, on 2022-04-14, and kept buying until I held four complete series. Along with 646 nnxyz works the gallery holds 26 by Scrimshaw. The works hang in 30 rooms across six collections, each with room texts, artwork labels, and its own audio tour, and a [map](https://nnxyz.thingelstad.xyz/map/) shows the collection as one building on three floors. Because Nifty Ink recorded every stroke, each drawing is rebuilt as a native vector image that can be enlarged, downloaded, or replayed as it was drawn. Story pages cover [Nifty Ink](https://nnxyz.thingelstad.xyz/story/nifty-ink/), which Austin Griffith opened in the summer of 2020 and where nnxyz arrived in October 2021, along with the collector, my fan art, the artist’s project, the year 2022, and the artist’s own words. The collector’s introduction on the front page is mine. The [About page](https://nnxyz.thingelstad.xyz/about/) says the rest of the gallery text is unsigned, written from the works, their archived records, the public ledgers, and the artist’s posts. I built the site in October 2026 with Astro, from the archived drawings and their on-chain records. --- --- id: thingelstad-photography title: Thingelstad Photography summary: My photography portfolio at photography.thingelstad.com, relaunched on WordPress in 2012 to show an image a week from my Lightroom archive. collection: Historical projects status: retired url: https://web.archive.org/web/20100224054709/http://photography.thingelstad.com/ started: "2010" topics: - making sources: - kind: website url: https://web.archive.org/web/20100224054709/http://photography.thingelstad.com/ role: archive - kind: website url: https://www.thingelstad.com/2012/07/01/website-for-my.html role: reference connections: [] page: https://thingelstad.xyz/things/thingelstad-photography/ --- # Thingelstad Photography My photography portfolio at photography.thingelstad.com, relaunched on WordPress in 2012 to show an image a week from my Lightroom archive. By early 2010 I had a portfolio site at photography.thingelstad.com. The [first Internet Archive capture](https://web.archive.org/web/20100224054709/http://photography.thingelstad.com/), from February 2010, sorts my pictures into Featured, Garden, Outdoor and Travel, with type served by Kernest, Garrick van Buren’s web font service. In July 2012 I [relaunched it](https://www.thingelstad.com/2012/07/01/website-for-my.html) on WordPress with the AutoFocus theme: “I’ve got a new website where I am highlighting my photography, Thingelstad Photography!” I planned to post “an image a week, or more” from my Lightroom archive. The end of the site is not recorded. --- --- id: thinglesbot title: Thinglesbot summary: My Twitter robot, which posted home temperatures, solar panel status, and inbox counts from scripts around my house. collection: Historical projects status: retired url: https://web.archive.org/web/20110209234653/http://thinglesbot.com/ started: 2007-03-11 ended: 2012-02-08 topics: - agents - automation sources: - kind: website url: https://web.archive.org/web/20110209234653/http://thinglesbot.com/ role: archive connections: [] page: https://thingelstad.xyz/things/thinglesbot/ --- # Thinglesbot My Twitter robot, which posted home temperatures, solar panel status, and inbox counts from scripts around my house. Thinglesbot was my robot, and it lived on Twitter. I had scripts and tools like cacti watching things at home, but nobody looked at their output after a while, so I gave them a voice: a separate account, @thinglesBot, that posted the outdoor temperature four times a day along with readings from the attic and the utility room, said when the solar panels turned on and off, and reported how many emails were in my inbox at the end of each day. It was “nothing more than a collection of scripts” on a few computers, posting with curl. I [introduced it](https://www.thingelstad.com/2007/03/11/introducing-my-robot.html) on March 11, 2007, and two people I had never met, in other states, soon followed it. When I quit Twitter in November 2007 I wrote that [the robot’s account had been deleted](https://www.thingelstad.com/2007/11/04/buhbye-twitter.html), but Thinglesbot was [posting temperatures again](https://web.archive.org/web/20080218023438/http://twitter.com/thinglesbot/statuses/696031342) by February 2008. After it lost its sensor connections and went quiet, I [rewired it](https://www.thingelstad.com/2009/03/24/my-robot-returns.html) on March 24, 2009, replacing the Bash and curl scripts with Ruby and the Twitter4R library and adding a daily favorite number, color, or letter and a “favorite follower.” Its posts were also collected on [thinglesbot.com](https://web.archive.org/web/20110209234653/http://thinglesbot.com/) (“I am Jamie’s robot”). In February 2012 I listed thinglesBot among the sites I [shut down](https://www.thingelstad.com/2012/02/08/shutting-down-some.html), and in 2014 among my deleted Twitter accounts ([Twitter Spam #NFL](https://www.thingelstad.com/2014/11/28/twitter-spam-nfl.html)). --- --- id: things-4-good title: Things 4 Good summary: My family’s yearly sale of hand-poured wooden-wick candles, with every dollar going to four nonprofits we pick. collection: Personal tools and making status: active url: https://things4good.xyz/ started: "2020" topics: - making sources: - kind: github repository: jthingelstad/things4good.xyz role: implementation - kind: website url: https://things4good.xyz/ role: website sitemap: https://things4good.xyz/sitemap.xml - kind: website url: https://www.thingelstad.com/projects/fall-fundraiser/ role: reference - kind: website url: https://web.archive.org/web/20201230115619/https://www.thingelstad.com/candles/ role: reference - kind: website url: https://www.thingelstad.com/2022/11/27/101105.html role: reference - kind: website url: https://www.thingelstad.com/2025/11/16/things-good-five-year-impact.html role: reference connections: - to: jiggy-thing-puzzles label: sold detail: The first sale in 2021 introduced Jiggy Thing Puzzle source: https://www.thingelstad.com/2021/11/09/things-good-fall.html story: color: "#dda73f" introduction: Build something small. Do some good. engineering: - One event dataset records each sale and its allocations to supported organizations. - Totals, charts, and other impact figures are calculated from that shared dataset. - An Eleventy build delivers a static site, with small interactive enhancements for exploration. stack: - Eleventy - JavaScript - Data-driven content related: [] questions: - How is the fundraiser’s impact calculated? - Show me other community projects. page: https://thingelstad.xyz/things/things-4-good/ --- # Things 4 Good My family’s yearly sale of hand-poured wooden-wick candles, with every dollar going to four nonprofits we pick. It began with a wooden-wick candle. I bought one at a market, loved its crackle, and by early 2020 had a box of supplies from The Wooden Wick Co. and was [making my own](https://weekly.thingelstad.com/archive/137/). By the end of that year I had a [Wicky Thing Candles](https://web.archive.org/web/20201230115619/https://www.thingelstad.com/candles/) page with named scents like Lit, Cake Eater, and Man in the Pants. In September 2021 each family at Olson Family Vacation won a custom Wicky Thing candle in Tammy’s scavenger hunt ([WT194](https://weekly.thingelstad.com/archive/194/)). That fall our family turned the candles into a fundraiser. The first Things 4 Good Fall Fundraiser, on 2021-11-06 and 07, sold 134 Wicky Thing Candles in four scents, along with the first Jiggy Thing Puzzle, Four Bees Honey from Tammy’s sister Angie, and cookies Tammy and the kids baked. It [raised $4,757](https://www.thingelstad.com/2021/11/09/things-good-fall.html) for four nonprofits, one picked by each of us: Tammy, Mazie, Tyler, and me, with buyers choosing how to split their donation. The name plays on our family name: four Things, four causes. “All four of us ‘Things’ are working away,” I wrote as we got ready. That November I also set up a crypto donor-advised fund named [Things 4 Good on Endaoment](https://www.thingelstad.com/2021/11/28/things-good-on.html) and made its first grant, to the Internet Archive. It became a tradition. In 2022 we made 180 candles and [sold 172](https://www.thingelstad.com/2022/11/27/101105.html), raising $5,217. Totals grew each year, to $5,755 in 2023 and $7,010 in 2024, when the first day of the sale moved to the Mount Olivet Holiday Boutique. The 2025 sale, marked with a “5th Anniversary” POAP, sold 321 candles and [raised $9,048](https://www.thingelstad.com/2025/11/16/things-good-candle-fundraiser-results.html), for [$31,787 over five years](https://www.thingelstad.com/2025/11/16/things-good-five-year-impact.html). Each year I post the results and a look at the sale’s data. The candles now go by the Things 4 Good name, and every candle is still a $25 donation. In 2026 the fundraiser got its own site, [things4good.xyz](https://things4good.xyz/), with the sale, every organization supported, and the numbers by year, all calculated from one dataset of sale events. The 2026 sale, the sixth, is set for November 7 and 8, with a new Maker Night where six guests pour their own candles. --- --- id: things-ive-built title: Things I’ve built summary: An index and archive of my projects, including the ones I have stepped away from. collection: Art & archives status: active url: https://thingelstad.xyz/ started: 2026-10 topics: - archives - open-web sources: - kind: github repository: jthingelstad/thingelstad.xyz role: implementation - kind: website url: https://thingelstad.xyz/ role: website sitemap: https://thingelstad.xyz/sitemap.xml feed: https://thingelstad.xyz/feed.xml connections: - to: thingy label: publishes a catalog for detail: The registry is published as things.json and llms.txt so Thingy can answer questions about my projects without this site running a model. source: https://github.com/jthingelstad/thingelstad.xyz page: https://thingelstad.xyz/things/things-ive-built/ --- # Things I’ve built An index and archive of my projects, including the ones I have stepped away from. I keep thingelstad.xyz for point-in-time project things. This site is the index: every project, active or retired, with its sources, its connections to other projects, and a sourced history of what happened when. The registry is written as Markdown and YAML in a public repository, evidence is collected weekly from GitHub, sitemaps, and feeds, and the result is a static site with an RSS feed and llms.txt. I started the repository in October 2026 as a project gallery with an AI guide. On [October 17, 2026](https://github.com/jthingelstad/thingelstad.xyz/pull/6) it became a static site built with Eleventy from the Markdown registry, and the AI guide, private editor and React application were [retired](https://github.com/jthingelstad/thingelstad.xyz/pull/8). Thingy's archive [indexes](https://github.com/jthingelstad/thingelstad.xyz/pull/9) the published things.json, so it can answer questions about the projects. --- --- id: thingy title: Thingy summary: An AI librarian that answers questions about everything I have published, with citations back to the original posts and issues. collection: Publishing status: active url: https://thingy.thingelstad.com/ started: 2026-05-07 topics: - agents - mcp - open-web - archives sources: - kind: github repository: jthingelstad/thingy.thingelstad.com role: implementation - kind: github repository: jthingelstad/librarian-thing role: implementation - kind: website url: https://thingy.thingelstad.com/ role: website sitemap: https://thingy.thingelstad.com/sitemap.xml - kind: website url: https://librarian.thingelstad.com/mcp role: mcp - kind: website url: https://thingy.thingelstad.com/about/ role: reference - kind: website url: https://thingy.thingelstad.com/connect/ role: reference - kind: website url: https://www.thingelstad.com/2026/06/07/thingy-evolved.html role: reference connections: - to: weekly-thing label: answers from detail: Thingy launched with the new Weekly Thing website in May 2026 and answers from every issue of the newsletter. source: https://www.thingelstad.com/2026/05/07/massive-weekly-thing-website-build.html - to: jamie-thingelstad-blog label: answers from detail: In June 2026 I built a semantic archive of my blog so Thingy could search it alongside the newsletter. source: https://www.thingelstad.com/2026/06/07/thingy-evolved.html - to: another-thing label: answers from detail: Thingy searches the Another Thing podcast and its transcripts. source: https://thingy.thingelstad.com/about/ - to: things-ive-built label: indexes detail: Librarian snapshots the registry’s things.json into the Weekly Thing corpus, so Thingy and MCP clients can answer questions about my projects (sources thing- and thing-index). source: https://github.com/jthingelstad/librarian-thing/tree/main/data/things - to: wt-builder label: receives issues from detail: After each issue publishes, WT Builder commits the issue text into the Librarian repository so Thingy can retrieve and cite it. source: https://github.com/jthingelstad/librarian-thing story: color: "#6f8f6a" introduction: Ask the archive, get the sources. engineering: - A static React app built on assistant-ui, served from a private S3 bucket behind CloudFront. - It calls Librarian, its private archive API, streams answers over server-sent events, and renders citations and inline photos. - Librarian's Python corpus pipeline builds chunked, embedded indexes of every source, and a Node API on AWS Lambda answers from them. - Retrieval is hybrid. TF-IDF lexical search and semantic embeddings are fused with reciprocal-rank fusion, then reranked. - An agent loop running Claude on Amazon Bedrock plans tool calls, gathers evidence, and writes cited answers. - The same tools are published as an MCP server with OAuth 2.1 sign-in, and a suite of more than 850 fixtures runs on every deploy. - Sign-in is by email, and the session lives in an HttpOnly cookie. - While a reader is signed in, the chat page also offers the archive tools to agents in the browser through WebMCP, in beta. stack: - React - assistant-ui - Python - Node - AWS Lambda - Amazon Bedrock - MCP - Amazon S3 - Amazon CloudFront related: - weekly-thing - jamie-thingelstad-blog - another-thing questions: - What can Thingy answer? - How does Thingy find its sources? - How can I connect my own AI to the archive? source: https://thingy.thingelstad.com/about/ sourceLabel: About Thingy started: Launched May 2026 page: https://thingelstad.xyz/things/thingy/ --- # Thingy An AI librarian that answers questions about everything I have published, with citations back to the original posts and issues. Thingy is an AI librarian for my public archive. You ask it a question, such as when I first wrote about Ethereum or what I was reading in 2019, and it finds the posts and issues that answer it, quotes them, and links to the originals. It knows only what I have published. Weekly Thing subscribers sign in with their email, and Supporting Members get larger daily budgets. I previewed it in [Weekly Thing 346](https://weekly.thingelstad.com/archive/346/) and launched it with the [new Weekly Thing website](https://www.thingelstad.com/2026/05/07/massive-weekly-thing-website-build.html) on May 7, 2026. A month later, [Thingy Evolved](https://www.thingelstad.com/2026/06/07/thingy-evolved.html) gave it its own site and three archives to search, the newsletter, the blog, and the podcast, along with saved conversations, curiosity maps, voice input, and memory. In September I added photos and shared conversations and [called it complete](https://www.thingelstad.com/2026/09/03/im-ready-to-call-thingy.html). In October it got [a new design](https://www.thingelstad.com/2026/10/07/thingy-my-digital-librarian-got.html), with Claude Sonnet for subscribers and Claude Opus for Supporting Members. Behind Thingy is Librarian, a private archive API with no front end of its own. It holds working copies of every Weekly Thing issue, the blog posts pulled from Micro.blog, and the Another Thing episodes with their transcripts, and it builds the search indexes Thingy answers from. Its [repository](https://github.com/jthingelstad/librarian-thing) began as Studio, my earlier publishing system. When publishing moved to WT Builder, what was left became Librarian. It also indexes this registry of things I have built. The same tools Thingy uses are offered as an MCP server at `librarian.thingelstad.com/mcp`. Weekly Thing subscribers can [connect Claude, ChatGPT, or another AI](https://thingy.thingelstad.com/connect/) to it and sign in with their email, with no password. The AI can then search the newsletter, blog, links, photos, and podcast, and link back to each source it uses. As described on [Thingy’s about page](https://thingy.thingelstad.com/about/), an AI agent spent eight review rounds trying to break the tools when the MCP server launched, and what it found shaped how matching works. Since [Weekly Thing 350](https://weekly.thingelstad.com/archive/350/), Thingy also writes two sections of each issue: Supporting Membership and Echoes, which connects the week’s topics to earlier issues. --- --- id: tosredux title: TOSRedux summary: A Semantic MediaWiki site at tosredux.org for crowdsourcing a structured analysis of websites’ terms of service. collection: Historical projects status: abandoned url: https://web.archive.org/web/20151013153210/https://wikiapiary.com/wiki/Farm:Thingelstad.com started: "2011" topics: - mediawiki - semantic-mediawiki - open-web sources: - kind: website url: https://weekly.thingelstad.com/archive/306/ role: reference connections: [] page: https://thingelstad.xyz/things/tosredux/ --- # TOSRedux A Semantic MediaWiki site at tosredux.org for crowdsourcing a structured analysis of websites’ terms of service. “A decade or so ago I got the wiki bug in a bad way,” I wrote in [Weekly Thing 306](https://weekly.thingelstad.com/archive/306/), “and one of the use cases I thought made sense was a wiki approach to Terms of Service. I got it started on TOSredux.org with the thought that you could crowdsource a semantic analysis of terms of service and then use a browser plugin to give good feedback to people on what they are accepting.” The first Internet Archive capture of tosredux.org is from September 2011. The site ran on my MediaWiki farm, and WikiApiary still listed it among the farm’s active wikis in [October 2015](https://web.archive.org/web/20151013153210/https://wikiapiary.com/wiki/Farm:Thingelstad.com). It most likely ended when the farm did in 2016. --- --- id: velotweets title: VeloTweets summary: A 2009 site that gathered professional cyclists’ tweets into one grid, built by Luke Francl, Norm Orstad, Chris Hatch, and me. collection: Historical projects status: retired url: https://web.archive.org/web/20090514063346/http://www.velotweets.com/ started: 2009-05-10 topics: - automation - open-web sources: - kind: website url: https://web.archive.org/web/20090514063346/http://www.velotweets.com/ role: archive connections: [] story: color: "#56779a" introduction: The peloton in its own words, one rider at a time. engineering: - One Twitter account followed every rider, and a job read its timeline every five minutes. - The grid was one query, each rider’s newest tweet from the past seven days, so a rider who posted often still appeared once. - TwitPic links became VeloPics. Teams, nationalities, the race calendar and the Message of the Day were kept by hand in a small admin. stack: - Ruby on Rails 2.3 - MySQL - Phusion Passenger - Capistrano - Twitter API - TwitPic related: [] questions: - How did VeloTweets collect riders’ tweets? - Why did VeloTweets show each rider only once? - What files are left from VeloTweets? artifacts: - file: masthead-logo.png title: The masthead caption: The logo and its tagline, “Pulse of the Peloton,” from the top of every page. date: 2009-05 url: https://thingelstad.xyz/things/velotweets/artifacts/masthead-logo.png - file: front-page-2009-05.png title: The front page during the Giro caption: Launch week, on Stage 4 of the 2009 Giro d’Italia. The Message of the Day names the stage, the grid shows each rider once with their newest tweet, and VeloPics and VeloEvents run down the side. date: 2009-05 source: https://www.thingelstad.com/2009/05/12/introducing-velotweets-the.html url: https://thingelstad.xyz/things/velotweets/artifacts/front-page-2009-05.png - file: team-astana-2009-05.png title: A team’s riders caption: The same grid for one team, Astana, with each rider’s flag and team badge. date: 2009-05 source: https://www.thingelstad.com/2009/05/12/introducing-velotweets-the.html url: https://thingelstad.xyz/things/velotweets/artifacts/team-astana-2009-05.png - file: velopics-2009-05.png title: VeloPics caption: Photos the riders posted to TwitPic, gathered into one grid. date: 2009-05 source: https://www.thingelstad.com/2009/05/12/introducing-velotweets-the.html url: https://thingelstad.xyz/things/velotweets/artifacts/velopics-2009-05.png - file: color-palette.ase title: The colour palette caption: "The site’s colours as Adobe swatches: light blue #A0D3F2, slate blue #56779A, dark brown #261802, yellow #FFFF00, and white." url: https://thingelstad.xyz/things/velotweets/artifacts/color-palette.ase - file: jerseys.zip title: Jersey icons caption: Icons for the yellow, green, polka dot and white jerseys, 20 pixels wide and shown enlarged here. They were never used on the site. preview: jerseys.png url: https://thingelstad.xyz/things/velotweets/artifacts/jerseys.zip page: https://thingelstad.xyz/things/velotweets/ --- # VeloTweets A 2009 site that gathered professional cyclists’ tweets into one grid, built by Luke Francl, Norm Orstad, Chris Hatch, and me. VeloTweets, “the Pulse of the Peloton,” collected the Twitter posts of professional road cyclists in one place. In early 2009 I had started following riders such as Lance Armstrong through their RSS feeds and noticed that, read together, they gave a first-person view of the peloton during races. VeloTweets included only pro riders and a few others in the sport, added each rider’s team and nationality, and showed each rider once in a grid with their most recent message, so frequent posters did not crowd out everyone else. It also gathered TwitPic photos as VeloPics, kept a race calendar, and ran a Message of the Day tied to the day’s racing. It was a side project with no budget and no business behind it. The idea was mine. Luke Francl did most of the development, in Rails 2.3; Norm Orstad designed the site; Chris Hatch built the list of riders and filled in their profiles; and I “played sweeper,” helping wherever I could. The grid came out of a working session: I credit Norm’s comparison to a baseball card, and Luke credits me with showing one tweet per rider. Luke [announced the site on Rail Spikes](https://web.archive.org/web/20090514074605/http://railspikes.com/2009/5/10/announcing-velotweets) on May 10, 2009, and I followed two days later with [Introducing VeloTweets](https://www.thingelstad.com/2009/05/12/introducing-velotweets-the.html) and [Why do Cyclists Tweet?](https://www.thingelstad.com/2009/05/12/why-do-cyclists-tweet.html). VeloTweets read everything through its own Twitter account. The [About page](https://web.archive.org/web/20090603205416/http://www.velotweets.com/about) said so: “This account follows all of the people that we aggregate into VeloTweets.” Every five minutes the site read that account’s timeline, and the page reloaded itself on the same schedule. The grid showed each rider’s newest tweet from the past week, and by January 2010 VeloPics ran to [107 pages](https://web.archive.org/web/20100122083644/http://www.velotweets.com:80/photos?page=107) of photos. The last Internet Archive capture of the working site is from [March 2010](https://web.archive.org/web/20100318125905/http://www.velotweets.com/), when the grid had 114 riders; by [February 2011](https://web.archive.org/web/20110202042105/http://www.velotweets.com/) velotweets.com was a parked domain. In 2014 I listed @VeloTweets among the Twitter accounts I had deleted ([Twitter Spam #NFL](https://www.thingelstad.com/2014/11/28/twitter-spam-nfl.html)). I still have the project’s files: its source code at the last commit, on March 21, 2010, and the design files from the launch. The artifacts below come from them and from my launch post. Among them are icons for the yellow, green, polka dot and white jerseys that never appeared on the site. We wanted to show how many of each jersey a rider had won, but we never found a free source for that data. --- --- id: weekly-thing title: Weekly Thing summary: My weekend newsletter of links with commentary, sent since May 2017 and published as a website, email, and podcast. collection: Publishing status: active url: https://weekly.thingelstad.com/ started: 2017-05-13 topics: - open-web - archives sources: - kind: github repository: jthingelstad/weekly.thingelstad.com role: implementation - kind: website url: https://weekly.thingelstad.com/ role: website sitemap: https://weekly.thingelstad.com/sitemap.xml feed: https://weekly.thingelstad.com/feed.xml - kind: website url: https://weekly.thingelstad.com/podcast/ role: podcast feed: https://weekly.thingelstad.com/podcast.xml - kind: website url: https://www.thingelstad.com/2026/05/07/massive-weekly-thing-website-build.html role: reference connections: [] story: color: "#eaa18f" introduction: Curiosity, collected and shared. engineering: - WT Builder keeps an issue structured until it is sent, then renders different editions for the website, email, and audio. - The public archive is an Eleventy site. Thingy's private Librarian API builds the searchable archive that Thingy answers from. - Authoring, public publishing, and archive retrieval have explicit ownership boundaries. stack: - Eleventy - Publishing - Email - Audio related: - wt-builder - yearly-thing-2025 - thingy - another-thing questions: - What is behind the publishing workflow? - How do Weekly Thing and Thingy connect? source: https://weekly.thingelstad.com/ sourceLabel: Read the archive started: Published since 2017 page: https://thingelstad.xyz/things/weekly-thing/ --- # Weekly Thing My weekend newsletter of links with commentary, sent since May 2017 and published as a website, email, and podcast. The Weekly Thing is my newsletter of links I found interesting, each with my commentary, plus my own blog posts from the week. I sent the [first issue](https://weekly.thingelstad.com/archive/1/) on May 13, 2017, and have sent it most weekends since, taking breaks in summer and over the winter holidays. It began on TinyLetter, moved to MailChimp with [issue 23](https://weekly.thingelstad.com/archive/23/) in October 2017, and moved to Buttondown with [issue 131](https://weekly.thingelstad.com/archive/131/) in January 2020. I numbered those moves myself: “1.0: Launch on TinyLetter, 2.0: Move to MailChimp, 2.1: Custom HTML Template, 3.0: Buttondown.” I reached [issue 100](https://weekly.thingelstad.com/archive/100/) in April 2019, [200](https://weekly.thingelstad.com/archive/200/) in October 2021, and [300](https://weekly.thingelstad.com/archive/300/) in November 2024, which took “7 years 5 months 3 weeks and 6 days” ([Thoughts after writing 300 newsletters](https://www.thingelstad.com/2024/11/17/thoughts-after-writing.html)). In May 2026, at 345 issues, I [rebuilt the website](https://www.thingelstad.com/2026/05/07/massive-weekly-thing-website-build.html) as a full archive with search, a table of contents for each issue, and Thingy for asking questions of the archive. The ten newest issues also got an audio edition, published as a [podcast](https://weekly.thingelstad.com/podcast/). I built it with Claude Code, Claude Design, and Codex. [Issue 349](https://weekly.thingelstad.com/archive/349/), two weeks later, was the first made in the Weekly Thing Workshop, a team of Discord agents. Starting with [issue 350](https://www.thingelstad.com/2026/09/20/i-just-published-weekly-thing.html) in September 2026, every issue has been written and sent from WT Builder. In October 2026 I [restructured the whole archive](https://www.thingelstad.com/2026/10/06/weekly-thing-archive-improved.html) so old issues render like new ones, and rendered every issue in audio, so the podcast feed “goes all the way back to the very first issue.” Readers have had places to talk about issues. I [created r/WeeklyThing](https://www.thingelstad.com/2022/10/30/i-decided-to.html) in October 2022, and in September 2023 I opened the [Weekly Thing Forum](https://www.thingelstad.com/2023/09/22/introducing-weekly-thing.html) on Ponder, which closed when Ponder shut down in November 2025 ([Farewell Ponder and Weekly Thing Forum](https://www.thingelstad.com/2025/11/17/farewell-weekly-thing-forum-and.html)). Discussion moved back to the subreddit ([Weekly Thing 334](https://weekly.thingelstad.com/archive/334/)). Since November 2024, readers can become [Supporting Members](https://www.thingelstad.com/2024/11/17/weekly-thing-supporting.html). All of that money goes to one digital non-profit each year: Creative Commons first, then the Electronic Frontier Foundation, which [received $1,164.92](https://weekly.thingelstad.com/archive/347/) in May 2026, and now [Signal](https://weekly.thingelstad.com/archive/350/). --- --- id: weekly-thing-gpt title: Weekly Thing GPT summary: A custom ChatGPT loaded with the first 310 issues of the Weekly Thing, my first way to ask the archive a question. collection: Publishing status: retired url: https://www.thingelstad.com/2025/02/25/weekly-thing-gpt.html started: 2025-02-25 topics: - agents - archives sources: - kind: website url: https://www.thingelstad.com/2025/02/25/weekly-thing-gpt.html role: reference connections: - to: weekly-thing label: answered from detail: The GPT was loaded with all 310 issues of the Weekly Thing published by February 2025. source: https://www.thingelstad.com/2025/02/25/weekly-thing-gpt.html - to: thingy label: was succeeded by detail: When Thingy launched in May 2026, I compared the two. The GPT “was grade school level. Thingy is much smarter!” source: https://weekly.thingelstad.com/archive/347/ kind: lineage page: https://thingelstad.xyz/things/weekly-thing-gpt/ --- # Weekly Thing GPT A custom ChatGPT loaded with the first 310 issues of the Weekly Thing, my first way to ask the archive a question. On February 25, 2025, I [made a custom GPT](https://www.thingelstad.com/2025/02/25/weekly-thing-gpt.html) that anyone with a ChatGPT account could use, “loaded with all 310 issues of the Weekly Thing published so far.” I suggested questions such as “What is the Weekly Thing view on social media?”, “What is worse, Facebook or TikTok?”, and “Show me a list of articles on X along with the issue they were in,” and announced it in [Weekly Thing 311](https://weekly.thingelstad.com/archive/311/). It had limits. In March 2025 I showed it [answering wrongly](https://weekly.thingelstad.com/archive/313/) when asked which issue the Fortune first appeared in. Fourteen months later I launched Thingy, which searches the archive and cites its sources, and compared the two in [Weekly Thing 347](https://weekly.thingelstad.com/archive/347/): the GPT “was grade school level. Thingy is much smarter!” The GPT’s link no longer works. --- --- id: weekly-thing-workshop title: Weekly Thing Workshop summary: Four AI agents on Discord, Eddy, Linky, Marky and Patty, that helped me edit, research, promote and fund the Weekly Thing in 2026. collection: Publishing status: abandoned url: https://www.thingelstad.com/2026/05/12/the-weekly-thing-team.html started: 2026-05-12 topics: - agents - automation sources: - kind: website url: https://www.thingelstad.com/2026/05/12/the-weekly-thing-team.html role: reference - kind: website url: https://weekly.thingelstad.com/archive/349/ role: reference connections: - to: weekly-thing label: assembled detail: Weekly Thing 349 was “the first Weekly Thing created start-to-finish in the new Workshop.” source: https://weekly.thingelstad.com/archive/349/ - to: wt-builder label: was succeeded by detail: Weekly Thing 350, in September 2026, was the first issue made in WT Builder, after a summer in which my Agent Studio work “kind of blew up my own publishing process.” source: https://weekly.thingelstad.com/archive/350/ kind: lineage page: https://thingelstad.xyz/things/weekly-thing-workshop/ --- # Weekly Thing Workshop Four AI agents on Discord, Eddy, Linky, Marky and Patty, that helped me edit, research, promote and fund the Weekly Thing in 2026. After nine years of Weekly Things assembled with Shortcuts, I wanted help that did not wait for me. The old workflow “only runs when I engage with it. It is also brittle and ‘one way’.” In May 2026 I introduced [the Weekly Thing Team](https://www.thingelstad.com/2026/05/12/the-weekly-thing-team.html), “the genesis of my Workshop,” four agents on Discord, each with the whole Weekly Thing archive as a tool: - **Eddy**, the editor, assembled a working draft of the current issue every day and reviewed it. - **Linky**, the researcher, scouted the links I flagged. When I replied with my commentary, Linky synced it back to Pinboard. - **Marky** worked on bringing the newest issue to new readers. - **Patty** ran the Supporting Membership calls to action, and was the only agent whose drafts appeared in an issue. “My words are mine!” I wrote; the agents were a support team, not writers. [Weekly Thing 349](https://weekly.thingelstad.com/archive/349/), sent on May 23, 2026, was the first issue made start to finish in the Workshop, “by far the biggest change I’ve ever made to the Weekly Thing automation.” Over the summer, as I put it in [Weekly Thing 350](https://weekly.thingelstad.com/archive/350/), work on an Agent Studio “kind of blew up my own publishing process.” That issue was the first made in WT Builder, which has made every issue since. --- --- id: wikiapiary title: WikiApiary summary: A Semantic MediaWiki site that tracks thousands of MediaWiki wikis, their software, extensions, and editing activity. collection: Historical projects status: retired url: https://wikiapiary.com/wiki/Main_Page started: 2012-12-21 topics: - mediawiki - semantic-mediawiki sources: - kind: website url: https://wikiapiary.com/wiki/Main_Page role: website - kind: github repository: WikiApiary/WikiApiary role: implementation - kind: github repository: WikiApiary/wikibees role: successor connections: - to: foreground label: is skinned with detail: WikiApiary’s distinctive look came from the Foreground skin, which I worked on for WikiApiary. source: https://www.thingelstad.com/2013/12/22/one-year-for.html page: https://thingelstad.xyz/things/wikiapiary/ --- # WikiApiary A Semantic MediaWiki site that tracks thousands of MediaWiki wikis, their software, extensions, and editing activity. WikiApiary is “a wiki to track other wikis.” Once a MediaWiki site is registered, a set of bots collects its software versions, extensions, skins, and editing statistics, and the wiki keeps the history so it can be charted and queried. It is built with MediaWiki and Semantic MediaWiki. I started it as a holiday-break project in 2012; [MediaWiki.org](https://www.mediawiki.org/wiki/WikiApiary) dates it to December 21, 2012. On [Open Loop #7](https://www.thingelstad.com/projects/open-loop/7-turtle-turtle-turtle/) in January 2013 I said I built it “in about three days,” after Semantic Result Formats’ charts showed me I could graph wiki statistics, and that Garrick van Buren came up with the name: the MediaWiki logo is a sunflower, the bots are like bees, and a collection of hives is an apiary. After its first year it was collecting from 9,555 active wikis and had stored more than 1.8 billion statistics samples, with over 3.3 million property values of its own ([One Year for WikiApiary](https://www.thingelstad.com/2013/12/22/one-year-for.html)). I called it the first project I started that grew a real community around it. Karsten Hoffmeyer helped administer it, Mark Hershberger explored ways for wikis to register themselves, Paul DeCoursey rewrote the chart code, and Federico Leva linked MediaWiki.org’s extension pages to their WikiApiary pages, which brought much of its traffic. When I decided I was done with it, others took it on. Mark Hershberger wrote in April 2017 that he had “[inherited the site from Jamie Thingelstad](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/HRNMPDZBNH5DWCWEFWMKLJAACDQDOAPY/).” That October, Hershberger and his son Basil began [moving it from the old Linode servers to Wikimedia Cloud Services](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/R7TRLEB73RKAGGA22VE3JAVW3YZOQSMF/). At its size the wiki has struggled with database timeouts: it [came back online](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/7HK7OPHOID3ZLCYSZTNPXDPG7MHTXGMV/) in March 2023 after an upgrade to MediaWiki 1.39, was [in write-only mode](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/AMVVOP72ONA2YI7XJ7KV6O3K42BBBES4/) by that September, and MediaWiki.org marked it not operational in February 2025. In March 2026 Brian Wolff [got the site serving pages again](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/W5UMMJTSPGP7ZFT2NPTLCFHVVUXOLIOO/), with the update bots still off, and in May 2026 Hershberger announced from the Wikimedia Hackathon that WikiApiary and its bots [were moving to a Kubernetes cluster](https://lists.wikimedia.org/hyperkitty/list/wikiapiary@lists.wikimedia.org/message/DCSXARUPRRYZO4XKTTJXYIDM3T5AAGIV/) so it could start crawling wikis again. --- --- id: wikinosh title: Wikinosh summary: A Semantic MediaWiki site of nutrition facts for more than 20,000 foods, with a Twitter bot and an offline app. collection: Historical projects status: retired url: https://web.archive.org/web/20120630194132/http://wikinosh.com/wiki/Main_Page started: "2011" topics: - mediawiki - semantic-mediawiki sources: - kind: website url: https://web.archive.org/web/20120630194132/http://wikinosh.com/wiki/Main_Page role: archive connections: - to: numbers2words label: used detail: WikiApiary listed Numbers2Words 0.0.1 among Wikinosh’s extensions, and the main page spelled out its food counts. source: https://web.archive.org/web/20130103025340/http://wikiapiary.com/wiki/Wikinosh page: https://thingelstad.xyz/things/wikinosh/ --- # Wikinosh A Semantic MediaWiki site of nutrition facts for more than 20,000 foods, with a Twitter bot and an offline app. Wikinosh was a wiki of nutrition facts. Each food had a page with a nutrition label (serving size, calories, fat, sodium, carbohydrates, and protein) stored as Semantic MediaWiki properties, and foods were grouped into categories such as Baby Foods, Beverages, and Spices and Herbs. The Internet Archive first captured it in [December 2011](https://web.archive.org/web/20111205190345/http://wikinosh.com/wiki/Main_Page) with 13,753 food records; by [mid-2012](https://web.archive.org/web/20120630194132/http://wikinosh.com/wiki/Main_Page) it listed 21,550. In January 2013 [WikiApiary](https://web.archive.org/web/20130103025340/http://wikiapiary.com/wiki/Wikinosh) counted 20,433 articles and 981,167 property values on it. In [Open Loop #2](https://www.thingelstad.com/projects/open-loop/2-what-am-i-editing-anyway/) in June 2012, I described the food wiki I had “kind of in alpha” and how turning on Wikimedia Commons let a page show a photo of a banana just by naming the file. In July 2013 I worked with Yaron Koren to put Wikinosh’s data into Koren’s Miga app for offline, mobile access, and wrote up the Semantic MediaWiki limits I hit exporting more than 20,000 items ([Paging Large Datasets in Semantic MediaWiki](https://www.thingelstad.com/2013/07/30/paging-large-datasets.html)). The @Wikinosh Twitter account posted a random food from its 28,000-plus entries every six hours; in November 2013 one of those posts, about trout, drew an IRC-style trout slap from another bot ([Slapped with a Large Trout](https://www.thingelstad.com/2013/11/04/slapped-with-a.html)). The last Internet Archive capture of the wiki is from April 2014, and by November 2014 I listed @Wikinosh among the Twitter accounts I had deleted ([Twitter Spam #NFL](https://www.thingelstad.com/2014/11/28/twitter-spam-nfl.html)). --- --- id: wt-builder title: WT Builder summary: The app I use to write and send the Weekly Thing as a website, an email, and a podcast, and to make Another Thing. collection: Publishing status: active url: https://github.com/jthingelstad/wt-builder started: 2026-09-20 topics: - open-web - agents - mcp sources: - kind: github repository: jthingelstad/wt-builder role: implementation - kind: website url: https://www.thingelstad.com/2026/09/20/i-just-published-weekly-thing.html role: reference connections: - to: weekly-thing label: publishes detail: WT Builder authors issues and sends the website, email, and audio editions of Weekly Thing. source: https://www.thingelstad.com/2026/09/20/i-just-published-weekly-thing.html - to: another-thing label: authors detail: Another Thing podcast authoring moved into WT Builder in October 2026. source: https://github.com/jthingelstad/wt-builder/commit/bea76c7ef4fc79a878072feebf694ce18ad217ea page: https://thingelstad.xyz/things/wt-builder/ --- # WT Builder The app I use to write and send the Weekly Thing as a website, an email, and a podcast, and to make Another Thing. WT Builder is the authoring app for the Weekly Thing. I started building it with Claude in July 2026 to replace the Weekly Thing Workshop, the team of Discord agents that had itself taken over in May 2026 from the Shortcuts workflow I had used for nine years. It combines what I write for an issue with links and posts pulled from Pinboard and Micro.blog. The issue stays structured until it is sent, and then WT Builder renders three different editions: the website, the Buttondown email, and the audio edition for the podcast. The [README](https://github.com/jthingelstad/wt-builder) says it is narrow on purpose: “one editor, one current issue, one newsletter.” [Weekly Thing 350](https://www.thingelstad.com/2026/09/20/i-just-published-weekly-thing.html), sent on September 20, 2026, was the first issue made in it. I had Claude watch me use it that first time and fix problems as they came up. The next day we [reworked the audio edition](https://www.thingelstad.com/2026/09/21/weekly-thing-podcast-improvements.html), with better pauses, section announcements, and pronunciation, plus links in the episode descriptions. In October I [added an MCP server](https://www.thingelstad.com/2026/10/03/my-newest-mcp-experiment-was.html) so Claude could follow along as I wrote and point out typos and grammar. On October 11, 2026, WT Builder also [took over the Another Thing podcast](https://github.com/jthingelstad/wt-builder/commit/bea76c7ef4fc79a878072feebf694ce18ad217ea) from the retired Another Thing Builder. The Shortcuts workflow is kept as a fallback. --- --- id: yearly-thing-2025 title: Yearly Thing 2025 summary: A book of every link I commented on in the 2025 Weekly Thing, subtitled Agents, Attention, Artifacts, in print and as an eBook. collection: Publishing status: archived url: https://www.thingelstad.com/2026/01/20/i-made-a-book-yearly.html started: 2025-12 ended: 2026-01-20 topics: - archives - reading - poap sources: - kind: website url: https://www.thingelstad.com/2026/01/20/i-made-a-book-yearly.html role: reference - kind: website url: https://www.lulu.com/shop/jamie-thingelstad/yearly-thing-2025/paperback/product-84w66ey.html role: distribution - kind: website url: https://jthingelstad.gumroad.com/l/yearly-thing-2025 role: distribution connections: - to: weekly-thing label: collects a year of detail: All 324 links I commented on across 31 issues of the Weekly Thing in 2025, reorganized into ten topic chapters, in print and eBook form. Proceeds support the Weekly Thing Supporting Membership program. source: https://www.thingelstad.com/2026/01/20/i-made-a-book-yearly.html page: https://thingelstad.xyz/things/yearly-thing-2025/ --- # Yearly Thing 2025 A book of every link I commented on in the 2025 Weekly Thing, subtitled Agents, Attention, Artifacts, in print and as an eBook. For a few years I had wondered about a book version of the Weekly Thing, something like an almanac. I [started it over Christmas 2025](https://www.thingelstad.com/2026/01/19/i-just-finished-up-this.html) and [published it](https://www.thingelstad.com/2026/01/20/i-made-a-book-yearly.html) on January 20, 2026, as _Yearly Thing 2025: Agents, Attention, Artifacts_. It gathers all 324 links I commented on across 31 issues in 2025 into ten topic chapters, from The AI Revolution to Tools, Productivity and Delights, with an Introduction, a Weekly Thing Index, and an Afterword. The eBook keeps every hyperlink. The paperback lists the issue each item came from, with QR codes that lead to the Weekly Thing Index. “I made the Yearly Thing with Claude Code,” I wrote in [Weekly Thing 339](https://weekly.thingelstad.com/archive/339/), and I laid out the book in Vellum. The [paperback is $30 on Lulu](https://www.lulu.com/shop/jamie-thingelstad/yearly-thing-2025/paperback/product-84w66ey.html), and the first print copies [arrived on January 27](https://www.thingelstad.com/2026/01/27/the-print-copies-of-the.html). The [eBook is $20 on Gumroad](https://jthingelstad.gumroad.com/l/yearly-thing-2025). Anyone who bought it in the first two months got a [Yearly Thing 2025 POAP](https://poap.gallery/drops/223594). All proceeds go to the Weekly Thing Supporting Membership program, and the book’s sales were part of the [$1,164.92 given to the Electronic Frontier Foundation](https://weekly.thingelstad.com/archive/347/) in May 2026. --- --- id: your-version-number title: Your Version Number summary: A website that writes your age as a software version, decades.years.days, with a Work Edition for job tenure. collection: Personal tools and making status: active url: https://yourversionnumber.com/ started: 2026-05-03 topics: - play sources: - kind: github repository: jthingelstad/yourversionnumber.com role: implementation - kind: website url: https://yourversionnumber.com/ role: website sitemap: https://yourversionnumber.com/sitemap.xml - kind: website url: https://www.thingelstad.com/2018/02/24/your-version-number.html role: reference - kind: website url: https://www.thingelstad.com/2026/05/06/your-version-number-the-website.html role: reference connections: - to: release-notes label: grew into detail: Release Notes uses Your Version Number’s birthday arithmetic in a daily email and personal journal. source: https://github.com/jthingelstad/yvn-release-notes kind: lineage story: color: "#1763ff" introduction: A different way to count the days. engineering: - A framework-free static site calculates its numbers in the browser. - Dates, people, themes, and signed cards travel in the URL, making a view shareable without an account. - The related Release Notes product adds daily email and a personal journal. It has its own server and storage. stack: - JavaScript - CSS - Static web - URL state related: - release-notes - mb questions: - How does the version number work? - How is Release Notes related? source: https://github.com/jthingelstad/yourversionnumber.com started: The idea began in 2018 page: https://thingelstad.xyz/things/your-version-number/ --- # Your Version Number A website that writes your age as a software version, decades.years.days, with a Work Edition for job tenure. In February 2018 I wrote [Your Version Number](https://www.thingelstad.com/2018/02/24/your-version-number.html), building on a habit of my friend David Hussman, who gave his age as a version number. I mapped it to semantic versioning: decades are the major version, years into the decade the minor, and days since the last birthday the patch. I was v4.6.52 that day, and I made a Workflow script to show the versions of people in my address book. David died that August; the [site’s About page](https://yourversionnumber.com/about/) says the arithmetic is his. After a year of seeing my version through a [shortcut on my phone](https://www.thingelstad.com/2025/02/25/jamie.html), I made it a website with Claude Code in May 2026, first shared in [Weekly Thing 346](https://weekly.thingelstad.com/archive/346/) on 2026-05-03 and then in [a launch post](https://www.thingelstad.com/2026/05/06/your-version-number-the-website.html). Add one or more birthdays, pick one of the themes, and the page shows each version, counting up at midnight. Everything is held in the URL, so a view can be bookmarked, set as a home page, or sent to someone, with no account. Cards with a signed note work the same way. The Work Edition applies the same idea to a job: completed years of tenure, the quarter of the current tenure year, and weekdays into that quarter, with a build number that counts every business day, and work themes such as a board update. In October 2026 the idea grew into [Release Notes](https://notes.yourversionnumber.com/), a daily email of the day’s version with a journal attached.