
Engineering
What changed when we moved the queue off Redis, Oct 14, 2026
Two years of incidents, a weekend of migration, and the numbers we watched for a month afterwards.
Components
What we shipped, what broke, and what we learned fixing it.

Engineering·
Two years of incidents, a weekend of migration, and the numbers we watched for a month afterwards.

Design·
We cut three tiers to two and the support tickets about billing went with them.

Product·
Shipping notes used to live in a Slack channel. Now they live where the work does.

Engineering·
Every 429 now says what you hit, when it resets and what to do instead.

Company·
We replaced it with a list of what shipped last week. Fewer promises, more trust.

Design·
The blank project screen is the first thing anyone sees. It should do more than apologise.

Product·
Twelve lines, no tooling, and it has caught more than our test suite.
npx shadcn add @useplanes/blog-section
Works once the @useplanes registry is set up in your project (one-time). After that, copy and run commands directly.
Unlock with Planes Pro
$129 once · 159 Pro components · lifetime updates.
import { BlogSection } from "@/components/ui/BlogSection";
<BlogSection
title="Notes from the team"
description="What we shipped, what broke, and what we learned fixing it."
posts={posts}
viewAllHref="/blog"
onCategoryChange={(c) => console.log(c)}
/>Marketing site blog index
A grid of recent articles with category chips; cards slide into their new places as the filter changes.
Company news or notes page
Author, date and reading time on every card, with a view-all link up top for the full archive.
Engineering blog
Pass a controlled category and sync the filter with the URL so a link opens the right set of posts.