Horacio Herrera @horacioh.com · 26/09/2026Watched Devin prompt itself to implement Stripe. The prompt barely mentioned any technical steps. It described what the user should be able to DO, not what to build. Here’s my take 👇 seed.horacioh.com/short-posts/...seed.horacioh.comLearning from seeing Devin prompting itselfhoracio 000
Horacio Herrera @horacioh.com · 12/08/2026So happy I learned about state machines & the actor model years ago. It's SO IMPORTANT in the era of AI agents and human/agent collaboration ❤️❤️❤️ AI agents are actors: messages, internal state, transitions. The actor model wasn't invented for AI but it might as well have been. 010
Horacio Herrera @horacioh.com · 11/08/2026🎬 Próximamente: vídeos cortos en español con mis features favoritas + meetup de Devin users en Barcelona. ¿Qué quieres que te enseñe de Devin? Te leo 👇 seed.horacioh.com/writing/me-u...seed.horacioh.comMe uno al programa de Devin Ambassadors 000
Horacio Herrera @horacioh.com · 11/08/2026Lo uso en producción, a diario: @seed.hyper.media — mi plataforma de comunidades en red GymClass — herramienta para academias de artes marciales (horarios, pruebas, link-in-bio) Jean OSS — tooling open source 110
Horacio Herrera @horacioh.com · 11/08/2026Me uno oficialmente como @DevinAI Ambassador 🎉 Llevo meses usando Devin en proyectos reales, no en demos. Ahora quiero compartir esa experiencia. Quick intro de lo que hago con él 👇 100
Horacio Herrera @horacioh.com · 11/08/2026The hard part of building software is never the code. It's modeling what should happen — and what shouldn't. What's something in your projects where the *model* mattered more than the *implementation*? Reply with yours ↓ 000
Horacio Herrera @horacioh.com · 10/08/2026I used to test components. Now I test state machines. Component tests check 10 things you don't care about (React, DOM, CSS, timing). Machine tests ask one thing: given state + event, did it transition? You already have a state machine — make it explicit. 000
Horacio Herrera @horacioh.com · 08/08/2026Yep. On my case, what I write will get to 10 people if I’m lucky! So I just stop bothering about polishing too www.moll.dev/notes/justwr...moll.devJust Write - Moll.devJust WriteMay 17, 2025 • 3 minute readEDIT: In the interest of transparency, I did have to edit this post. I originally mistyped “2025-05-17” as “202-05-17” in the post metadata which broke the… 010
Horacio Herrera @horacioh.com · 07/08/2026AI didn't just make code cheaper. It made maintainer attention more expensive. When anyone can generate a PR in 30 seconds, the bottleneck shifts: the scarce resource is review capacity, not code production. The best OSS contributions compress maintainer attention. 110
Horacio Herrera @horacioh.com · 06/08/2026Local-first is not just offline mode. It changes who owns the product relationship: your work starts with you, survives the network, and syncs when the system catches up. That shift affects architecture, UX, and trust. It's a philosophy, not a feature. 000
Horacio Herrera @horacioh.com · 05/08/2026Block 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. 000
Horacio Herrera @horacioh.com · 04/08/2026AI 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. 000
Horacio Herrera @horacioh.com · 03/08/2026Yes that's the default. and that is my thought after trying the opposite. Thanks for sharing Ayu! long time since our last chat! 110
Horacio Herrera @horacioh.com · 03/08/2026Help me settle this — what feels right to you? • Formatting resets on every Enter (clean slate) • Formatting always persists (whatever was active carries over) • Only some styles persist (tell me which ones) 100
Horacio Herrera @horacioh.com · 03/08/2026Bold carries over when I just wanted a heading. Italic keeps going when I wanted one emphasized phrase. Font family? Absolute chaos. Some styles should persist. Some shouldn't. Where's the line? 100
Horacio Herrera @horacioh.com · 03/08/2026Our 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. 100
Horacio Herrera @horacioh.com · 03/08/2026Who's building stuff on top of NVIDIA Brev? developer.nvidia.com/brevdeveloper.nvidia.comNVIDIA BrevRun, build, train, deploy, and scale AI models with GPU on the cloud. 000
Horacio Herrera @horacioh.com · 03/08/2026Your 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. 000
Horacio Herrera @horacioh.com · 01/08/2026Nick Nisi at WorkOS deleted 95% of their agent skills and got better results. The harness did the work. And a harness that isn't backed by explicit states and transitions is just a pile of if/else statements you're pretending is architecture. www.youtube.com/watch?v=vy7o...youtube.comHow I deleted 95% of my agent skills and got better results — Nick Nisi, WorkOSWorkOS 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… 000
Horacio Herrera @horacioh.com · 01/08/2026If you believe you can build a really good agent harness without relying on state machines, you are wrong.youtube.comHow I deleted 95% of my agent skills and got better results — Nick Nisi, WorkOSWorkOS 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… 100
Horacio Herrera @horacioh.com · 01/08/2026Autosave 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. 000
Horacio Herrera @horacioh.com · 31/07/2026Not really. If I need to be more explicit I dictate. but generally I speak with my agents the same way regardless the device I'm interacting from 000
Horacio Herrera @horacioh.com · 31/07/2026This document is GOLD github.com/ddoemonn/int...github.cominterior/DESIGN.md at main · ddoemonn/interiormicro-interactions for react, built for the half-second after a click - ddoemonn/interior 100
Horacio Herrera @horacioh.com · 31/07/2026My 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. 010
Horacio Herrera @horacioh.com · 31/07/2026Boolean flags are fine until the product starts having memory. `isLoading` + `isError` + `isSuccess` + `isSaving` + `isRetrying` + `wasCancelled` = a state machine you're pretending isn't one. 000
Horacio Herrera @horacioh.com · 30/07/2026I 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. 100
Horacio Herrera @horacioh.com · 23/07/2026We open-sourced a simplified version of the pattern. Check out the PR → github.com/seed-hyperme... And if you're dealing with editor complexity, read about XState + TipTap.github.comPull requests · seed-hypermedia/seedDesktop+Web app for self-publishing, powered by the open Hypermedia protocol - Pull requests · seed-hypermedia/seed 020
Horacio Herrera @horacioh.com · 23/07/2026The lessons: 1️⃣ Not every side effect belongs in useEffect 2️⃣ Extract hooks early — one concern = one hook 3️⃣ Let your state machine drive data flow, not effects 4️⃣ If you can count your effects on two hands, it's time to refactor 110
Horacio Herrera @horacioh.com · 23/07/2026RESULT: Before: 10 useEffects with multiple interrelated deps After: 2 useEffects that are driven by the document machine 100
Horacio Herrera @horacioh.com · 23/07/2026Step 5: Merge the rest into a single bridge effect. The remaining bits: - Register imperative handlers - Expose _suppressChangeRef for programmatic updates - Notify parent of editorReady All go in ONE effect that mounts once and cleans up on unmount. 100
Horacio Herrera @horacioh.com · 23/07/2026Step 4: Use the state machine as the source of truth. We already had an XState doc machine for managing edit state. But it wasn't pushing content to the editor. We added an action that fires on document.remoteUpdate. Now the machine drives content sync, not an effect. 100
Horacio Herrera @horacioh.com · 23/07/2026Step 3: Extract atomic hooks. We pulled out: - useReadOnlyClickToEdit — handles click-to-edit with mousedown tracking - useBlockHighlight — block hover highlight state - useBlockBorderDebug — debug border toggle Each hook owns ONE concern. Testable. Clean. 100
Horacio Herrera @horacioh.com · 23/07/2026Step 2: Kill the fake effects. Turns out 3 were really just event handlers disguised as effects. - "Update editor content when prop changes" → should be a ref + imperative handler - "Handle click-to-edit" → literal DOM event listener They're events. Treat them as such. 100
Horacio Herrera @horacioh.com · 23/07/2026Step 1: Identify what each effect actually does. We categorized them: - Bridge effects (editor ↔ outside world) - Sync effects (keep state in sync) - Debug/Dev effects - Event handlers that shouldn't be effects at all 100
Horacio Herrera @horacioh.com · 23/07/2026The problem: every feature added another useEffect. - Sync content? useEffect. - Handle focus? useEffect. - Track drafts? useEffect. - Debug overlay? useEffect. After a while, effects are running in non-deterministic order and stepping on each other. 100
Horacio Herrera @horacioh.com · 23/07/2026We 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. 110
Horacio Herrera @horacioh.com · 11/07/2026I guess that if I’m using @coolify to deploy my side projects, I don’t need Shipnode right? shipnode.devshipnode.devShipNode — Zero-downtime Node.js deployments over SSHShipNode deploys Node.js apps to your own Ubuntu or Debian server over SSH with zero-downtime releases, PM2, Caddy HTTPS, health checks, and rollbacks. 000
Horacio Herrera @horacioh.com · 10/07/2026Devin got mentioned in the Cal Newport podcast open.spotify.com/episode/3lKm... cc @cognitionopen.spotify.comDo Managers Actually Understand AI? (I’m Not So Sure.) | AI Reality CheckDeep Questions with Cal Newport · Episode 010
Horacio Herrera @horacioh.com · 06/07/2026Just because something can be automated doesn't mean it's painful enough for people to want it automated. Before building a solution, validate that you're solving a real pain—not just removing a repetitive task. 000
Horacio Herrera @horacioh.com · 06/07/2026I 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 👇 110
Horacio Herrera @horacioh.com · 05/07/2026The catch: good prompting is essential. I treated it like a skilled engineer who just joined — capable, but needs clear context and direction. Wrote up the full breakdown — what worked, the caveats, and who I think it's for: seed.horacioh.com/writing/how-...seed.horacioh.comHow I Built a Full Booking System as a Side Project — With Devin as My Engineering Partner 010
Horacio Herrera @horacioh.com · 05/07/2026I used Devin (devin.ai) to build a full booking system for my martial arts academy. Not a demo — a production app with real users. I reviewed PRs from my phone, merged features between meetings. 30+ PRs shipped in a month while working my day job.devin.aiDevinDevin is an AI coding agent and software engineer that helps developers build better software faster. Parallel cloud agents for serious engineering teams. 100
Horacio Herrera @horacioh.com · 05/07/2026Considering 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. 🧵 100