Week 41 Summary (Oct 4 - Oct 10, 2026)

A week that started strong and quickly wrapped up. Sunday carried more than the next three days combined: three unrelated bugs closed in one evening, two AI-related videos watched and digested, and then the week settled into shorter, sharper sessions. Sundays are always busy. Two build threads ran through it — the saved-bookmarks web app graduated from working to trustworthy on Tuesday evening (broken-link rechecks, full backup and restore, a last-export-date readout), and on Thursday a custom visual theme for the Scribbles.page blog went from first poke to finished inside a single day with Claude Desktop. The writing-in-public iPhone 15 Pro Max to 18 Pro Max piece was the connective tissue early on, touched Sunday, promoted from sub-page to a full Craft document on Monday, resumed Wednesday, then quiet. The back half turned reflective and Apple-shaped: a note about the coming MacBook Pro, a post on being more deliberate about which Claude model fits which task, and a quick look at Cork for Homebrew. Tooling got the attention this week; the journal itself stayed lean, with Socializing and Reading unlogged all seven days, surprisingly.

Week 40 Summary (Sep 27 - Oct 3, 2026)

A week owned by n8n — first as a problem, then as a playground. Monday night’s out-of-memory crash forced a droplet bump to 2 GB, Tuesday brought another version upgrade (2.40 → 2.41.3), and by Wednesday afternoon the Agents tab was enabled and a minimal agent was already reading Craft Daily Notes. Alongside that, the “Writing in public” iPhone 15 Pro Max → 18 Pro Max piece advanced in small increments on four separate days without shipping, making it the week’s longest-running open thread.

Reading leaned heavily Apple — John Ternus reshaping the company, Gruber on the iPhone Air, the Duo UI critique — while watching turned toward AI tooling craft: the Jev decision-model video, then two videos on Claude prompting and skill-building. The week closed on a genuine debugging win: tracing runaway Neon compute to Birchfeed’s 11-minute polling, fixed and written up the same morning. A week of infrastructure maintenance, agent curiosity, and one article that kept almost getting finished.

Solving a High Compute Usage Problem in One of My Web Apps

The setup

I run a handful of small personal web apps on Vercel. Two of them, a task manager and a bookmarks manager, store their data in the same Neon Postgres project on the free plan.

That plan includes 100 CU-hours of compute per project per month. Neon suspends the compute after 5 minutes without activity and wakes it on the next query. In theory, a database used by one person should barely touch that allowance.

The problem

Since the second half of September, my Neon compute usage had been running high, and I couldn’t find out why.

On October 3, the Neon console showed 8 CU-hours already used for the month. That was after about two and a half days.

At that pace I would run out before the end of October. My own use of the two apps didn’t seem like enough to explain it, so something else was keeping the database awake.

Does Neon have an analytics API?

My first question was whether Neon offers more detailed usage data than the console. It does, but on the free plan the useful part is not where I expected it.

  • Consumption history API. It returns per-project usage by hour, day or month, but Neon’s usage documentation says it requires a paid plan.
  • Project details endpoint. On the free plan, Neon points you to cumulative counters such as compute time and active time for the billing period. For my project they all came back as zero, so I relied on the console’s figure instead.
  • Operations endpoint. It lists every compute start and suspend with a timestamp, and it works on the free plan. This is the one that solved the problem.

How I investigated it

I did the investigation with Claude, which has access to my Neon, Vercel and Craft accounts through MCP connectors. My web app documentation lives in Craft, so Claude could see which apps use the database before looking at any logs.

  1. Check the compute configuration. The compute is fixed at 0.25 CU, the same value for minimum and maximum. Autoscaling couldn’t cause spikes, so the usage was entirely about how long the compute stayed awake.
  2. Read the operations log. The compute started, stayed active for about 5 minutes 15 seconds, suspended, then started again about 11 minutes after the previous start. The cycle ran around the clock, including between midnight and 4 AM Montreal time. That ruled me out.
  3. Count requests per route in the Vercel logs. Over 24 hours, the task manager received about 80 requests, almost all from bots probing for configuration files. The bookmarks app’s RSS feed received 163 requests, and none were served from cache.
  4. Line up the timestamps. Each feed request matched a compute start within a second. A sample from October 3:
RSS feed request (UTC) Compute start (UTC)
11:20:19 11:20:19
11:31:01 11:31:02
11:41:59 11:42:00
11:52:59 11:52:59
  1. Rule out the uptime ping. An uptime check hits the bookmarks app every hour, in a burst of 5 or 6 requests. Three of those bursts arrived while the compute was suspended and didn’t wake it. The requests stop at the app’s authentication check, before any database query.
  2. Identify the pollers. The logs don’t record user agents, but the two polling patterns matched two feed reader subscriptions I had added for testing: Birchfeed every 11 minutes and Inoreader every hour.

The two readers also explain how the problem built up. Inoreader’s hourly polling had been there for a while. At about 24 wakes a day, it cost roughly 16 CU-hours a month, a latent problem that stayed within the allowance. It got much worse when I started using Birchfeed, which polls far more aggressively and doesn’t let me set a polling interval per feed.

The math

On a database that scales to zero, cost follows the number of wakes, not the size of the queries. Each wake kept the compute on for about 5.25 minutes at 0.25 CU:

0.25 CU × (5.25 ÷ 60) h ≈ 0.022 CU-hours per wake

About 131 wakes a day added up to roughly 2.9 CU-hours a day. Over two and a half days, that is 7 to 8 CU-hours, which matched the console.

Over 31 days, it projected to about 90 CU-hours before any real use of the apps. A tiny query every 11 minutes was costing about as much as keeping the database on half of every day.

The fix

Both subscriptions were left over from testing and I didn’t need them, so I removed them. That took the polling away entirely.

I also considered making the feed cacheable at Vercel’s CDN, so polls would be answered without touching the database. With the readers gone, I didn’t need it. It remains the option if I subscribe to the feed again.

Now only real activity should wake the compute: my own use of the apps, writes from my automations, and two weekly archive syncs. I expect to finish October well under 100 CU-hours.

Week 39 Summary (Sep 20 - Sep 26, 2026)

One article carried the week. The “Writing in public — Upgrading from iPhone 15 Pro Max to iPhone 18 Pro Max — Was it Worth it?” piece got four separate sessions (Sunday, Monday, Tuesday, then a late Friday night pass), moving from transferred QuickNotes toward a shaped draft, with a camera-artifact demo clip recorded alongside it.

Photography was the week’s second thread — iPhone 18 Pro Max shots went out on Glass twice, a Montreal Moment landed on Perfect Imperfections, and a batch went up on Unsplash for the first time in a long while.

Underneath the creative work ran an infrastructure storyline that ate three mornings: n8n was upgraded Wednesday (2.37.10 → 2.40.5), went down Thursday, was upgraded and restarted again, and was pinned as the likely cause of a Neon DB 80% CPU warning — which led to setting up external monitoring for it.

The week closed with polish and experimentation, using Claude AI to rework the whois.numericcitizen.me landing page and fix its sitemap, plus test runs of the Craft beta and Moments.im collections.

Week 38 Summary (Sep 13 - Sep 19, 2026)

One project dominated the week: Writing in public — My experience upgrading from iPhone 15 Pro Max to iPhone 18 Pro Max was touched every single day, Sunday through Saturday — moving from research and drafting to an intro rewrite, a task list, references to external 18 Pro reviews, an embedded video review, and finally first-hand observations once the device actually arrived on Friday night.

The second thread was infrastructure. whois.numericcitizen.me got a weekend to-do list, a typo pass, and a partly successful footer change that hit MCP limitations, while Elements 3.0 and its MCP setup in Claude Desktop went through a first set of tests.

Smaller maintenance ran underneath: confirming the Ghost and Micro.blog weekly sync is picking up new posts, and a Saturday attempt at an n8n workflow execution issue. Reading and watching were sparse, and both fed the same interests — Apple news on Sunday, UniFi Express 7 meshing videos on Wednesday.

The shape of the week: sustained single-project momentum, bookended by anticipation on Sunday and the phone in hand by Friday.

Week 37 Summary (Sep 6 - Sep 12, 2026)

A week of two distinct halves. It opened in full builder mode: a long-sought MCP for searching your own publications finally came together on Sunday, followed by n8n workflows that sync both the Ghost and Micro.blog archives into a Neon database so Claude Desktop can query them directly. Monday kept the momentum — an n8n upgrade, an MCP link to the official n8n docs, a delete feature shipped to Trails, and a new photo series, Montreal by night. From Wednesday onward, Apple took over: launch-day reading, leak-driven revisions to the upgrade plans, and the launch of a first writing-in-public project on the iPhone 15 Pro Max to 18 Pro Max transition, announced across Slack, Hacker News and the blog. The back half carried some weight too — a Pixelfed reflection on the 25th anniversary of 9/11 — and the week closed with **the Apple Watch Series 8 **finally landing on the upgrade list.

Week 36 Summary (Aug 30 - Sep 5, 2026)

A week built around one big unresolved question — whether Birchfeed could replace Inoreader and become the feed backbone for the RSS Flow web app. That thread ran Sunday through Tuesday, moving from curiosity to a Claude Code exploration to a firm decision on Tuesday night to keep the existing feed management. Publishing stayed steady around it: four blog posts went out (Apple’s inflection point under John Ternus, CleanShot 5, the August digest, and anticipation for the September 9th iPhone event). Tool testing was the other constant — two Craft betas, the CleanShot 5 upgrade and its video recording, Claude Design, and Claude AI scheduled tasks all got a turn. The back half of the week tapered into lighter housekeeping and photo sharing on Moments, the photo-journaling app discovered on day one and used three times before the week was out.

Week 35 Summary (Aug 23 - Aug 29, 2026)

A week bookended by writing. It opened with On Integrating Quick Reads Into My Digital Ecosystem going out the door on Sunday, and closed with three consecutive mornings on “I’m proud of my failures” article as a creator alongside the next issue of the ephemeral scrapbook newsletter. Underneath it all was a sustained hunt for better reading sources — chasing an RSS feed on understandingwar.org, adopting Bubbles.town, and opening a trial of Standard Reader. AI experiments ran in parallel almost daily: Whisper transcription on the M4 Mac mini, scheduled tasks in the Claude cloud, Claude in gateway mode against Ollama, and an attempt to make Ghost CMS content searchable through Claude — most of them reaching a verdict rather than staying open. Maintenance took a real share of the week too, with n8n instability, a manual MCP config merge, and a refreshed ecosystem diagram, while a consistent editorial stance on engagement-driven platforms surfaced twice in conversation.

Week 34 Summary (Aug 16 - Aug 22, 2026)

A week with one clear centre of gravity: the On Integrating Quick Reads Into My Digital Ecosystem piece, picked up on five consecutive mornings — continued, diagrammed, re-diagrammed, then restarted from scratch on Thursday. Around it, Claude AI shifted from assistant to workbench: documenting MCP endpoint dependencies, connecting Neon Postgres, refreshing n8n workflow docs, and by week’s end turning bank statements into a financial dashboard for retirement planning. Reading was front-loaded into early mornings and skewed toward AI commentary and Apple’s App Store fight, with a detour into Craft Agents. Infrastructure got quiet attention too — an n8n upgrade to 2.35.4, and a failed Micro.blog highlight deletion that turned into a support ticket. Momentum tapered after Wednesday: Friday came down to a single entry, and Saturday was blank.

Week 33 Summary (Aug 09 - Aug 15, 2026)

This is my first week summary. It is built automatically with AI by consuming my manually-written notes Craft Daily notes where I document most of my activities. Then, I do some touch ups before publishing here.

A week centered on the Quick Reads read-later service, which threaded through nearly every day — from drafting a review and appreciation piece to extracting text highlights, weighing data portability, and wiring a Quick Reads section into the personal Dashboard. Automation was the second big theme: the newly discovered Brrr push-notification app went from curiosity on Tuesday to being integrated into four n8n workflows by Saturday, while Claude Code helped tidy the bookmarking app’s documentation and fix its code. Two blog posts shipped — ‘The digital toxicity’ on the return to the web for app development, and ‘It’s fun to go back’ reflecting on past writing. Reading and watching leaned heavily on AI and industry shifts, spanning antirez on lab risks, the OpenAI/Hugging Face incident timeline, the end of Google Search, and self-hosting LLMs to control token costs. The week opened with continued research for an upcoming iPhone review, focused on the camera control button.