from/prod
← All companies

THE COMPANY INDEX TRACKED BLOG

Freek Van der Herten

Ideas, decisions, and lessons from the team.

murze.be (opens on the source site)
39Posts tracked
13 hours agoLatest publication
3.3Posts / month over the last 12 months

Latest writing

20 of 39 posts

★ Typed routes from Laravel to React with Wayfinder (opens on the source site)

I've been writing about There There a lot lately. It's a helpdesk we're building at Spatie, born from two decades of running our own customer support for our open source work and SaaS apps. After all that time being the customer of other helpdesks, we finally started on the one we actually wanted to use. Our take on AI here is to aim it at the support agent, not the customer. The human owns the conversation. The model makes the reply a little cleaner and a little faster. There There is in private beta, and you can apply for early access at there-there.app. We're building There There with…

Read at the source

★ Laravel AI SDK in practice: the agent behind There There (opens on the source site)

Over the past few weeks I've posted a couple of times about There There, the helpdesk we're building at Spatie. After two decades of running our own customer support, we decided to stop compromising on tools and build the one we actually want to use. A lot of the fun is on the AI side. We're not using it to replace support agents, we're using it to make them faster. The human reads the ticket, thinks, and clicks a button. The model pulls up relevant history, drafts a reply, tags the ticket, closes a duplicate. There There is in private beta right now, and you can apply for early access at…

Read at the source

★ Keeping Laravel and TypeScript in sync with data objects (opens on the source site)

At Spatie we build SaaS apps with Laravel on the backend and Inertia with React on the frontend. That split means two type systems have to agree about every payload that crosses between them. Laravel data going out, TypeScript picking it up. There There, the helpdesk we're building, is built exactly like that. Tickets, messages, members, custom sidebar sections, all of it crosses the bridge. We'd go insane maintaining those types by hand. So we don't. There There is in private beta right now, and you can apply for early access at there-there.app. Two Spatie packages make this painless.…

Read at the source

★ Exceptions that explain themselves (opens on the source site)

There There, the helpdesk we're building at Spatie, is a project of learned habits. Twenty-some years of writing Laravel apps has taught us which patterns pay off and which ones quietly rot. One that keeps earning its keep is a custom exception class for every domain error. This is a small pattern, but it's one of those things that makes a codebase nicer to live in. There There is in private beta right now, and you can apply for early access at there-there.app. Exceptions that explain themselves The conventional answer for a domain error is something like throw new…

Read at the source

★ Streaming AI replies from Laravel to React (opens on the source site)

A couple of posts back I walked through the agent and tools we built on top of the Laravel AI SDK for There There, the helpdesk we're putting together at Spatie. I ended that post on a small cliffhanger. We hand the agent off to a streaming service that turns the SDK's response stream into events the frontend can consume. That's this post. A quick reminder on our angle. After two decades of running our own customer support, we wanted a helpdesk where AI makes support agents faster, not one that tries to replace them. The human reads, thinks, and directs. The model drafts and retrieves in real…

Read at the source

Do I want it the most? (opens on the source site)

A short video by Justin Jackson on ambition, motivation, and the question of how much you really want something. It looks like a thoughtful prompt for anyone building or creating over the long term.

Read at the source

★ More Jev in There There: smart conditions and AI assignment (opens on the source site)

Recently I wrote about how we use Jev in There There to detect spam, bounces, and automatic replies. Jev reads an incoming email and answers questions we define up front. We keep the probabilities and decide in our own code what counts as a match. The cheap checks on mail headers still run first. That post ended with a promise that we'd find more uses for Jev. Here are two we have since added to There There: smart conditions for workflows, and automatic assignment to a team or person. Describing a workflow condition in plain language Workflows already let you match a subject, sender, or…

Read at the source

★ Detecting spam and auto-replies with Jev and the Laravel AI SDK (opens on the source site)

Yesterday Taylor announced that Jev support landed in the 1.x branch of the Laravel AI SDK. We started using it that same day for spam detection in There There. Let's take a look at what Jev is and how you can use it. How Jev is different from an LLM Jev is made by TypeSafe. An LLM generates text: you ask it something, it writes an answer, and if you want structured data back you have to ask for it and hope. Jev doesn't generate anything. You give it some state and a question, and it gives you back a number. TypeSafe calls these System One models. They read natural language like an LLM does,…

Read at the source

Privacy choices

Reading never requires analytics. These choices last 90 days on this browser.

Essential sign-in and security storage always stays on. Read the privacy notice.