
Inside Replit’s New Sandbox Engine, Part 1: The Path to MicroVMs
How Replit rebuilt its sandbox engine with microVMs for stronger isolation, bottomless storage, and fast startup across hundreds of millions of projects.
92 articles

How Replit rebuilt its sandbox engine with microVMs for stronger isolation, bottomless storage, and fast startup across hundreds of millions of projects.

Why autonomous AI agents need dedicated, organization-controlled environments with independently enforced security boundaries.
A proposed security architecture and maturity scale for agent habitats, covering identity, execution, permissions, data flows, approvals, and recovery.

ViBench 2.0 tests whether AI agents can build a whole product one feature at a time. It joins the Specialized Intelligence Index from Fireworks.

Model routers are everywhere right now, but they have a fundamental limitation. No matter if based on advanced heuristics or a small model that reads each turn and picks which LLM to use, a router will always be less capable than the model it’s choosing for. Replit Agent lets the model decide instead.

Giving agents access to company data is only the start. Why trustworthy answers also need shared definitions, clear ownership, and evidence people can check.

A benchmark score can’t tell the whole story. How we combine app testing, A/B experiments, and failure analysis to make Replit Agent better.

How Replit turns any web page into a deterministic video by virtualizing time itself, patching key browser audio APIs, and waging war against headless Chrome's quirks.

Replit Agent stays reliable through decision-time guidance—injecting situational instructions at key moments rather than front-loading all rules.
![Cover artwork for the article “How Replit Secures AI-Generated Code [white paper]”.](https://cdn.replit.com/engineering-blog/v1/images/795091fa15707937848fcd8cb13ac016459b4911543e3457d14280dee377c800.webp)
AI security scans alone aren't enough. New research shows hybrid approaches combining static analysis with LLM reasoning are essential for vibe coding.

An agent needs room to experiment and a way back when it gets things wrong. Inside the filesystem snapshots and database forks that make that possible.

An app can look finished and still fail when you click it. How Agent 3 combines code execution and browser testing to check its own work.

Learn how Replit automated database migrations between dev and production environments, enabling safe AI agent development with minimal user intervention.

Our Nix package disk had grown to 20 TB. How Tvix Store cut storage costs by 90% without dropping the packages older projects depend on.

Stop retyping the same shell commands. Turn your development routine into reusable tasks, then run them together with Replit Workflows.

See and edit your app’s Postgres data in a familiar table view. A look at Replit’s database editor, with no SQL required to get started.

Garbage collection doesn’t prevent every memory leak. How to confirm a leak, inspect a running program’s heap, and track down what won’t let go.

A shell that keeps its history and works with other people. How we rebuilt Replit’s terminal for speed, persistence, and multiplayer sessions.

What are people building with Replit? How we analyze anonymized public code and organize it into a taxonomy, without reviewing private projects.

Languages, packages, and system libraries now share one place in the workspace. How the Dependencies pane helps you configure projects with more than one language.

Run multiple services without guessing which port goes where. Explicit mappings, localhost previews, and a Networking tool make the connections easier to follow.

Finding a Nix package shouldn’t keep you waiting. How rippkgs indexes Nix expressions and returns search results in under 30 milliseconds.

Prefer requirements.txt to Poetry? Replit now supports pip directly, with a short migration path for existing Python projects.

Configure your project without hunting through docs. Code completion and inline help bring the .replit file’s options into the editor.

Code upright on your phone or turn your tablet sideways for more room. Here’s how we made Replit adapt to both.

How a storage configuration change disrupted Secrets and legacy static hosting in December 2023, and what we changed after the recovery.

Find the right repository, bring it into Replit, and get to work. What changed in GitHub imports, authentication, and the Git pane.

Python packages often need libraries that pip can’t provide. Replit detects those missing system dependencies and installs them for hundreds of packages.

Past runs shouldn’t vanish when you need them. A tour of the rebuilt Console, its saved execution history, and the choices behind the interface.

Search for native tools and libraries without writing Nix configuration by hand. A guide to adding and managing system dependencies in the workspace.

Keep pasted code aligned and let the editor pick up a file’s indentation style. Small changes that take the fuss out of tabs and spaces.

An incomplete storage build left some projects read-only on September 29, 2023. Our account of the incident, recovery work, and safeguards that followed.

Why we’re moving legacy hosting to Deployments, what that means for existing apps, and why the free development experience isn’t going away.

See how people use your deployed app without leaving the workspace. A tour of the analytics tab and the traffic data it puts at hand.

Install packages with fewer clicks, see what’s already in your project, and get clearer errors when something goes wrong.

A package manager spent 200 milliseconds doing almost nothing. Following that delay led us through a surprisingly tangled Go performance bug.

AI suggestions are easier to judge when they stay beside your code. Persistent widgets, streamed responses, and diff views improve Ghostwriter’s inline tools.

Larger datasets and dependencies need more room. How expandable storage removes the old per-project ceiling, and how to manage the extra space.

More powerful projects brought higher infrastructure costs. Why we changed resource limits and plans, and how user feedback shaped the response.

Fewer interrupted sessions, including on the free plan. How storage and networking changes helped us make Replit more stable and quicker to connect.

An 8,000-file codebase exposed the limits of our filetree. Virtualization, local caching, and keyboard navigation made large projects easier to work with.

Faster deploys, fewer failures, and less friction getting an app online. What changed in Replit Deployments after its first release.

Getting past the 1 GiB storage limit meant rethinking the filesystem underneath it. Inside the snapshot and copy-on-write design that made larger projects possible.

Find a function, narrow a query, or replace matches across a project. The engineering story behind Replit’s code search and regex support.
What we found in a June 2023 single-sign-on audit, how we patched the vulnerability, and how we notified potentially affected users.

Make the workspace shortcuts your own. How we built configurable keybindings that handle chords, different devices, and competing keyboard conventions.

Combining Nix stores makes development environments more portable. How a layered store can bring Nix Flakes to millions of Replit users.

Git mistakes shouldn’t require an afternoon to undo. The design and engineering behind a Git pane built for both beginners and experienced developers.

From raw code to a model serving users: the data pipelines, training infrastructure, and evaluation work behind Replit’s language models.

Switching away from preemptible VMs cut workspace restarts tenfold for paid plans. The infrastructure tradeoff behind longer, uninterrupted coding sessions.
Our account of the April 2023 GitHub token vulnerability: who may have been affected, how we fixed it, and what users should check.

Why Replit introduced outbound data limits, how to track usage, and which changes can help keep an app’s bandwidth needs down.

You can’t optimize away the speed of light. How we reworked clusters and moved users’ compute closer to them without making them start over.

Use your own terminal or editor with a project running on Replit. How to connect over SSH, and how remote access works behind the scenes.

Seven days to build with machine learning. Meet the winning projects from Replit’s first hackathon with Weights & Biases.

The plans for our first machine learning hackathon with Weights & Biases, including project resources, participation details, and prizes.

Create and verify signed project identities from the command line. Repl Identity becomes available to any language that can run a subprocess.

A transaction list should tell you where your money went. How we redesigned Cycles history to make purchases, tips, and bounties easier to follow.

Move files in batches, find them faster, and spend less time waiting. A tour of the filetree’s new controls and performance improvements.

An off-the-shelf load balancer couldn’t route containers the way we needed. How we built an alternative and brought it into production.

Every edit leaves a trail. How Replit turns its multiplayer editing log into file history you can browse without making a commit.

Is that high-score submission really from your game? Repl Identity gives programs a signed identity so your API can check who’s calling.

Good projects shouldn’t disappear in a busy feed. How we built a community feed to help people follow friends and discover new work.

GitHub imports were stuck on an older setup while the rest of Replit moved to Nix. Fixing that made imports faster and simpler.
Inspect a page and debug JavaScript without leaving Replit, even on mobile. The permissions, security, and timing challenges behind our built-in DevTools.

Dragging and resizing panes sounds simple until the data structure gets in the way. What our workspace layout taught us about UI abstractions.

Moving compute closer to users started with separating the control and data planes. Inside the infrastructure refactor that made global routing possible.

Connect root domains, link multiple addresses, and troubleshoot DNS more easily. A closer look at the changes to custom domains on Replit.
Moving fast left some rough edges in the editor. Here’s where we’re focusing on fixes, performance, and the feedback that shapes both.

How the Dirty Pipe Linux vulnerability affected Replit, what we did to address it, and why we found no evidence of successful exploitation.

Why we moved from Monaco to CodeMirror 6, what the new architecture makes possible, and what it took to switch editors.

One package system for every new project: how moving to Nix brought faster Python startups, newer runtimes, and more control over your environment.

What it took to bring persistent files in hosted apps to everyone: a gradual rollout, better monitoring, and a few infrastructure optimizations.

Reinstalling packages at every startup made Python projects painfully slow. How a new template cut that wait and made room for larger dependencies.

What do the CPU, memory, and storage meters actually tell you? A guide to reading resource usage and understanding why a project slows down.

Rebuilding the mobile web IDE meant changing how it worked, not just how it looked. Why that matters for people who code on phones.

Moving a live website means more than moving servers. How we brought Replit’s databases, caches, and frontend from Heroku to Google Cloud.

Seven avatar components were a sign we needed a design system. The CSS tradeoffs and API decisions behind building RUI.

Add your own tools, configure how code runs, and share the setup as a template. A look at making Replit more customizable.

We compare and contrast the top code editors that you use in your browser.

Nix and Docker both tackle the works-on-my-machine problem, but in different ways. A practical comparison of their approaches to reproducible environments.

Build your own corner of the social web with Mastodon. This walkthrough covers the databases, server configuration, and installation on Replit.

Hosted apps need to save files even when the editor is closed. How file persistence opened up uploads, SQLite databases, and more.

What if running code didn’t mean waiting for packages to install? Why we’re backing Nix, and putting $25,000 behind it.

Write and test Ethereum smart contracts in your browser. A tour of Replit’s Solidity template and the engineering behind it.

Writing code on a touchscreen deserves a better editor. CodeMirror 6 brings a mobile-first editing experience to Replit.

A Python prompt and a page of HTTP logs became unlikely chat rooms. Two stories about people finding ways to make the internet more fun.

A user found a token bug that granted access to someone else’s project. We explain what went wrong and how we responded.
Slow setup and fragile workflows creep up on a team. Here’s how onboarding, automation, and a closer look at daily work can catch them.
What could developer tools do if editing, running, and deploying code weren’t separate jobs? A case for bringing the whole process together.
From manually starting servers to automating deployments: the mistakes and lessons behind scaling Replit’s code execution service on AWS.
An archived guide to running code through Replit’s HTTP and WebSocket API, with examples and setup instructions. The API was retired in October 2022.