Block identity is the most underrated problem in document editors. A block isn't just content — it's position, children, selection, version. Move it, split it, merge it — did the identity survive? Most editors miss this for months.
Horacio Herrera
@horacioh.com
Building Seed (https://bsky.app/profile/seed.hyper.media), give people freedom to collaborate by saving the web!
AI made code cheap. It didn't make knowing what to build easier. The bottleneck was never typing. It was understanding the problem, modeling abstractions, knowing what the user needs. AI didn't kill coding — it made visible what the real job always was.
Our designer asked me to make text formatting persist when you press Enter — if you're writing in bold and hit Enter, the next line stays bold. My first reaction: "yeah, that makes sense." Then I actually used it. Nope.
Who's building stuff on top of NVIDIA Brev? developer.nvidia.com/brev
NVIDIA Brev
Run, build, train, deploy, and scale AI models with GPU on the cloud.
developer.nvidia.com
Your framework doesn't matter as much as your model. React, Vue, Svelte — they all render state. The hard part is knowing what states exist, which transitions are valid, and what happens when things go wrong. Good architecture is just good modeling with a nicer name.
If you believe you can build a really good agent harness without relying on state machines, you are wrong.
How I deleted 95% of my agent skills and got better results — Nick Nisi, WorkOS
WorkOS will be back for the World's Fair next week! see https://ai.engineer/wf and use YOUTUBEPROMO for new tickets only. Join 6000 AI engineers at the "Superbowl of AI"! --- Claude would fake…
youtube.com
Autosave looks simple until it isn't. "Just debounce a useEffect" works for v1 — then races, stale saves, and lost work crash the party. At that point the real model is not "an effect." It's a state machine. Explicit states + transitions = no stale IDs, no impossible UI.
My coding setup right now: Jean on local (web access), Jean on a server, Devin in the cloud. All reachable from a phone, tablet, or laptop through Tailscale. I could be anywhere. The agents don't know and they don't care. They're just working.
Boolean flags are fine until the product starts having memory. `isLoading` + `isError` + `isSuccess` + `isSaving` + `isRetrying` + `wasCancelled` = a state machine you're pretending isn't one.
I shipped 3 PRs this week while I was at BJJ. My agent wrote them. I reviewed when I got back. The code was fine. Not perfect — but neither is the code I write at 2am. The difference is I was on the mats, not at a keyboard.
We had 10 useEffect calls in a single React component. Our TipTap document editor was a mess of side effects fighting each other. Here's how we went from 10 → 2 by embracing state machines and atomic hooks.
I guess that if I’m using @coolify to deploy my side projects, I don’t need Shipnode right? shipnode.dev
ShipNode — Zero-downtime Node.js deployments over SSH
ShipNode deploys Node.js apps to your own Ubuntu or Debian server over SSH with zero-downtime releases, PM2, Caddy HTTPS, health checks, and rollbacks.
shipnode.dev
Devin got mentioned in the Cal Newport podcast open.spotify.com/episode/3lKm... cc @cognition
Do Managers Actually Understand AI? (I’m Not So Sure.) | AI Reality Check
Deep Questions with Cal Newport · Episode
open.spotify.com
I built a cron job so my wife wouldn't have to check a website every day. When I was almost done, she said: "You don't have to. I'm already used to doing it." That was a good reminder 👇
Considering Devin? Here's my honest experience after a month of real use. I'm a cofounder working full-time. I had a clear side project idea but zero time to build it myself. 🧵
A common refactor mistake: extracting JSX first. Splitting into <Header /> <Body /> <Footer /> helps readability — but the real complexity stays buried inside Body. Better order: extract rules → test rules → then split components if JSX is still noisy.
Rich text editor bugs hide in tiny interactions: click an image caption, type text, press Enter, verify the image wasn't deleted, check the next paragraph gets focus. That one test is worth 100 snapshots. Test the interaction.
Autosave looks simple until it isn't. "Just debounce a useEffect" works for v1 — then races, stale saves, and lost work crash the party.
New Post! seed.horacioh.com/writing/depl... Because Seed is open source, you are able to fork it and make it yours. Here I teach you how I did it for my own site.
Deploy a Seed Site From Your Own Fork
horacio
seed.horacioh.com
Today I will show what we are doing with agents in @seed.hyper.media come and join us! luma.com/xauvgrx6
4 booleans = 16 possible combinations. Only 7 are valid. The other 9 are bugs waiting to happen. Why I model UI workflows as state machines: seed.horacioh.com/writing/butt...
A rich text editor is a document system with a schema, transactions, selections, and identity — not a decorated <textarea>. That's why I built Seed's editor on ProseMirror. Full writeup: seed.horacioh.com/writing/rich...
AI made code cheap but didn't make knowing what to build any easier. The bottleneck was never typing — it was understanding, modeling, and product sense. Expanded my thoughts: seed.horacioh.com/writing/ai-e...
A trust graph for OSS shouldn't be owned by any single platform — not GitHub, GitLab, or anyone else. Maintainer reputation shouldn't evaporate when you change forges. The graph has to be portable.
The big question: how does OSS change when plausible code is nearly free? My answer: contribution friction should scale with trust distance and change criticality. Full proposal here: seed.horacioh.com/writing/grad...