BetaWeekly digests are a beta — we're trying something new. Feedback welcome.
PostHog in one command, and a breaking EAS observe realignment
September 7–13, 2026
Expo shipped a one-command PostHog integration for EAS apps and a breaking EAS CLI v24.0.0 that realigns the observe commands, while SvelteKit's 3.0 pre-releases swept a builder API change across every adapter.
Expo makes analytics and observability a one-liner
The week's biggest ergonomic win came from Expo's one-command PostHog integration. What used to be a small project in itself — creating a PostHog org, creating a project, installing three or four packages depending on which features you wanted, wiring up a config plugin, copying keys between browser tabs — is now eas integrations:posthog:connect. Existing PostHog users get a browser prompt to link an org first. The interesting part is the depth of the wiring: EAS Workflows can emit posthog_capture_event events with eas/ prefixed names that link back to Expo, and PostHog can break funnels down by update ID, which turns OTA update rollouts into something you can actually measure rather than guess at.
On the tooling side, EAS CLI v24.0.0 is the release to read carefully before upgrading. The eas observe:* commands now align with the renamed Observe GraphQL schema: JSON output switches from metricName/metricValue to name/value, log events use name instead of eventName, and eas observe:events lists user-defined events only — exceptions moved out to the new eas observe:errors. If you have scripts parsing that JSON, they break. The same release adds eas channel:protect/eas channel:unprotect for EAS Update channel protection and lcd_width, lcd_height, lcd_density inputs for the Android emulator display.
The rest of the EAS CLI line moved fast in support. v24.2.0 added eas workflow:insights for run counts, success rate versus the previous period, and a per-workflow breakdown, plus workflow:insights:maestro for Maestro pass and flake rates; both take --json. v24.1.0 introduced --egress local for simulator sessions, forwarding localhost and 127.0.0.1 entries from the simulator host's loopback so dev server URLs just work — followed by two quick polish fixes (v24.1.1, v24.1.2) that stopped the CLI nagging users to run eas simulator:egress when the client was already in the same terminal. v24.3.0 added a shared protocol for sandbox daemon commands.
SvelteKit 3.0 pre-releases land a builder API change everywhere
The SvelteKit 3.0 pre-release train shipped a coordinated breaking change across the whole adapter family: builder.generateManifest is replaced by builder.generateServerInstance and builder.manifest, and env vars are now populated before instrumentation.server.js is evaluated. That landed in adapter-vercel, adapter-node, adapter-netlify, and adapter-cloudflare. Cloudflare's release goes further, dropping the platform object in favor of emulating the cloudflare:workers module. Core @sveltejs/kit@3.0.0-next.27 also errors when a client-requested single-flight mutation isn't respected by the server, and removes the Server constructor and SSRManifest from public types. If you maintain an adapter or lean on instrumentation hooks, this is the week to start reading diffs. Elsewhere, adapter-bun now requires Bun 1.4, and adapter-auto added zero-config deployment support for Render.
Next.js canaries: caching and cache correctness
Next.js canary work this week was less about features than about making use cache behave under pressure. 16.4.0-canary.23 extended durable use-cache entries to client components, canary.26 fixed duplicate background revalidation for use cache and stopped next/image from sharing the requester's socket with its internal image response, and canary.20 fixed a turbo-tasks backend hang where strongly consistent reads stalled on a canceled task. A batch of those fixes was backported to stable in 16.3.5, which also skips 0-byte entries in the next/image disk LRU cache and rejects empty images on read/write — worth taking if you've seen odd image cache behavior. Smaller canary items: canary.21 extended instant cache validation to caches excluded from prerenders, canary.22 added .resolve and a version field to the loaders API, canary.25 enabled React browser bailout by default, and canary.24, canary.27, and canary.28 handled Turbopack HMR and payload cleanups, including an experimental imgOptMozjpeg config.
Releases covered24
- Expo adds one-command PostHog integration for EAS apps
- EAS CLI v24.0.0 realigns observe commands and adds channel protection
- EAS CLI v24.2.0 adds workflow:insights commands for run metrics
- EAS CLI v24.1.0 adds local egress support for simulator sessions
- EAS CLI v24.1.1 fixes spurious egress prompt for simulator:start
- EAS CLI v24.1.2 shortens local egress banner in simulator:start
- EAS CLI v24.3.0 adds shared protocol for sandbox daemon commands
- Next.js v16.4.0-canary.23 adds durable use-cache in client components
- Next.js v16.4.0-canary.26 fixes image socket sharing and duplicate cache revalidation
- Next.js v16.4.0-canary.20 fixes canceled-task hang in turbo-tasks backend
- Next.js v16.3.5 fixes image cache and use cache prerender signal
- Next.js v16.4.0-canary.21 adds instant cache validation for excluded prerenders
- Next.js v16.4.0-canary.22 adds .resolve and version to loaders API
- Next.js v16.4.0-canary.25 adds React browser bailout by default
- Next.js v16.4.0-canary.24 fixes initial Turbopack HMR handling
- Next.js v16.4.0-canary.27 adds experimental imgOptMozjpeg config and lazy dynamic imports
- Next.js v16.4.0-canary.28 updates Turbopack result payloads