Sign in

Harris Raftopoulos

@harrisrafto.eu
934 followers 98 following 437 posts

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

PostsRepliesMedia
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 06/10/2026
Decide with Jev: Three Questions in One Request with the Laravel AI SDK posted by @harrisrafto.eu laravel-news.com/decide-with-...
laravel-news.com
Decide with Jev: Three Questions in One Request with the Laravel AI SDK
A single yes or no doesn't tell you much about a draft. In this episode of Decide with Jev, we ask Jev three questions in one request and get back a Boolean, a…
011
Harris Raftopoulos @harrisrafto.eu · 06/10/2026
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.
000
Harris Raftopoulos @harrisrafto.eu · 06/10/2026
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.
110
Harris Raftopoulos @harrisrafto.eu · 04/10/2026
And the status page says DATA UNAVAILABLE instead of freezing on old data. 13 fixes in total, worth the upgrade even if your cache never blinks. github.com/harris21/laravel-fuse/releases/tag/v0.11.0
github.com
Release v0.11.0 · harris21/laravel-fuse
What'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...
000
Harris Raftopoulos @harrisrafto.eu · 04/10/2026
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.com
Release v0.11.0 · harris21/laravel-fuse
What'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...
100
Harris Raftopoulos @harrisrafto.eu · 04/10/2026
🔥 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.
100
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 25/09/2026
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.
112
Harris Raftopoulos @harrisrafto.eu · 25/09/2026
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.
000
Harris Raftopoulos @harrisrafto.eu · 25/09/2026
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.
100
Harris Raftopoulos @harrisrafto.eu · 25/09/2026
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.
112
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 23/09/2026
Laravel AI SDK 1.0 Adds Classification and Tool Approvals posted by @ericlbarnes.com laravel-news.com/laravel-ai-s...
laravel-news.com
Laravel AI SDK 1.0 Adds Classification and Tool Approvals
Laravel AI SDK 1.0 is out with Jev classification, Vercel Chat and AG-UI streaming, approvable tool calls, and per-step agent middleware.
054
Harris Raftopoulos @harrisrafto.eu · 17/09/2026
My talk on Advanced Circuit Breakers for Laravel from @laravellive.dk is now live! Go give it a watch! youtu.be/YvfWLyHy6k4
youtu.be
Advanced Circuit Breakers for Laravel - Harris Raftopoulos - Laravel Live Denmark 2026
YouTube video by Laravel Live Denmark
011
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 24/08/2026
🔥 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.
111
Harris Raftopoulos @harrisrafto.eu · 24/08/2026
github.com/harris21/lar...
github.com
Release v0.10.0 · harris21/laravel-fuse
What's Changed New opt-in OldestJobProbe recovery strategy. At Laravel Live Denmark I was asked where the test job goes when a half-open circuit probes: it goes to the back of the queue, and a fai...
000
Harris Raftopoulos @harrisrafto.eu · 24/08/2026
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.
100
Harris Raftopoulos @harrisrafto.eu · 24/08/2026
🔥 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.
111
Harris Raftopoulos @harrisrafto.eu · 21/08/2026
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!
010
Harris Raftopoulos @harrisrafto.eu · 24/07/2026
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!
000
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 08/07/2026
Ship AI with Laravel: I Tricked My Own AI Into Leaking Everything posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: I Tricked My Own AI Into Leaking Everything - Laravel News
First I socially engineer our own support agent into leaking its full system prompt and another customer's data. Then we lock it down with four layers of defense: a hardened prompt, a local LLM guard running on Ollama, tool-level authorization, and output filtering. The finale of Ship AI with Laravel.
011
Harris Raftopoulos @harrisrafto.eu · 08/07/2026
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 👇
000
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 30/06/2026
Ship AI with Laravel: Test Your AI System with Zero API Calls posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: Test Your AI System with Zero API Calls - Laravel News
We've built agents, tools, a knowledge base, and streaming. Now how do you test it without hitting OpenAI on every run? In this episode we test the entire system with Pest and zero API calls using the SDK's faking system. Fast, deterministic, free.
011
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 30/06/2026
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 👇
111
Harris Raftopoulos @harrisrafto.eu · 30/06/2026
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 👇
111
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 24/06/2026
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 👇
001
Harris Raftopoulos @harrisrafto.eu · 24/06/2026
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 👇
001
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 18/06/2026
Ship AI with Laravel: Give Your AI Agent Live Web Search posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: Give Your AI Agent Live Web Search - Laravel News
The agent can answer from our knowledge base, but not about things that change by the minute like shipping delays. In this episode we add the WebSearch tool so the agent can pull live information from the web, with a locked-down allow list so it only hits domains we trust.
021
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 18/06/2026
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 👇
022
Harris Raftopoulos @harrisrafto.eu · 18/06/2026
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 👇
022
Harris Raftopoulos @harrisrafto.eu · 28/05/2026
Give it a spin (maybe a star ⭐️) and let me know what you think!
000
Harris Raftopoulos @harrisrafto.eu · 28/05/2026
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.com
GitHub - harris21/laravel-aegis: Scaffolding and validation helpers for Laravel Value Objects
Scaffolding and validation helpers for Laravel Value Objects - harris21/laravel-aegis
031
Harris Raftopoulos @harrisrafto.eu · 19/05/2026
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 👇
000
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 06/05/2026
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 👇
021
Harris Raftopoulos @harrisrafto.eu · 06/05/2026
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 👇
021
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 27/04/2026
Ship AI with Laravel: RAG with Embeddings and pgvector in Laravel 13 posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: RAG with Embeddings and pgvector in Laravel 13 - Laravel News
Your agent looks up orders and remembers conversations but invents policies when customers ask about returns or shipping. In this episode we build a searchable knowledge base with embeddings and pgvector so the answers come from real documentation.
031
Harris Raftopoulos @harrisrafto.eu · 27/04/2026
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 👇
020
Harris Raftopoulos @harrisrafto.eu · 08/04/2026
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 👇
120
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 01/04/2026
Ship AI with Laravel: Smart Ticket Triage with Structured Output posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: Smart Ticket Triage with Structured Output - Laravel News
Your support agent can talk, but it responds in prose. You can't route a ticket or track sentiment from a paragraph. In this episode we build a TicketClassifier that returns structured JSON with category, priority, sentiment, and a summary. Clean data from messy customer messages.
011
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 01/04/2026
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 👇
031
Harris Raftopoulos @harrisrafto.eu · 01/04/2026
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 👇
031
Reposted by Harris Raftopoulos
Laravel News @laravelnews.com · 25/03/2026
Ship AI with Laravel: Building Your First Agent with Laravel 13's AI SDK posted by @harrisrafto.eu laravel-news.com/ship-ai-with...
laravel-news.com
Ship AI with Laravel: Building Your First Agent with Laravel 13's AI SDK - Laravel News
Laravel 13 ships with a first-party AI SDK. In the first episode of Ship AI with Laravel we install it, scaffold a support agent, and get it responding to customers in about 10 minutes. One agent class, a few attributes, and it talks back.
032
Harris Raftopoulos @harrisrafto.eu · 25/03/2026
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 👇
030
Harris Raftopoulos @harrisrafto.eu · 03/03/2026
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
041
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 25/02/2026
What happens when Stripe goes down at 11 PM on a Friday? I built Fuse for Laravel to fix it, presented it at @laracon.in , and now here's the full breakdown.
022
Harris Raftopoulos @harrisrafto.eu · 25/02/2026
What happens when Stripe goes down at 11 PM on a Friday? I built Fuse for Laravel to fix it, presented it at @laracon.in , and now here's the full breakdown.
022
Reposted by Harris Raftopoulos
Ludovic Guénet @laraveljutsu.bsky.social · 22/02/2026
Vos jobs Laravel qui fail en cascade à cause d'une API down ? 😤 Laravel Fuse (par @harrisrafto.eu) implémente le Circuit Breaker pattern pour stopper automatiquement l'exécution de vos jobs quand un service tiers est indisponible. Nouvelle vidéo 👇 youtu.be/-eTnYPBuQrg
youtu.be
Laravel Fuse : Protégez vos jobs des APIs qui tombent (Circuit Breaker Pattern)
YouTube video by Laravel Jutsu
032
Reposted by Harris Raftopoulos
Coder Manjeet @codermanjeet.bsky.social · 15/02/2026
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.com
Laravel Fuse: Circuit Breakers for Your Queue
Hey Laravel folks! Imagine this: your queue workers are happily chugging along, sending emails via SendGrid or charging customers through…
121
Harris Raftopoulos @harrisrafto.eu · 12/02/2026
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 🔥
010
Harris Raftopoulos @harrisrafto.eu · 12/02/2026
And we're not slowing down! 🔥 Our next Laravel Greece meetup is coming to Athens on March 19th. We're currently looking for speakers so if you've got something cool to share with the community, reach out! Would love to hear from you 🙌 RSVP: luma.com/89sprk8x
luma.com
Laravel Greece - Athens March 2026 · Luma
010
Harris Raftopoulos @harrisrafto.eu · 12/02/2026
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.com
Laravel Greece - Thessaloniki February 2026 · Luma
At 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…
100
Reposted by Harris Raftopoulos
Harris Raftopoulos @harrisrafto.eu · 10/02/2026
Just published the episode 18 of Laravel In Practice 🎉 We go through our dashboard and fix a weird jumping issue! Video's here: youtu.be/jsIhdY1Wyp0 Let me know what you think!
youtu.be
Why Your Livewire Dashboard Jumps (And How to Fix It) - Laravel In Practice EP18
YouTube video by Laravel News
021