Behind the scenes of the Faster platform: architecture, formats, and hard problems.
Guides
Guides in Engineering
Validators Everywhere: How We Let AI Edit Production SafelyReview catches what's wrong with a draft; validators catch what's wrong with the system that accepts drafts. Schemas at the AI boundary, server checks at every public door, incidents fossilized as domain rules, and graphs that refuse to save invalid.The Media Pipeline: What Happens After You Upload"Upload complete" is a small lie of presentation — the real work happens after you walk away. Accept fast and process later, one webhook contract for two pipelines, the early-arrival race that demands patient receivers, and reference-never-copy placement.How Themes Render: One Template Language, Thousands of SitesEvery site looks like its own business; underneath, one rendering pipeline serves them all. A logic-less template language chosen for what it forbids, JSON sidecars that keep metadata beside markup, family templates that render pages from data, and plugins that join the tree.Anatomy of a Form Submission: From Click to Customer RecordThe visitor sees a button and a half-second spinner; the system runs an assembly line — spam gate, server-side truth check, synchronous identity, archival storage, and a named-event announcement journeys trigger on. A trace, with the design choices defended.How the Journey Engine Decides When to SendA journey looks like boxes and arrows; underneath it's a long-running program with one durable execution per person. Two doors in, three kinds of time, a wait-for-behavior node with a structurally required timeout branch, and explicit exits.When Success Messages Lie: Verifying Distributed WritesThe most dangerous response in a distributed system is 200 OK — an error gets retried; a false success gets trusted. Five ways our publishing pipeline's writes lied while returning green, and the read-back verification pattern that ended the class.Building a Booking Availability EngineAvailability isn't stored — it's the negative space surviving an intersection of hours, staff, bookings, buffers, capacity, and policy, discretized into honest slots and re-verified at confirmation. Why 'when can I come in?' is one of the hardest answers a platform computes.Rendering Animations with Rust and WebAssembly in the BrowserAnimation is judged by your worst frame, and JavaScript's garbage collector doesn't respect 16.7ms budgets. Why our animation runtime renders with Rust compiled to WebAssembly — and why the export matches the preview exactly.What It Takes to Deliver Email at ScaleA sent email is a claim; delivery is a verdict. Inside the machinery — bounce taxonomy, deliberate skips, sender reputation, and the feedback loop that makes wanted mail deliver better.Why Every Faster Workspace Is a Git RepoYour website, posts, forms, and journeys are files in version-controlled repositories — which is why checkpoints, branches, rollback, and AI safety come free instead of as features.How We Route Nested Content: Hierarchical Permalinks in the CMSTags are flat; documentation isn't. How root tags own URL trees, the deepest-tag rule builds article paths, and old flat URLs redirect themselves — the system behind /help and /blog.Guardrails for AI-Edited Websites: Validators, Checkpoints, and ReviewLetting AI edit a production website safely isn't about trusting the model — it's about the layers around it: schema validators, versioned workspaces, checkpoints, and human review at the publish gate.Designing an Animation Format for AI: How .fmtion Enables LLM-Generated AnimationsEvery animation tool has a file format. We built .fmtion — and designed it from day one for a world where AI generates your animations. Here's what we learned.Building a Layered State Machine for AnimationEight state types. Nested components. Declarative event binding. Game-engine-grade animation state management running in the browser at 60fps.