The naive version of a scheduled Discord bot is a `setTimeout` per upcoming event. It works in testing and falls apart in production for three separate reasons. Here is a design that does not.
## Why setTimeout per event fails
**Restarts wipe everything.** Your host redeploys, the process restarts...
Every hook in this series so far has been a passenger. `useActionState` rides inside a Transition and reports back the result. `useOptimistic` rides inside one and shows you a preview before the real answer lands. `useFormStatus` doesn't even ride, it just reads a status from whoever else is driving...
I built a Chrome extension called **Site Bomb**. It does exactly one thing: you drop little bombs anywhere on a webpage, and the text near the blast gets physically blown apart, letter by letter.
It is completely useless. It is also genuinely satisfying when you're stressed.
{% embed https://www.y...
The three-layer model works. Part 1 of this series is the invoice incident that proved it. Part 2 is the proxy.ts matcher gaps that fail silently. Part 3 is the mutation-layer auth check that gets skipped even when everything else looks solid. My kit implements this in Route Handlers rather than Ser...
---
title: I built an AI Chrome extension with zero backend cost — here's the exact architecture
published: true
tags: chrome, javascript, ai, webdev
---
You want to add AI to your Chrome extension.
The obvious path: spin up a Node.js server, hold a master API key, charge users monthly, eat the AI...
*How I built a gamified, infinite-scroll video installation for the TIAT "Slop Epistemologies" exhibition—and optimized heavy web media to run smoothly on a $15 single-board computer.*
---
![Image description](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/ggrgpoygdu3lanpj41fg....
Lately every other team I talk to is moving off Selenium Java and onto Playwright with JS/TS. Cool. But when I ask *why*, half the answers are vague. "It's faster." "Everyone's doing it." Fair, but let's actually dig into it.
## The "just let AI do it" moment
So management calls a meeting. Decisio...
I keep seeing it on code reviews. Proxy solid. Auth on every Server Component. Header direction correct.
Then I look at the Server Actions.
No auth check. Not one. The page that renders the button is protected. The action behind the button accepts whatever the caller sends -- any valid session, a...