✕ Clear all filters
279 articles
▶ Videos →

📰 Dev.to · Alex Spinov

279 articles · Updated every 3 hours · View all reads

All Articles 116,963Blog Posts 125,031Tech Tutorials 29,889Research Papers 23,513News 17,250 ⚡ AI Lessons
8 Free Geocoding APIs With No Key and No Signup (2026)
Dev.to · Alex Spinov 1w ago
8 Free Geocoding APIs With No Key and No Signup (2026)
Eight free geocoding APIs with no key and no signup, each re-verified with a live curl in July 2026.
11 Free No-Key APIs Your AI Agent Can Use to Read the Web
Dev.to · Alex Spinov 🤖 AI Agents & Automation ⚡ AI Lesson 1w ago
11 Free No-Key APIs Your AI Agent Can Use to Read the Web
An AI agent doesn't need a paid data vendor to read the web. These eleven REST APIs return real data...
You Can't Unit-Test an AI Agent. You Can Regression-Gate It.
Dev.to · Alex Spinov 2w ago
You Can't Unit-Test an AI Agent. You Can Regression-Gate It.
A strict assert == golden fails on every valid agent run. Here is a deterministic gate over a non-deterministic output, with the case it misses printed in the s
Give Your AI Agent a Web-Fetch Tool: a 60-Line MCP Server (Free, Self-Hosted)
Dev.to · Alex Spinov 4w ago
Give Your AI Agent a Web-Fetch Tool: a 60-Line MCP Server (Free, Self-Hosted)
Every MCP web-access tutorial I read this month pointed at a paid API. You don't need one. To let an...
Your Scraper Re-Downloads Everything. Most Didn't Change.
Dev.to · Alex Spinov 📣 Digital Marketing & Growth ⚡ AI Lesson 1mo ago
Your Scraper Re-Downloads Everything. Most Didn't Change.
Your scheduled scraper re-downloaded the whole corpus last night. A few thousand records. About forty...
Your AI Agent Is Paying for HTML It Never Reads — I Measured the 7x Token Tax
Dev.to · Alex Spinov 🤖 AI Agents & Automation ⚡ AI Lesson 1mo ago
Your AI Agent Is Paying for HTML It Never Reads — I Measured the 7x Token Tax
I gave an agent a fetch_page tool, asked it to read one Wikipedia article, and watched that single...
Your Scraper Got Clean Data. The Site Lied to It.
Dev.to · Alex Spinov 1mo ago
Your Scraper Got Clean Data. The Site Lied to It.
A site can detect your scraper and serve a 200 with a perfect schema and plausible values that are deliberately false. Status codes and sanity checks are blind
Your Scraper Passes Every Run. It's Still Rotting.
Dev.to · Alex Spinov 1mo ago
Your Scraper Passes Every Run. It's Still Rotting.
A scraper run finished green. Exit 0. Schema valid. Row count looked normal. So did the one before...
Your Scraper Collected 50 Rows. There Were 4,000.
Dev.to · Alex Spinov 📊 Data Analytics & Business Intelligence ⚡ AI Lesson 1mo ago
Your Scraper Collected 50 Rows. There Were 4,000.
A scraper can pass every check you wrote and still be wrong about the one thing you actually care...
A 30-Line Probe That Tells You If a Page Needs a Browser
Dev.to · Alex Spinov ⚡ AI Lesson 1mo ago
A 30-Line Probe That Tells You If a Page Needs a Browser
A stdlib probe that reads the raw HTTP response and votes NO_BROWSER, JS_REQUIRED, or MAYBE. I ran it on 10 named public URLs; 6 returned their data without Chr
You Pay for the Bandwidth That Returns Nothing
Dev.to · Alex Spinov ☁️ DevOps & Cloud ⚡ AI Lesson 1mo ago
You Pay for the Bandwidth That Returns Nothing
A proxy invoice that says 24.79 GB · $198.28 reads like you bought 24.79 GB of data. You didn't. You...
A Budget Brake That Stops a Scraper Before $200
Dev.to · Alex Spinov ☁️ DevOps & Cloud ⚡ AI Lesson 1mo ago
A Budget Brake That Stops a Scraper Before $200
Spend alerts fire after the money is gone. A budget brake refuses the next step before it spends. A 40-line preventive fuse, run locally with real output, plus
9 Free LLM APIs in 2026 You Can Use Without a Credit Card
Dev.to · Alex Spinov 🧠 Large Language Models ⚡ AI Lesson 1mo ago
9 Free LLM APIs in 2026 You Can Use Without a Credit Card
Nine LLM APIs with a genuinely free tier and no credit card in 2026 — limits, OpenAI-compatibility, and which survive an extraction workload. Verified May 2026.
HTTP 200 Is a Lie: A 30-Line Schema Canary for Source Drift
Dev.to · Alex Spinov 1mo ago
HTTP 200 Is a Lie: A 30-Line Schema Canary for Source Drift
A scraper that returns HTTP 200 is not a scraper that returns good data. Those are two different...
Feeding Raw HTML to Your LLM Is a Token Tax. I Measured It on 10 Real Pages — Median 7.4 , and It Hits Every Scheduled Run
Dev.to · Alex Spinov 🧠 Large Language Models ⚡ AI Lesson 1mo ago
Feeding Raw HTML to Your LLM Is a Token Tax. I Measured It on 10 Real Pages — Median 7.4 , and It Hits Every Scheduled Run
There's a whole wave of posts right now telling you the same thing: don't feed raw HTML to your LLM,...
Your Scraper's Retry Loop Is a DDoS Button. Here's the 30-Line Fix (with real output)
Dev.to · Alex Spinov 1mo ago
Your Scraper's Retry Loop Is a DDoS Button. Here's the 30-Line Fix (with real output)
Originally published on my blog. This is the focused, runnable version of one section. There's a...
5 Apify webhook patterns that turn one-off scrapers into reliable data pipelines
Dev.to · Alex Spinov 📊 Data Analytics & Business Intelligence ⚡ AI Lesson 2mo ago
5 Apify webhook patterns that turn one-off scrapers into reliable data pipelines
5 Apify webhook patterns that turn one-off scrapers into reliable data pipelines This...
Bun Test Has a Free API That Runs Jest-Compatible Tests 10x Faster
Dev.to · Alex Spinov ⚡ AI Lesson 3mo ago
Bun Test Has a Free API That Runs Jest-Compatible Tests 10x Faster
Bun's built-in test runner: zero config, Jest-compatible, 10x faster. import { describe, it,...
Fresh 2 Has a Free API That Brings Zero-JS Pages to Deno With Island Architecture
Dev.to · Alex Spinov 3mo ago
Fresh 2 Has a Free API That Brings Zero-JS Pages to Deno With Island Architecture
Fresh is Deno's web framework. Zero JavaScript shipped to the client by default. Interactive parts...
Remix v2 Has a Free Framework That Makes React Server-Side Rendering Actually Enjoyable
Dev.to · Alex Spinov ⚡ AI Lesson 3mo ago
Remix v2 Has a Free Framework That Makes React Server-Side Rendering Actually Enjoyable
Remix v2 ditches the file-based routing complexity of Next.js and gives you nested routes with...