D1 has no transactions — using client.batch() for multi-step writes
Cloudflare D1 has no BEGIN/COMMIT. The official answer is client.batch(), but it has four subtle rules worth writing down. Worked example from DuitGee's fund-transfer handler.
Integrate Better Auth and Google One Tap with Hono and SvelteKit
A walkthrough of wiring Better Auth with Google One Tap into a SvelteKit app, using Hono for the API layer and Cloudflare D1 + Workers for the backend.
Better Auth + better-sqlite3 under pnpm — "Could not locate the bindings file"
Running Better Auth's schema generator under pnpm throws "Could not locate the bindings file" because pnpm's strict isolation skips native module builds by default. Here's why, and the one-line fix.
Drizzle with Cloudflare D1 — the everyday usage guide
The read, write, and soft-delete patterns I reach for every day when working against Cloudflare D1 through Drizzle — dynamic filters, joins, RETURNING, audit fields, and the sql template. Worked examples from DuitGee.
Setting up D1 Database with Drizzle in a Hono Cloudflare Worker App
This guide covers configuring a D1 database using Drizzle in a Hono app deployed using Cloudflare Workers.