Blog

Engineering, product, and company updates

Preview-Ready Django + Next.js: A Decoupled Headless Stack

2026-04-26

Django as a headless API with Next.js as a separate frontend is one of the most preview-unfriendly architectures by default. Here's the configuration that makes per-PR previews work for both halves together.

djangonextjsheadlesspreview environmentsapi

What Is Verified Software Delivery? (And Why AI Coding Agents Made It Urgent)

2026-04-25

AI coding agents ship code faster than humans can verify it. Verified software delivery is the practice of making sure every change was previewed, reviewed, and signed off before it reaches production — with evidence that it happened.

verified software deliveryAI coding agentspreview environmentssoftware deliverystakeholder review

Preview-Ready Node + Express + Postgres: A Reference Stack

2026-04-21

A framework-agnostic reference for Node preview environments — build vs runtime env vars, Knex migrations, Express middleware that depends on the request URL, and the patterns that adapt to NestJS or Fastify.

nodeexpresspreview environmentspostgresknex

The Evolution of IV&V — and What Modern Software Delivery Requires

2026-04-19

Independent verification and validation has adapted to two previous reshapings of software delivery. Continuous delivery is the third, and it calls for a family of configurable patterns rather than a single new model.

IV&Vindependent verification and validationfederal softwarecontinuous deliverypreview environmentsevidence logcontinuous IV&VNASADoDcompliance

Preview-Ready Phoenix LiveView: Working Configuration for Ephemeral Environments

2026-04-16

Phoenix LiveView's stateful WebSocket model breaks most preview tooling. Here's a working configuration for previews that handle LiveView sessions, BEAM clustering, and Channels correctly.

phoenixliveviewelixirpreview environmentswebsockets

Preview-Ready FastAPI + Postgres: A Working Async Python Stack

2026-04-11

FastAPI's async architecture creates preview-specific challenges Django doesn't have. Here's the configuration for async DB pooling, Alembic migrations, and dependency injection that works in ephemeral environments.

fastapipreview environmentsalembicasync pythonsqlalchemy

The New PaaS: Previews as a Service

2026-04-06

AI agents have shifted the bottleneck from deploying code to verifying it. Ephemeral preview environments are the infrastructure primitive that AI-native development demands.

preview environmentsPaaSAI agentsephemeral environmentsAI development workflowMCP

Preview-Ready Laravel: A Working Stack with MySQL and Redis Queues

2026-04-05

Laravel previews involve queue workers that look like Sidekiq but behave differently, cache scoping that prevents cross-preview contamination, and Artisan migration patterns specific to ephemeral environments.

laravelpreview environmentsmysqlredisqueue workers

Preview-Ready Next.js + Separate Backend: Configuration That Survives Real Use

2026-04-02

Vercel previews work beautifully when your whole app is Next.js. The moment you split off an API backend, they don't. Here's the configuration for previews that include both.

nextjspreview environmentsvercelapifull-stack

Preview-Ready Django: A Working Stack with Postgres and Celery

2026-03-28

A reference setup for Django preview environments — migration ordering, Celery worker scoping, static and media files, and the auth and OAuth callback gotchas.

djangopreview environmentscelerypostgresdocker compose

Preview-Ready Rails: A Working Docker Compose Setup with Seed Data

2026-03-23

A real reference setup for Rails preview environments — Docker Compose, ActiveJob and Sidekiq scoping, asset pipeline gotchas, and a seed strategy that works on first boot.

railspreview environmentsdocker composesidekiqseed data

Heroku Review Apps Alternatives in 2026

2026-03-18

Heroku Review Apps was the de facto preview environment for a decade. Here's an honest look at what's replacing it — Render, Railway, Fly.io, and PreviewProof — and which one fits which kind of team.

heroku review appspreview environmentsrenderrailwayfly.ioplatform migration

Continuous IV&V: How Preview Environments Replace Stage-Gate Review

2026-03-13

IV&V has historically been stage-gated. Continuous delivery breaks that model. Preview environments are the missing piece that lets IV&V engage with what the team actually ships, when it ships, instead of with assembled milestone packages.

IV&Vcontinuous IV&Vpreview environmentsfederal softwarestage-gateNISTOMB M-22-09

Authentication, Authorization, and Audit — Securing Preview Environments for External Reviewers

2026-03-12

Preview environments need security that satisfies compliance without creating friction for external stakeholders — here's how authentication, authorization, and audit apply when the reviewer isn't on your team.

securityauthenticationcompliancepreview environmentsPIV

How to Add Preview Environments to Your GitHub Actions Pipeline

2026-03-12

Adding preview environments to GitHub Actions takes a single workflow step — here's how container-based previews integrate with your existing CI pipeline without changing your build.

GitHub Actionspreview environmentsCI/CDDockerDevOps

Database Migrations and Seed Data for Ephemeral Preview Environments

2026-03-12

Ephemeral preview environments need a database that's useful on first boot — here's how to handle migrations, seed data, and realistic test fixtures with PostgreSQL.

database migrationsseed datapreview environmentsPostgreSQLPrismaephemeral environments

Preview Environments vs. Staging: When You Need Both and When You Don't

2026-03-12

Preview environments and staging environments serve different purposes — understanding when you need both and when one is enough depends on your team's testing and release workflow.

preview environmentsstaging environmentCI/CDtestingDevOps

How to Share Preview Environments With Stakeholders Without a VPN

2026-03-12

Sharing preview environments with non-technical stakeholders shouldn't require VPN access, developer accounts, or Slack threads — here's what secure sharing actually looks like.

preview environmentsstakeholder testingUATsecure sharingVPN

Where UAT Fits in the Development Lifecycle — and Why It's Still the Hardest Testing Phase to Get Right

2026-03-12

User acceptance testing is the final gate before production, but most teams struggle to integrate UAT into modern development workflows — here's how it evolved and what's still broken.

UATuser acceptance testingSDLCstakeholder testingQA

AI Writes the Code. Who Tests It?

2026-03-11

AI-assisted development has created a QA bottleneck — closing it requires democratizing functional testing across the entire team.

AI development testingQA bottleneckfunctional testinge2e testingtest automation

Frontend Previews vs. Full-Stack Preview Environments: What Actually Gets Tested?

2026-03-11

Frontend previews from Vercel and Netlify solve a different problem than full-stack preview environments — the architecture determines what you can actually test before production.

preview environmentsfull-stack testingVercelNetlifyCI/CDDocker

Vibe Coding Without a Safety Net Is Just Shipping Blind

2026-03-11

Solo developers using AI agents can close the accountability gap by generating acceptance criteria and testable previews on every run.

vibe codingMCP agentsacceptance criteriasolo developer testingAI development workflow

PII and CUI in Preview Environments: A Federal Contractor's Guide

2026-03-08

PII handling in previews takes a different shape when data is CUI. A walkthrough of CUI categories most likely to appear in software contracts, the handling rules that apply, and architectural patterns that make CUI-safe previews possible.

CUIPIIpreview environmentsfederal contractorsITARCTINIST 800-171data handling

The Audit Trail Problem: Making Preview Environment Evidence Portable

2026-03-03

Most preview tools generate audit data, but it lives inside the tool's database in vendor-specific format. Auditors need portable, tamper-evident evidence tied to the deployed artifact. Here's what that looks like.

audit trailevidencepreview environmentsOSCALcompliancetamper-evidentcontainer image digest

Preview Environments Under FedRAMP: What Your Tool Needs to Provide

2026-02-26

Federal contractors evaluating preview tools need to know whether the tool can be used under their ATO. A buyer's guide to deployment model, data flow, authentication, and disclosure requirements.

FedRAMPpreview environmentsATOfederal contractorsbuyer's guidecompliance

Deploy Previews on AWS GovCloud: A Practical Guide

2026-02-21

Preview environments can run on AWS GovCloud, but the deployment model differs from commercial AWS. A practical guide to BYOC architecture, FedRAMP boundary questions, and the data residency vs. stakeholder access tension.

AWS GovCloudFedRAMPpreview environmentsfederal contractorsBYOCATO

How to Test What an AI Coding Agent Built — Beyond the Diff

2026-02-17

Reading the diff isn't enough. Running the tests isn't enough. Here's what actually-good verification of AI-authored work looks like, and why most teams haven't built it yet.

AI coding agentsverificationtestingverified software delivery

Cursor and Claude Code: Configuring Your Repo for Preview-Aware AI Development

2026-02-12

Cursor and Claude Code produce dramatically better output when your repo gives them clear context. Here's how to configure both for preview-aware AI development.

CursorClaude CodeAI coding toolsrepo configurationpreview environments

How to Add Stakeholder Sign-Off to AI-Authored Pull Requests

2026-02-07

When an AI opens a PR, who actually signs off? The implicit trust chain in code review breaks. Here's a practical pattern for making stakeholder approval explicit.

stakeholder reviewAI coding agentssign-offverified software delivery

The Verification Checklist for Autonomous Coding Agents

2026-02-02

When an autonomous agent finishes a task and opens a PR, 'is this correct?' isn't answerable by reading the diff. Here's the concrete checklist for what to verify instead.

AI coding agentsverificationcode reviewautonomous agents

Preview Environment Seed Data When an AI Agent Is Opening Your PRs

2026-01-28

Seed data takes on a different character when AI is opening pull requests. Here's why the bar is higher, what to seed, and why letting the agent generate fixtures is a trap.

seed datapreview environmentsAI coding agentstest fixtures

How AI-Generated Code Breaks the Assumptions Your Preview Environment Was Making

2026-01-23

Preview environment workflows were designed for human-paced, human-authored code. AI agents change every assumption — here's what breaks and what to do about it.

AI coding agentspreview environmentsverified software deliverycode review

Making Your Repo Preview-Ready: A Step-by-Step Audit

2026-01-18

An ordered walkthrough you can run on an existing codebase to find the specific places it isn't preview-friendly yet — and a prioritized list of fixes you can ship this week.

preview environmentsauditdeveloper experiencerefactoringephemeral environments

The CLAUDE.md Guide for Preview-Aware Repositories

2026-01-13

CLAUDE.md, AGENTS.md, and .cursorrules are quickly becoming the canonical context files for AI coding agents. Almost nobody writes them with preview environments in mind. Here's what to include.

CLAUDE.mdAI coding agentspreview environmentsClaude CodeCursorAGENTS.md

Monorepo vs. Polyrepo for Preview Environments: Tradeoffs and Patterns

2026-01-08

Repo strategy isn't the same axis as architecture, but it shapes how previews work. Here's how monorepo and polyrepo each constrain preview design — and the patterns that work.

monorepopolyrepopreview environmentsNxTurborepobuild tools

Cost-Aware Preview Environments: Auto-Sleep, Right-Sizing, and Cleanup Patterns

2026-01-03

Cost is the second-biggest reason teams abandon preview environments. Here are the ops patterns — auto-sleep, right-sizing, cleanup, shared pools — that make per-PR previews actually affordable.

preview environmentscost optimizationinfrastructureFinOpsephemeral environments

Background Jobs in Ephemeral Preview Environments: Patterns and Pitfalls

2025-12-30

Sidekiq, Celery, BullMQ, and friends were built for long-lived servers. Here's how to make background jobs work in environments that come and go with each pull request.

background jobspreview environmentsSidekiqCeleryBullMQephemeral environments

The Local-to-Preview Parity Problem and How to Solve It

2025-12-25

Bugs that appear in preview but not on a developer's laptop are an ephemeral version of the dev-to-prod parity problem. Here's what to actually align — and what to leave alone.

preview environmentslocal developmentdev-prod paritycontainerizationdeveloper experience

Stripe, Twilio, and SendGrid Test Mode in Preview Environments

2025-12-20

All three have official test modes. All three have non-obvious gotchas when you wire them into ephemeral preview environments. Here's what actually works.

StripeTwilioSendGridpreview environmentstest modethird-party integrations

Feature Flags for Preview Environments: Scoping, Defaults, and Cleanup

2025-12-15

Most teams treat feature flags as global. In preview environments, that's exactly wrong — the flag for the feature you're previewing is probably off, hiding the thing you're trying to demo.

feature flagsLaunchDarklyUnleashpreview environmentsconfiguration

Service-to-Service Authentication in Multi-Service Preview Environments

2025-12-10

Single-service previews are easy. The moment you have two services authenticating to each other, the dynamic-URL problem comes back uglier. Here's how to handle it.

service-to-service authpreview environmentsmTLSJWTservice meshKubernetes

Webhook Handling When Your Preview URL Changes Every Commit

2025-12-05

Webhooks have the same dynamic-URL problem as OAuth, with different shapes. Three categories of solutions, when to use each, and the security gotchas nobody mentions.

webhookspreview environmentsStripengrokthird-party integrations

OAuth Callback URLs and Ephemeral Previews: Solving the Dynamic URL Problem

2025-11-30

OAuth expects a registered callback URL. Preview environments give you a new URL on every PR. Here are the four patterns that actually work, with code for each major IdP.

OAuthpreview environmentsauthenticationAuth0Okta

Environment Variables for Ephemeral Preview Environments: A Pattern Guide

2025-11-25

Env vars in preview environments aren't a single config — they're four overlapping layers with different lifecycles. Here's a pattern that holds up.

environment variablespreview environmentssecrets managementconfiguration

Per-Preview Database vs. Shared Dev Database: How to Choose

2025-11-20

Should every PR get its own isolated database, or should all previews share a long-lived dev database? It's the most consequential decision in your preview environment design. Here's how to choose.

databasepreview environmentsarchitectureephemeral environmentsPostgreSQL

Database Migration Patterns That Don't Break Preview Environments

2025-11-16

A migration that runs fine in production behaves differently against a freshly created preview database every PR. Here are the patterns that survive ephemeral environments — and what to do when migrations are too slow.

database migrationspreview environmentsRailsDjangoLaravelPhoenix

The Synthetic Data Problem: When Test Fixtures Aren't Enough for Realistic Previews

2025-11-11

Test fixtures are designed to test code paths. Preview environment data needs to test user experience. Three users and four orders won't surface the pagination bug. Here's why synthetic data generation is a different discipline.

synthetic datatest fixturespreview environmentsdata generationQA

Handling PII in Preview Environment Seed Data

2025-11-06

Preview environments and PII don't mix. The moment a PR preview contains a real customer's email, you've created a compliance problem — even if only your team can see it. Here's how to handle PII as a first-class concern in preview seed data.

PIIpreview environmentscomplianceanonymizationdata privacy

How to Seed a Postgres Database for Ephemeral Preview Environments

2025-11-01

Empty databases produce useless previews. Production data is too risky and too large. Here are the four real strategies for seeding Postgres in ephemeral environments — and when each one is actually the right choice.

PostgreSQLseed datapreview environmentsdatabaseephemeral environments

The Preview-Friendly Stack: A Checklist for Making Your App Ephemeral-Environment Ready

2025-10-27

Most preview environment failures aren't tooling problems — they're architecture problems. Here's an opinionated checklist for what 'preview-friendly' actually means at every layer of your stack.

preview environmentsarchitectureephemeral environmentstwelve-factordeployment