<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Nibble blog</title><link href="https://nibble.ink/feed-posts.xml" rel="self"/><link href="https://nibble.ink/"/><id>https://nibble.ink/feed-posts.xml</id><updated>2026-10-29T07:22:42Z</updated><entry><title>Nibble 0.20.0: work that runs on its own</title><link href="https://nibble.ink/blog/nibble-0-20-0-work-that-runs-on-its-own"/><id>https://nibble.ink/blog/nibble-0-20-0-work-that-runs-on-its-own</id><updated>2026-10-29T07:22:42Z</updated><summary>Scheduled tasks keep a site&#39;s figures and feeds up to date on their own, carefully. Plus content packages that carry their files, finer control over titles and the sitemap, a Control Plane that pages everything, and Back that closes the dialog instead of the page.</summary></entry><entry><title>Nibble 0.19.2: AI apps and agents, built in</title><link href="https://nibble.ink/blog/nibble-0-19-2-ai-apps-and-agents"/><id>https://nibble.ink/blog/nibble-0-19-2-ai-apps-and-agents</id><updated>2026-09-28T09:30:00Z</updated><summary>AI apps connect to a Nibble site over MCP and work as the person who connected them, within limits checked on every request. Plus the nibble command, the management API, and developer tools for agents.</summary></entry><entry><title>Thirty-six migrations, folded</title><link href="https://nibble.ink/blog/thirty-six-migrations-folded"/><id>https://nibble.ink/blog/thirty-six-migrations-folded</id><updated>2026-09-26T15:40:00Z</updated><summary>0.18.1 folds Nibble&#39;s thirty-six migrations into one per table, each creating its table as it is now. The catch was the order: foreign keys decide which migration has to run last.</summary></entry><entry><title>Live Preview stops blinking</title><link href="https://nibble.ink/blog/live-preview-stops-blinking"/><id>https://nibble.ink/blog/live-preview-stops-blinking</id><updated>2026-09-26T15:05:00Z</updated><summary>Live Preview used to reload the whole page on every change, blank and back to the top. Now it updates in place. Getting there turned up a bug of my own making in how theme types are generated.</summary></entry><entry><title>The lock screen a reload could skip</title><link href="https://nibble.ink/blog/the-lock-screen-a-reload-could-skip"/><id>https://nibble.ink/blog/the-lock-screen-a-reload-could-skip</id><updated>2026-09-26T14:55:00Z</updated><summary>The Control Plane locked itself after a while without activity, but only in the browser. A reload walked straight back in. Now an idle session ends on the server, and signing back in keeps your unsaved work.</summary></entry><entry><title>Giving Rails back to the app</title><link href="https://nibble.ink/blog/giving-rails-back-to-the-app"/><id>https://nibble.ink/blog/giving-rails-back-to-the-app</id><updated>2026-09-26T14:45:00Z</updated><summary>0.18.0 hands every Rails setting, path and name back to the site. Along the way: a closed upload endpoint, a constant that resolved to the wrong class, and a migration clash only a real generator could find.</summary></entry><entry><title>One folder you can throw away and replace</title><link href="https://nibble.ink/blog/one-folder-you-can-throw-away-and-replace"/><id>https://nibble.ink/blog/one-folder-you-can-throw-away-and-replace</id><updated>2026-09-23T23:00:00Z</updated><summary>0.16.0 moved all of Nibble into vendor/nibble and made upgrades a matter of swapping that folder. Here&#39;s why merging our git history into every site&#39;s repository had to go.</summary></entry><entry><title>Seven patch releases in one night</title><link href="https://nibble.ink/blog/seven-patch-releases-in-one-night"/><id>https://nibble.ink/blog/seven-patch-releases-in-one-night</id><updated>2026-09-22T22:30:00Z</updated><summary>Moving this site&#39;s documentation onto a folder of Markdown found seven bugs in one night: sorting, filtering, counting and a time zone nobody asked for. Each became its own patch release.</summary></entry><entry><title>Giving the project an address it can keep</title><link href="https://nibble.ink/blog/giving-the-project-an-address-it-can-keep"/><id>https://nibble.ink/blog/giving-the-project-an-address-it-can-keep</id><updated>2026-09-21T23:00:00Z</updated><summary>0.9.0 gave Nibble a public home. Moving where a site looks for updates turned out to be a puzzle: a release can&#39;t know where the next one will come from.</summary></entry><entry><title>A folder of Markdown can be a collection</title><link href="https://nibble.ink/blog/a-folder-of-markdown-can-be-a-collection"/><id>https://nibble.ink/blog/a-folder-of-markdown-can-be-a-collection</id><updated>2026-09-21T09:00:00Z</updated><summary>0.7.0 lets a collection read its pages from a folder of files. This site&#39;s documentation is the first thing built on it.</summary></entry><entry><title>Day one: content shaped by files</title><link href="https://nibble.ink/blog/day-one-content-shaped-by-files"/><id>https://nibble.ink/blog/day-one-content-shaped-by-files</id><updated>2026-09-20T16:00:00Z</updated><summary>Nibble 0.1.0 is out. A CMS you run as your own Rails application, where the shape of your content lives in YAML beside your code and everything else is ordinary Rails.</summary></entry></feed>
