Harris Raftopoulos

Harris Raftopoulos

@harrisrafto.eu

Senior Software Engineer Staff & Educator @ Laravel News Co-organizer @ Laravel Greece Meetup Sharing PHP insights to elevate developers’ skills Subscribe to my newsletter: harrisrafto.eu

935 followers98 following438 posts

Pinned

Jev has been all over my feed. So instead of arguing about it, I put it to work in a real Laravel app. Episode 1 of Decide with Jev is out. We ask Jev if a draft matches its brief. It answers with a number, not a paragraph, so PHP can decide what happens next.

Your AI check says the draft looks great. Should your app publish it? I don’t think the model should make that call. New video out 🫡

Episode 2 of Decide with Jev is out. We ask Jev three questions about the same draft in one request: does it deliver the brief, what kind of text is it, and how clear are the steps? Each answer comes back in its own shape, from a simple yes or no to a score on a scale we define.

So when something changes, you know which part changed. And the questions don't wait for each other. Jev answers them in parallel, and PHP puts the answers together afterwards.

🔥 Fuse for Laravel v0.11.0 is out! What happens to a job when Fuse's own cache has a bad minute? Until now, a cache error while Fuse checked the circuit counted against the job. With the recommended $maxExceptions = 3, three of them could fail it for good while Stripe was up the whole time.

Now Fuse reports the error and releases the job, the same way it holds jobs while a circuit is open. Also in this release: a cache error after a successful job no longer fails it, which used to make a retry call the API twice.

github.comRelease v0.11.0 · harris21/laravel-fuseWhat's Changed A job keeps the outcome it actually had when Fuse can't record it. A cache error while counting a successful job used to fail it, so a queue with retries made the external call twic...

Jev has been all over my feed. So instead of arguing about it, I put it to work in a real Laravel app. Episode 1 of Decide with Jev is out. We ask Jev if a draft matches its brief. It answers with a number, not a paragraph, so PHP can decide what happens next.

Why does that matter? You can't write an if statement around a paragraph. You can write one around a number. High means the draft is a good match. Low means it isn't. Anything in the middle goes to a person, and the editor always makes the final call.

I'm not saying Jev is smarter than a chat model. For this kind of job, it just gives the right shape of answer. In this first episode we install the Laravel AI SDK, connect it to Jev, and test it on four drafts, including one that tries to trick it. Next up: three questions in one request.

Harris Raftopoulos reposted

🔥 Fuse for Laravel v0.10.0 is out! After my talk at Laravel Live Denmark, three different people asked me the same: when a half-open circuit runs its test job and it fails, does that job keep its place in the queue? It doesn't. release() sends it to the back, behind jobs that were queued after it.

🔥 Fuse for Laravel v0.10.0 is out! After my talk at Laravel Live Denmark, three different people asked me the same: when a half-open circuit runs its test job and it fails, does that job keep its place in the queue? It doesn't. release() sends it to the back, behind jobs that were queued after it.

The new OldestJobProbe strategy fixes this: the oldest held job becomes the probe and stays the probe until it succeeds, no matter how many workers you run. Also: three race fixes in the circuit breaker itself, found during that testing. Worth the upgrade even if you skip the new strategy.

Yesterday I gave my Advanced Circuit Breakers for Laravel talk here at @laravellive.dk and the response has been amazing! Thank you to everyone who found me to chat about Fuse for Laravel afterwards. Day 2 is underway, come say hi if we haven’t met yet!

New @laravelnews.com video is out! I built an invoicing app entirely inside a @zeropsio.bsky.social remote workspace, with Claude Code handling the infrastructure. Honestly the most fun I’ve had with a deploy pipeline in a while!

Harris Raftopoulos reposted

Episode 11 of Ship AI with Laravel is live, and it’s the finale! 11 episodes, from composer require to a secure, production-ready AI platform. Thanks for building along 👇

Harris Raftopoulos reposted

Harris Raftopoulos reposted

Episode 10 of Ship AI with Laravel is live! We've built agents, tools, a knowledge base, streaming, the whole thing. But how do you test code that calls an AI? This episode we test the entire system with Pest and zero API calls using the SDK's faking system. Come build with me 👇

Episode 10 of Ship AI with Laravel is live! We've built agents, tools, a knowledge base, streaming, the whole thing. But how do you test code that calls an AI? This episode we test the entire system with Pest and zero API calls using the SDK's faking system. Come build with me 👇

Harris Raftopoulos reposted

Episode 9 of Ship AI with Laravel is live! Everything works in dev, but what happens when OpenAI goes down at 2am? This episode we make it production ready. Come build with me 👇

Episode 9 of Ship AI with Laravel is live! Everything works in dev, but what happens when OpenAI goes down at 2am? This episode we make it production ready. Come build with me 👇

Harris Raftopoulos reposted

Harris Raftopoulos reposted

Episode 8 of Ship AI with Laravel is live! This episode we add the WebSearch tool so it can pull live info straight from the web. Locked down to the domains we trust, of course. Come build with me 👇

Episode 8 of Ship AI with Laravel is live! This episode we add the WebSearch tool so it can pull live info straight from the web. Locked down to the domains we trust, of course. Come build with me 👇

Just announced Aegis for Laravel on stage at Laravel Live Japan 2026! 🇯🇵🛡️ Scaffolding and validation for Value Objects. Wrap your primitives, validate at the boundary, and let one Artisan command write the class, cast, and test. It's open source and it's live now! github.com/harris21/laravel-aegis

github.comGitHub - harris21/laravel-aegis: Scaffolding and validation helpers for Laravel Value ObjectsScaffolding and validation helpers for Laravel Value Objects - harris21/laravel-aegis

Episode 7 of Ship AI with Laravel is live! This episode we fix that with streaming. The SDK has a one-line change from prompt to stream, and suddenly the response appears word by word in a Livewire chat UI as the agent generates it. Comes together really nicely 👇

Harris Raftopoulos reposted

Episode 6 of Ship AI with Laravel is live! Last episode we built semantic search from scratch. This time we let the AI provider host the vector store and we just plug into it with the FileSearch tool. Upload PDFs, full policy docs, anything you want. Come build with me 👇

Episode 6 of Ship AI with Laravel is live! Last episode we built semantic search from scratch. This time we let the AI provider host the vector store and we just plug into it with the FileSearch tool. Upload PDFs, full policy docs, anything you want. Come build with me 👇

Harris Raftopoulos reposted

Trying a new edit style for this one, curious what you think 👀 Episode 5 of Ship AI with Laravel is live! The agent could look up orders and remember conversations but kept inventing policies when customers asked about returns or shipping. Now the answers come from actual documentation 👇

Episode 3 of Ship AI with Laravel is live! The agent was making up answers when customers asked about their orders. Now it has tools that connect to the database and pull real data. Order lookups, customer history, actual records. No more guessing. Come build with me 👇

Harris Raftopoulos reposted

Harris Raftopoulos reposted

Episode 2 of Ship AI with Laravel is live! We build a TicketClassifier that turns messy customer messages into clean structured data. Category, priority, sentiment, summary. The agent reads the room now. Come build with me 👇

Episode 2 of Ship AI with Laravel is live! We build a TicketClassifier that turns messy customer messages into clean structured data. Category, priority, sentiment, summary. The agent reads the room now. Come build with me 👇

Harris Raftopoulos reposted

Episode 1 of Ship AI with Laravel is live! From composer require to a working support agent in about 10 minutes. We install the SDK, scaffold the agent, write the support instructions, and watch it respond to real customer messages. Come build with me 👇

Tokyo, here I come! Honestly can’t believe I get to speak at Laravel Live Japan 2026. From running meetups in Athens to taking the stage in Tokyo.. this one hits different. Such a great lineup to be part of and I’m so pumped to meet the Japanese Laravel community. See you all in May! laravellive.jp

Harris Raftopoulos reposted

Harris Raftopoulos reposted

Laravel Fuse: Circuit Breakers for Your Queue (by @harrisrafto.eu) adds real circuit breakers to your queue jobs. Fail fast, avoid backlog hell, and monitor everything with a status page. medium.com/p/laravel-fu... Free link pinned in first comment #Laravel #php #Coding #Programming

medium.comLaravel Fuse: Circuit Breakers for Your QueueHey Laravel folks! Imagine this: your queue workers are happily chugging along, sending emails via SendGrid or charging customers through…

This year I'm going all in on becoming a better storyteller 📚 Picked up "Made to Stick" and "Storyworthy", two books that I know will level up both my content and my public speaking. Time to put in the work 🔥

Thessaloniki, we're back! 🇬🇷 Our second Laravel Greece meetup in the city is happening on February 19th and we've got two awesome talks lined up. Greg Kosmidis on SaaS Prototyping with Filament and Dimitris Chatzopoulos on Prompting Security. Come hang out with us! RSVP: luma.com/xcd6j3dn

luma.comLaravel Greece - Thessaloniki February 2026 · LumaAt this first event of 2026 in Thessaloniki—and the first in a series of meetups launching in the city—we will talk about “Prompting Security” and “SaaS…