TLDR Web Dev

TLDR WEB DEV 2025-06-02

6 sections17 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01GENERAL

02ARTICLES & TUTORIALS

PROGRESSIVE JSON

Most apps send JSON all at once, forcing the client to wait until everything is ready, but what if we streamed it progressively, like how progressive JPEGs load from blurry to clear? A "Progressive JSON" approach is explored here that sends data breadth-first with placeholders, letting the client process what's ready and treat missing parts as Promises. This is similar to how React Server Components stream UI and use Suspense to control visual loading states.

overreacted.io14 min read

VIRTUAL THREADS ATE MY MEMORY: A WEB CRAWLER'S TALE OF SPEED VS. MEMORY

Switching a web crawler from platform threads to Java Virtual Threads improves speed, but also causes an OutOfMemoryError due to a lack of built-in backpressure. Virtual Threads allows downloads to race ahead, but without limits, the system quickly floods memory with unprocessed tasks. The fix is to introduce explicit concurrency control (like semaphores) to balance speed with memory.

links.tldrnewsletter.com6 min read

CONCURRENT WEB CRAWLING IN RUBY WITH ASYNC

This article shows how to transform a slow, synchronous Ruby web crawler into a fast concurrent one using the Async library. Crawling time is reduced from 3 seconds to half a second in the example by implementing non-blocking I/O with Fibers, connection reuse, and rate limiting.

losangelesaiapps.com11 min read

03OPINIONS & ADVICE

WHEN FINE-TUNING ACTUALLY MAKES SENSE: A DEVELOPER'S GUIDE

Fine-tuning helps solve specific, high-impact problems that prompting alone can't, like inconsistent JSON output, bloated prompts, or models that ignore custom logic or tone. It's especially valuable for improving task-specific quality, reducing cost and latency, and making smaller models smarter through training on targeted examples.

getkiln.ai8 min read

04LAUNCHES & TOOLS

Sponsored

KNOCK: INFRASTRUCTURE TO SEND PRODUCT MESSAGING

Building, managing, and scaling cross-channel notifications gets complicated fast. Knock [10] is a single API for managing messages across email, in-app, Slack, push, and SMS. Plus, a visual workflow builder and template editor anyone can use. All with observability, like you built it in-house. Send 10k notifications per month for free [10].

knock.appSponsor

MCP SERVER IN BASH

`mcp-server-bash-sdk` is a lightweight implementation of a Model Context Protocol (MCP) server in Bash. It provides a zero-overhead alternative to other MCP server implementations by using Bash and `jq` for JSON processing.

github.comGitHub repository

CAP

Cap is a fast, lightweight, open-source CAPTCHA alternative that uses SHA-256 proof-of-work instead of tracking or fingerprinting. It has a tiny JavaScript widget, zero-dependency server, optional CLI, Docker-based standalone mode, and middleware for frameworks like Express, Hono, and Elysia.

github.comGitHub repository

05MISCELLANEOUS

ROOT SHELL ON CREDIT CARD TERMINAL

This dev reverse-engineered a Worldline Yomani XR credit card terminal and found it had surprisingly weak security despite hardware tamper protections. He discovered a root shell accessible via a debug port, even from outside the device without triggering tamper detection. However, the vulnerable Linux system appears isolated from the secure processor handling sensitive card data, which limits the potential damage.

stefan-gloor.ch11 min read

HOW GENERATIVE ENGINE OPTIMIZATION (GEO) REWRITES THE RULES OF SEARCH

Generative Engine Optimization (GEO) is a new paradigm shifting from traditional SEO's focus on page rank to language models and how content is referenced in AI-generated answers. This new approach prioritizes well-organized and meaningful content that language models can easily extract and reproduce, requiring brands to optimize for model relevance rather than just search engine rankings.

a16z.com8 min read

ESLINT V9.0.0: A RETROSPECTIVE

ESLint v9.0.0 was released in April 2024 with a new configuration system, but its launch faced initial negative feedback from users due to numerous breaking changes, such as the combination of the new configuration system and rule API changes. While the ESLint team provided documentation, users found it overwhelming and preferred automated tooling for upgrades. The lessons learned include prioritizing smaller, more frequent releases, focusing on tooling over documentation, and improving error message context.

eslint.org11 min read