<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>ondelva</title>
  <link>https://ondelva.com</link>
  <description>Small web tools built out of need, and notes on the tools I picked to build them. Free to use right now, with nothing to install.</description>
  <language>en</language>
  <atom:link href="https://ondelva.com/rss.xml" rel="self" type="application/rss+xml"/>
<item>
  <title>Cloudflare Free Plan Rate Limiting Cannot Guard 1,000 KV Writes a Day</title>
  <link>https://ondelva.com/blog/2026/08/cloudflare-free-plan-rate-limiting-daily-quota</link>
  <guid>https://ondelva.com/blog/2026/08/cloudflare-free-plan-rate-limiting-daily-quota</guid>
  <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
  <description>The Workers free plan allows 1,000 KV writes a day, shared by everyone. The rate limiting binding let 82 percent of a burst through, WAF rate limiting rules on a free zone are stuck at a 10 second window, and neither can express a daily cap. A per address Durable Object can.</description>
</item>
<item>
  <title>URL Shorteners 2026: What the Free Plans Let You Do Without an Account</title>
  <link>https://ondelva.com/blog/2026/08/url-shortener-free-plans-2026-without-an-account</link>
  <guid>https://ondelva.com/blog/2026/08/url-shortener-free-plans-2026-without-an-account</guid>
  <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
  <description>Six shorteners, side by side, on the things that decide a free link: whether you have to sign up, how many links you get, whether you can pick the ending, whether you can take one down afterwards, and whether anything is counted. Two of the six will not let you delete a link you made.</description>
</item>
<item>
  <title>Ten Milliseconds of CPU: I Broke the Cron by Making It Run More Often</title>
  <link>https://ondelva.com/blog/2026/08/workers-free-tier-10ms-cpu-limit</link>
  <guid>https://ondelva.com/blog/2026/08/workers-free-tier-10ms-cpu-limit</guid>
  <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
  <description>The Workers free plan gives each invocation 10 ms of CPU, and an isolate tolerates going over as long as you do not do it often. I changed a cron from every ten minutes to every minute and it died an hour later. Then the profiler disagreed with all three of my guesses.</description>
</item>
<item>
  <title>Django 4.2 Is Past End of Life: The 5.2 LTS Upgrade</title>
  <link>https://ondelva.com/blog/2026/08/django-4-2-end-of-life-upgrade-5-2-lts-guide-2026</link>
  <guid>https://ondelva.com/blog/2026/08/django-4-2-end-of-life-upgrade-5-2-lts-guide-2026</guid>
  <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
  <description>Django 4.2 lost security support on 7 April 2026. On 4 August the security team patched four issues in 5.2 and 6.0 and nothing older, so the gap stopped being hypothetical. 5.2 LTS is the target, and the Python floor is where the time goes.</description>
</item>
<item>
  <title>Structured Outputs in 2026: OpenAI vs Claude vs Gemini</title>
  <link>https://ondelva.com/blog/2026/08/structured-outputs-2026-json-schema-openai-claude-gemini</link>
  <guid>https://ondelva.com/blog/2026/08/structured-outputs-2026-json-schema-openai-claude-gemini</guid>
  <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
  <description>Schema-constrained decoding is real on all three providers now, and the parameter you reach for is different on each. What each one guarantees, and what it still cannot.</description>
</item>
<item>
  <title>Browser Use vs Stagehand vs Skyvern: Browser Agents 2026</title>
  <link>https://ondelva.com/blog/2026/08/best-open-source-browser-agent-frameworks-2026-browser-use-vs-stagehand-vs-skyvern</link>
  <guid>https://ondelva.com/blog/2026/08/best-open-source-browser-agent-frameworks-2026-browser-use-vs-stagehand-vs-skyvern</guid>
  <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
  <description>One architectural choice, read the DOM or look at a screenshot, explains the cost, the failure modes, and which of these three you should be running.</description>
</item>
<item>
  <title>Headless CMS 2026: Both Free On-Ramps Closed This Summer</title>
  <link>https://ondelva.com/blog/2026/08/headless-cms-2026-contentful-vs-sanity-vs-strapi-vs-payload</link>
  <guid>https://ondelva.com/blog/2026/08/headless-cms-2026-contentful-vs-sanity-vs-strapi-vs-payload</guid>
  <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
  <description>Strapi deletes every remaining free Cloud project on 1 September, and its cheapest paid tier still sleeps when idle and takes no backups. Payload Cloud stopped accepting new deployments after the Figma acquisition. What is left is a self-hosting decision wearing a comparison table.</description>
</item>
<item>
  <title>Debian 11 Dies on 31 August, and It Is Hiding in Your Base Images</title>
  <link>https://ondelva.com/blog/2026/08/debian-11-bullseye-end-of-life-august-2026-docker-migration-playbook</link>
  <guid>https://ondelva.com/blog/2026/08/debian-11-bullseye-end-of-life-august-2026-docker-migration-playbook</guid>
  <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
  <description>The people this deadline catches are not Debian admins. They run python:3.9-slim and have never once thought about what is underneath it. Nine days to find out.</description>
</item>
<item>
  <title>Search Pricing in 2026: Four Vendors, Four Different Units</title>
  <link>https://ondelva.com/blog/2026/07/algolia-vs-meilisearch-vs-typesense-vs-elasticsearch-2026-search-pricing</link>
  <guid>https://ondelva.com/blog/2026/07/algolia-vs-meilisearch-vs-typesense-vs-elasticsearch-2026-search-pricing</guid>
  <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
  <description>Algolia counts requests and records, Typesense counts RAM-hours, Meilisearch will count either, and Elastic switched to VCU-hours. Off the published rates, a $129.60 Typesense box equals Algolia at 269,000 searches a month.</description>
</item>
<item>
  <title>Postman Alternatives: Every Free Tier Withholds a Different Thing</title>
  <link>https://ondelva.com/blog/2026/07/postman-alternatives-2026-bruno-vs-insomnia-vs-hoppscotch</link>
  <guid>https://ondelva.com/blog/2026/07/postman-alternatives-2026-bruno-vs-insomnia-vs-hoppscotch</guid>
  <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
  <description>Bruno&apos;s free tier cannot use a private Git repository, which is the entire point of Bruno. Insomnia&apos;s free Git Sync stops at three users. Hoppscotch withholds the least and runs in a browser. What each one costs once the free tier stops fitting.</description>
</item>
<item>
  <title>EWS Retirement: The Value That Keeps It On Is Null, Not True</title>
  <link>https://ondelva.com/blog/2026/07/exchange-web-services-ews-retirement-microsoft-graph-migration-guide-2026</link>
  <guid>https://ondelva.com/blog/2026/07/exchange-web-services-ews-retirement-microsoft-graph-migration-guide-2026</guid>
  <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
  <description>From 1 October, EWSEnabled=True with an empty allow list blocks every EWS call in the tenant, and Null is the value that keeps EWS running. The end-of-August date is not a registration with Microsoft, and the kiosk block quietly moved to October.</description>
</item>
<item>
  <title>SharePoint 2016 and 2019: No ESU, and No Staying Put</title>
  <link>https://ondelva.com/blog/2026/07/sharepoint-2016-2019-end-of-support-july-2026-spse-vs-sharepoint-online</link>
  <guid>https://ondelva.com/blog/2026/07/sharepoint-2016-2019-end-of-support-july-2026-spse-vs-sharepoint-online</guid>
  <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
  <description>Support ended 14 July 2026, the same day as SQL Server 2016. SQL Server sells you three more years by the core-hour. SharePoint sells you nothing, and Subscription Edition is not staying put: it is a new farm, a database attach, and a license that exists only while Software Assurance does.</description>
</item>
<item>
  <title>React, Vue, Svelte, Solid: The Clock Is on the Meta-Framework</title>
  <link>https://ondelva.com/blog/2026/07/svelte-vs-react-vs-vue-vs-solid-2026</link>
  <guid>https://ondelva.com/blog/2026/07/svelte-vs-react-vs-vue-vs-solid-2026</guid>
  <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
  <description>None of the four publishes an end-of-life date. The layer you actually deploy does, and the two policies could not be further apart: Next.js gives a major two years of maintenance, Nuxt gives six months after the next one ships. Nuxt 3 ended three weeks ago.</description>
</item>
<item>
  <title>Secret Scanning 2026: The Default Tool Stopped Shipping</title>
  <link>https://ondelva.com/blog/2026/07/secret-scanning-2026-gitleaks-betterleaks-trufflehog-github-secret-protection-gitguardian</link>
  <guid>https://ondelva.com/blog/2026/07/secret-scanning-2026-gitleaks-betterleaks-trufflehog-github-secret-protection-gitguardian</guid>
  <pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
  <description>Gitleaks has 28,909 stars and its last release was five months ago, because its author put a warning in the README and moved to a fork with 1,757. Meanwhile the layer that actually prevents a leak is the one most teams skip, and only one of the four layers is prevention at all.</description>
</item>
<item>
  <title>Content API for Shopping Is Off: Merchant API v1, After the Fact</title>
  <link>https://ondelva.com/blog/2026/07/content-api-for-shopping-shutdown-august-2026-merchant-api-v1-migration</link>
  <guid>https://ondelva.com/blog/2026/07/content-api-for-shopping-shutdown-august-2026-merchant-api-v1-migration</guid>
  <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
  <description>Google sunset Content API for Shopping on 18 August 2026. The hostname still answers and the discovery document still updates, so a 200 proves nothing. What is left is extended access, a registration step that fails by returning an empty list, and prices in micros.</description>
</item>
<item>
  <title>npm v12 Blocks Install Scripts: The Allowlist Migration</title>
  <link>https://ondelva.com/blog/2026/07/npm-v12-install-scripts-blocked-allowlist-migration-playbook</link>
  <guid>https://ondelva.com/blog/2026/07/npm-v12-install-scripts-blocked-allowlist-migration-playbook</guid>
  <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
  <description>Three defaults flipped in npm 12 and the failure mode is silent, not loud. Here is what breaks, how the approve-scripts allowlist works, and why npm still ships its cooldown turned off while pnpm turns it on.</description>
</item>
<item>
  <title>Your Assistants Threads Do Not Survive 26 August</title>
  <link>https://ondelva.com/blog/2026/07/openai-assistants-api-shutdown-august-2026-responses-conversations-migration</link>
  <guid>https://ondelva.com/blog/2026/07/openai-assistants-api-shutdown-august-2026-responses-conversations-migration</guid>
  <pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate>
  <description>One part of this migration has a deadline you cannot move, and it is not the code. Thread contents stop being reachable through the API the moment the endpoints go. The rewrite can slip a month. The export gets one chance.</description>
</item>
<item>
  <title>Oracle JDK 21 Free Updates End: The Deadline Is a Patch Date</title>
  <link>https://ondelva.com/blog/2026/07/oracle-java-21-free-updates-end-september-2026-cost-decision</link>
  <guid>https://ondelva.com/blog/2026/07/oracle-java-21-free-updates-end-september-2026-cost-decision</guid>
  <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
  <description>Updates to Oracle JDK 21 released after September 2026 move to the paid license, and Oracle ships JDK updates quarterly. The next quarterly update is 20 October 2026. Same bytecode from Temurin or Corretto gets patched for three to five more years, free.</description>
</item>
<item>
  <title>MCP 2026-07-28: The Server Can No Longer Speak First</title>
  <link>https://ondelva.com/blog/2026/07/mcp-2026-07-28-stateless-spec-migration-server-authors</link>
  <guid>https://ondelva.com/blog/2026/07/mcp-2026-07-28-stateless-spec-migration-server-authors</guid>
  <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
  <description>Sessions, ping, server-initiated requests, resumable streams, and the GET endpoint all went in one release. Roots, Sampling, and Logging are deprecated on top. Every removal moves initiative from the server to the client, and that is the migration.</description>
</item>
<item>
  <title>Zapier vs Make vs n8n 2026: The AI-Agent Pricing Trap</title>
  <link>https://ondelva.com/blog/2026/07/zapier-vs-make-vs-n8n-2026-ai-agent-pricing-per-task-vs-per-execution</link>
  <guid>https://ondelva.com/blog/2026/07/zapier-vs-make-vs-n8n-2026-ai-agent-pricing-per-task-vs-per-execution</guid>
  <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
  <description>Zapier bills per task, Make per credit, n8n per execution. The same five-step workflow costs wildly different amounts depending on which word your invoice uses.</description>
</item>
</channel>
</rss>