By Kurt Mackey

Turn And Face The Strange

This is a complicated post. So I need you to promise me something: if you read past this introduction, you’ll read the whole rest of the way through. It’s an honor thing. A couple months back, Theo Browne ran a video rating the “best place to host a

Read more

Read more
By Daniel Botha

Building Agents that Don't Break Themselves

Building agents is fun. Rebuilding agents that break themselves... less so. A lot of Fly people are teaching their agents to do anything risky in a Sprite, so a wrong move trashes a sandbox instead of the host. Here's how.

Read more
By Kurt Mackey

Unfortunately, Sprites Now Speak MCP

Sprites are a place to run agents; the first thing you should think to do with a new Sprite is to type claude (or gemini or codex). We’ve put a lot of effort into making sure coding agents feel safe and happy when they’re on Sprites, because, to (pro

Read more
By Ben Johnson

Litestream Writable VFS

Each time we write about it, we get a little bit better at golfing down a description of what Litestream is. Here goes: Litestream is a Unix-y tool for keeping a SQLite database synchronized with S3-style object storage. It’s a way of getting the spe

Read more
By Thomas Ptacek

The Design & Implementation of Sprites

Replacement-level homeowners buy boxes of pens and stick them in “the pen drawer”. What the elites know: you have to think adversarially about pens. “The purpose of a system is what it does”; a household’s is to uniformly distribute pens. Months fro

Read more
By Kurt Mackey

Code And Let Live

My argument won’t make sense without showing you something new we’ve built. We’re all adults here, this is a company, we talk about what we do. Here goes. So, I want to run some code. So what I do is, I run sprite create. While it operates, I’ll exp

Read more
By Ben Johnson

Litestream VFS

Again with the sandwiches: assume we’ve got a SQLite database of sandwich ratings, and we’ve backed it up with Litestream to an S3 bucket. Now, on our local host, load up AWS credentials and an S3 path into our environment. Open SQLite and:

Read more
By Thomas Ptacek

You Should Write An Agent

There are big ideas in computing that are easy to get your head around. The AWS S3 API. It’s the most important storage technology of the last 20 years, and it’s like boiling water. Other technologies, you need to get your feet on the pedals first.

Read more
By Thomas Ptacek & Peter Cai

Corrosion

Several times a second, as customer CI/CD pipelines tear up or bring down Fly Machines, our state synchronization system blasts updates across our internal mesh, so that edge proxies from Tokyo to Amsterdam can keep the accurate routing table that al

Read more
By Thomas Ptacek

Kurt Got Got

We know. Our Twitter got owned. We knew within moments of it happening. We know exactly how it happened. Nothing was at risk other than our Twitter account (and one Fly.io employee’s self-esteem). Also: for fuck’s sake. Here’s what happened: Kurt M

Read more
By Ben Johnson

Litestream v0.5.0 is Here

Litestream is the missing backup/restore system for SQLite. It runs as a sidecar process in the background, alongside unmodified SQLite applications, intercepting WAL checkpoints and streaming them to object storage in real time. Your application doe

Read more
By Daniel Botha

Build Better Agents With MorphLLM

I’m an audiophile, which is a nice way to describe someone who spends their children’s college fund on equipment that yields no audible improvement in sound quality. As such, I refused to use wireless headphones for the longest time. The fun thing abo

Read more
By Daniel Botha

Trust Calibration for AI Software Builders

If we build things that our users trust too blindly, we risk facilitating dangerous or destructive interactions that can permanently turn users off. If they don’t trust our product enough, it will feel useless or less capable than it actually is. S

Read more
By Daniel Botha

Games as Model Eval: 1-Click Deploy AI Town on Fly.io

Benchmarks tell us almost nothing about how a model will actually behave in the wild, especially with long contexts, or when trusted to deliver the tone and feel that defines the UX we’re shooting for. Even the best evaluation pipelines usually end i

Read more
By Daniel Botha

The Future Isn't Model Agnostic

In my last project, I spent countless hours ensuring that the LLMs running my services could be swapped out as easily as possible. I couldn’t touch a device with an internet connection without hearing about the latest benchmark-breaking model and it

Read more
By Chris McCord

Phoenix.new – The Remote AI Runtime for Phoenix

I wanted LLM agents to work just as well with Elixir as they do with Python and JavaScript. Last December, in order to figure out what that was going to take, I started a little weekend project to find out how difficult it would be to build a coding

Read more
By Sam Ruby

What are MCP Servers?

The introduction to Model Context Protocol starts out with: MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect

Read more
By Thomas Ptacek

My AI Skeptic Friends Are All Nuts

Tech execs are mandating LLM adoption. That’s bad strategy. But I get where they’re coming from. Some of the smartest people I know share a bone-deep belief that AI is a fad — the next iteration of NFT mania. I’ve been reluctant to push back on the

Read more
By Sam Ruby

Using Kamal 2.0 in Production

Agile Web Development with Rails 8 is off to production, where they do things like editing, indexing, pagination, and printing. In researching the chapter on Deployment and Production, I became very dissatisfied with the content available on Kamal. I

Read more
By Peter Cai & Pavel Borzenkov

parking_lot: ffffffffffffffff...

The basic idea is simple: customers give us Docker containers, and tell us which one of 30+ regions around the world they want them to run in. We convert the containers into lightweight virtual machines, and then link them to an Anycast network. If y

Read more
By Ben Johnson

Litestream: Revamped

Nearly a decade ago, I got a bug up my ass. I wanted to build full-stack applications quickly. But the conventional n-tier database design required me to do sysadmin work for each app I shipped. Even the simplest applications depended on heavy-weight

Read more
By Sam Ruby

Launching MCP Servers on Fly.io

The Model Context Protocol is days away from turning six months old. You read that right, six months old. MCP Servers have both taken the world by storm, and still trying to figure out what they want to be when they grow up. There is no doubt that M

Read more
By Sam Ruby

Provisioning Machines using MCPs

On Monday, I created my first fly volume using an MCP. For those who don’t know what MCPs are, they are how you attach tools to LLMs like Claude or Cursor. I added support for fly volume create to fly mcp server, and it worked the first time. A few h

Read more
By Kurt Mackey

30 Minutes With MCP and flyctl

well, Cursor built I built the most basic MCP server for flyctl I could think of. It took 30 minutes. MCP, for those unaware, is the emerging standard protocol for connecting an LLM (or an app that drives an LLM in the cloud, like Claude Desktop) to

Read more
By Kurt Mackey

Our Best Customers Are Now Robots

It’s weird to say this out loud! For years, one of our calling cards was “developer experience”. We made a decision, early on, to be a CLI-first company, and put a lot effort into making that CLI seamless. For a good chunk of our users, it really is

Read more
By Thomas Ptacek

Operationalizing Macaroons

1 We’ve spent too much time talking about security tokens, and about Macaroon tokens in particular. Writing another Macaroon treatise was not on my calendar. But we’re in the process of handing off our internal Macaroon project to a new internal owner

Read more
By Peter Cai

Taming A Voracious Rust Proxy

The basic idea of our service is that we run containers for our users, as hardware-isolated virtual machines (Fly Machines), on hardware we own around the world. What makes that interesting is that we also connect every Fly Machine to a global Anycas

Read more
By Kurt Mackey

We Were Wrong About GPUs

A couple years back, we put a bunch of chips down on the bet that people shipping apps to users on the Internet would want GPUs, so they could do AI/ML inference tasks. To make that happen, we created Fly GPU Machines. A Fly Machine is a Docker/OCI

Read more
By Thomas Ptacek

The Exit Interview: JP Phillips

Question 1: Why, JP? Just why? LOL. When I looked at what I wanted to see from here in the next 3-4 years, it didn’t really match up with where we’re currently heading. Specifically, with our new focus on MPG [Managed Postgres] and [llm] [llm]. Edit

Read more
By Thomas Ptacek

A Blog, If You Can Keep It

Over the last 5 years, we’ve done pretty well for ourselves writing content for Hacker News. And that’s mostly been good for us. We don’t do conventional marketing, we don’t have a sales team, the rest of social media is atomized over 5 different sit

Read more
By Thomas Ptacek

Did Semgrep Just Get A Lot More Interesting?

This whole paragraph is just one long sentence. God I love just random-ass blogging again. This bit by Geoffrey Huntley is super interesting to me and, despite calling out that LLM-driven development agents like Cursor have something like a 40% succe

Read more
By Thomas Ptacek

VSCode’s SSH Agent Is Bananas

We’re interested in getting integrated into the flow VSCode uses to do remote editing over SSH, because everybody is using VSCode now, and, in particular, they’re using forks of VSCode that generate code with LLMs. ”hallucination” is what we call it

Read more
By Chris McCord & José Valim

AI GPU Clusters, From Your Laptop, With Livebook

Let’s begin by introducing our cast of characters. Livebook is usually described as Elixir’s answer to Jupyter Notebooks. And that’s a good way to think about it. But Livebook takes full advantage of the Elixir platform, which makes it sneakily powe