Blog

Notes from the build

Announcements, engineering notes, and migration guides as we build simple managed services in the App Engine tradition.

How to Run a Docker Image as a Background Job Over a REST API

One POST starts your image as a background job and returns an id. Here is the whole shape — launch, poll or callback, where the output goes — and the three limits that decide whether it fits your workload.

What Happened to App Engine's Legacy Bundled Services (and What Replaces Them)

A field guide to App Engine's bundled services — which were shut off, which quietly survived, and which never had a standalone successor — with a service-by-service map of what you can use instead in 2026.

How to Automate a Windows Desktop App (and Let an AI Agent Write the Script)

Enrol a Windows machine, drive a legacy application by its accessibility tree, and hand the hard part — working out the selectors — to an AI agent that can see the running app over MCP.

Usage-Based vs Cluster Pricing for Search: Which Actually Wins?

A rented search node has a floor but no marginal cost; usage pricing has no floor but charges per query. Here is the arithmetic for both, the crossover point, and how to tell in five minutes which side of it you are on.

Adding Realtime Notifications to a Web App

A notification bell that updates without a refresh is three moving parts: a token endpoint on your server, one WebSocket in the browser, and an HTTP publish when something happens. Here is the whole build, plus the part most guides skip — where the notifications actually live.

Why Keyset Pagination Beats Offset — Especially for Your Bill

Offset pagination re-scans every row it skips, so walking a collection costs roughly the square of its size. Keyset pagination stays flat. Here is the query shape, the arithmetic, and the trade-offs.

A JSON Document Store That Doesn't Fight Your Schema

altengine's Datastore API takes any JSON object, with no declared property types and no index file to maintain — and still keeps every query index-served, joined by key, and strongly consistent. Here is how it works and what it costs.

Faceted Search, Explained (with a Working Example)

Facets are the counts next to a filter — 'Jackets (42)'. Here is what separates a facet from a filter, a real faceted query and response over the Search API, and what facets actually cost.