{
  "id": 1037349,
  "title": "Sandboxes That Cost Nothing",
  "url": "https://urgent.news/2026/08/15/sandboxes-that-cost-nothing",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-15T12:54:40.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/5c4989ca297ed/sandboxes-that-cost-nothing-3i82"
  },
  "original_language": "en",
  "account": "Developers who rely on external APIs often struggle with creating a development environment without duplicating data or incurring storage costs. The solution lies in Interlace, a system that creates environments based on sets of views over data, rather than copies. Every model is given a fingerprint, which is a hash of its SQL or Python source along with its configuration and upstream fingerprints. When a build is created, it writes an immutable physical table named after that fingerprint, which never changes. If the model definition changes, a new version gets a new fingerprint and a new table, leaving the old one untouched.\n\nAn environment is simply a set of views pointing at these fingerprinted tables. Production is the base namespace, and every other environment prefixes its schema. View names and tables remain the same, but consumers and BI tools never need to know about fingerprints. Sandboxes are free because applying to one does not rebuild models whose fingerprint already exists. Instead, it points the sandbox's views at the tables already built in production. This means that changing just one model in a sandbox will only rebuild that one model, while the other thirty-nine remain unchanged.\n\nInterlace's impact analysis runs at the column level, meaning that a semantic change only invalidates the consumers of the columns it actually touched. Downstream models with identical outputs are marked as reusable and not rebuilt. Promotion to production is an atomic view swap, making rollback simple by repointing the views at an earlier generation. Immutable tables accumulate over time, but garbage collection can reclaim them, and dropping an environment leaves the underlying tables untouched and reclaimable. Models interacting with external systems are environment-gated, ensuring they only write to live external tables during a production apply.",
  "summary": "If you work with external APIs, you know the problem. There is no dev.github.com , no staging.api.companieshouse.gov.uk , no test endpoint for the thing you actually depend on. Production is the only source. So how do you get a development environment without re-fetching everything you already have? The usual answer is to copy: duplicate the warehouse, or keep a separate dev database and sync it…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}