---
title: "Changelog | Netlify"
description: "Stay updated with the latest features, fixes, and improvements. Realize the speed, agility and performance of a scalable, composable web architecture with Netlify. Explore the composable web platform now!"
source: "https://www.netlify.com/changelog/page/4/"
last_updated: "2026-08-29T06:17:21.000Z"
---
# Changelog

All Tags Agent-runners AI Ai-gateway Angular Astro AX Build CLI Database Design Devtools Domains E-commerce Extensions Forms Framework Functions Logs Next.js Nuxt.js Remix SDK Security Updates Workflow  [Subscribe to feed](https://www.netlify.com/changelog/feed.xml)

-   [
    
    ## Nano Banana 2 Lite (Gemini 3.1 Flash-Lite Image) is now available in AI Gateway.
    
    ](/changelog/gemini-3-1-flash-lite-image-ai-gateway/)
    
    June 30, 2026
    
    -   [ai gateway](/changelog/tag/ai-gateway/)
    
    Google’s Nano Banana 2 Lite (Gemini 3.1 Flash-Lite Image) is now available through AI Gateway. You can call this lightweight image generation model from Netlify Functions without configuring API keys; the AI Gateway provides the connection to Google for you.
    
    Example usage in a Function:
    
    ```
    import { GoogleGenAI } from '@google/genai';
    // Netlify Function: Generate an image with Gemini 3.1 Flash Lite Image and return it directly.// Usage (GET): /.netlify/functions/gemini-31-flash-lite-image?prompt=Your+prompt+here// Returns: binary image (PNG/JPEG/etc) with proper content-type. If no image, JSON error.
    export default async (request: Request) => {    const url = new URL(request.url);    const prompt = url.searchParams.get('prompt') || 'two happy bananas holding flashlights';    const ai = new GoogleGenAI({});
        try {        const response = await ai.models.generateContent({            model: 'gemini-3.1-flash-lite-image',            contents: prompt,            config: {                imageConfig: {                    aspectRatio: '16:9',                    imageSize: '1K'                }            }        });
            let imagePart = null;        for (const part of response.candidates[0].content.parts) {            if (part.inlineData) {                imagePart = part.inlineData;                break;            }        }
            const bytes = Buffer.from(imagePart.data, 'base64');        const mimeType = imagePart.mimeType || 'image/png';
            return new Response(bytes, {            status: 200,            headers: {                'Content-Type': mimeType,                'Cache-Control': 'no-store'            }        });    } catch (err) {        return new Response(JSON.stringify({ error: String(err), prompt }), {            status: 500,            headers: { 'Content-Type': 'application/json' }        });    }};
    ```
    
    Built for speed and lower cost, Gemini 3.1 Flash-Lite Image is a good fit for high-volume image generation. It works across any function type and is compatible with other Netlify primitives such as caching and rate limiting, giving you control over request behavior across your site.
    
    Learn more in the [AI Gateway documentation](https://docs.netlify.com/build/ai-gateway/overview/).
    
    [Permalink to Nano Banana 2 Lite (Gemini 3.1 Flash-Lite Image) is now available in AI Gateway. Permalink](/changelog/gemini-3-1-flash-lite-image-ai-gateway/)
    
-   [
    
    ## Functions redesigned for agents
    
    ](/changelog/2026-06-25-functions-redesigned-for-agents/)
    
    June 25, 2026
    
    -   [functions](/changelog/tag/functions/)
    -   [agent runners](/changelog/tag/agent-runners/)
    -   [ai](/changelog/tag/ai/)
    
    We have redesigned Netlify functions for an improved agent experience.
    
    With these updates, functions are more discoverable, easier to autocomplete, update, and manage for people and agents alike. They move function configuration into code, making it type-safe and immediately visible to editors, tools, and agents, with no platform-specific naming conventions to memorize or get wrong. None of these changes are breaking, so you can adopt them on your own timeline.
    
    Netlify Functions are serverless functions that run on-demand in response to HTTP requests or platform events. They handle server-side logic without any infrastructure to manage, and live in your repository at `netlify/functions/`.
    
    To learn more about these updates in depth, check out our [blog on redesigning Netlify functions for agent experience](https://www.netlify.com/blog/netlify-functions-designed-for-agent-experience). See the table below for a summary.
    
    Feature
    
    What changed
    
    What it means for agents
    
    What you need to do
    
    [Event handlers](https://docs.netlify.com/build/functions/overview/#platform-events)
    
    Export typed event handlers from the default export object
    
    Typed handlers are discoverable like any API, with no magic filenames to guess or get wrong.
    
    Nothing required. Adopt the new syntax for new event handlers for better agent discoverability and updates.
    
    [Background functions](https://docs.netlify.com/build/functions/background-functions/)
    
    Declare with `background: true` in config instead of the `-background` filename suffix
    
    Type-safe and config-driven, not name-driven. Agents can set it in code without guessing platform naming conventions, and get an error if the value is wrong.
    
    Nothing required. The `-background` suffix still works.
    
    [Region selection](https://docs.netlify.com/build/functions/configuration/#region)
    
    Set per-function via the `region` config property, replacing the global UI setting
    
    Agents can set region as a type-safe config property, catching invalid values before deploy rather than at runtime. Use deploy previews to test before going live.
    
    Nothing required. Optionally move region out of the UI into config for per-function control.
    
    [Memory and vCPU](https://docs.netlify.com/build/functions/configuration/#memory-or-vcpu)
    
    Set via `memory` or `vcpu` config properties; both values scale together automatically
    
    Agents provisioning compute-heavy workloads (inference, large payloads) can do so in code.
    
    Nothing. Defaults unchanged. Set only if your workload needs more than 1 GB / 0.5 vCPU. Requires a credit-based Pro plan.
    
    [`getContext()`](https://docs.netlify.com/build/functions/api/#getcontext)
    
    Named import from `@netlify/functions`, replacing the `Netlify.context` global
    
    Named imports surface in autocomplete and carry type information. Globals are invisible to agents; named imports are not.
    
    Nothing required. `Netlify.context` still works. Switch to `getContext()` for better discoverability.
    
    Learn more in the [Netlify Functions documentation](https://docs.netlify.com/build/functions/overview/), which has also been recently revamped.
    
    [Permalink to Functions redesigned for agents Permalink](/changelog/2026-06-25-functions-redesigned-for-agents/)
    
-   [
    
    ## Astro 7 just works on Netlify
    
    ](/changelog/2026-06-22-astro-7/)
    
    June 22, 2026
    
    -   [framework](/changelog/tag/framework/)
    -   [astro](/changelog/tag/astro/)
    
    [Astro 7](https://astro.build/blog/astro-7/) is out today, and it just works on Netlify on day one. To upgrade, run:
    
    ```
    npx @astrojs/upgrade
    ```
    
    This will update Astro, the [Netlify adapter](https://docs.netlify.com/frameworks/astro/), and all other official integrations together. You can also check out the [official migration guide](https://docs.astro.build/en/guides/upgrade-to/v7/).
    
    ## What’s new
    
    Some highlights include:
    
    -   **Vite 8** — Astro 7 upgrades to Vite 8, bringing faster builds and improved dev tooling.
    -   **Sätteri is now the default markdown processor** — Astro’s new native markdown pipeline replaces remark/rehype as the default. If your project uses remark or rehype plugins, you’ll need to install `@astrojs/markdown-remark` separately to keep them working.
    -   **Advanced routing is stable** — Previously behind an experimental flag, advanced routing is now enabled by default. The default entry point has moved from `src/app.ts` to `src/fetch.ts`.
    -   **Streaming rendering is stable** — The streaming-based rendering engine is now the default, replacing the legacy queued approach.
    -   **Background dev server for AI coding agents** — `astro dev` now detects AI coding environments and runs as a background process automatically. New `astro dev stop`, `astro dev status`, and `astro dev logs` commands let you manage it directly.
    -   **Astro DB is deprecated** — The `astro db`, `astro login`, `astro logout`, `astro link`, and `astro init` CLI commands have been removed. Switch to a dedicated database client.
    -   **Custom logger is stable** — `context.logger` is now always available in API routes and middleware, with built-in `json`, `node`, and `console` handlers.
    
    Check the full [upgrade guide](https://docs.astro.build/en/guides/upgrade-to/v7/) for all the details.
    
    ## Watch out for the new markdown defaults
    
    If your site uses remark or rehype plugins, you’ll need to take action before upgrading. In Astro 7, the default markdown pipeline is Sätteri — Astro’s own native processor. The remark/rehype pipeline is no longer included by default.
    
    To keep your existing plugins working, install the remark package separately:
    
    ```
    npm install @astrojs/markdown-remark
    ```
    
    Once installed, your existing `markdown.remarkPlugins`, `markdown.rehypePlugins`, and `markdown.remarkRehype` config options will continue to work as before. If you’re not using any remark or rehype plugins, no changes are needed — Sätteri handles standard Markdown out of the box.
    
    ## Deploy an Astro 7 site on Netlify
    
    If you want to get started with a new site, start with the [Astro on Netlify](https://docs.netlify.com/build/frameworks/framework-setup-guides/astro/) doc, or just click this button:
    
    [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/astro-platform-starter)
    
    [Permalink to Astro 7 just works on Netlify Permalink](/changelog/2026-06-22-astro-7/)
    
-   [
    
    ## Preview data changes in Netlify Database
    
    ](/changelog/2026-06-22-preview-data-changes-netlify-database/)
    
    June 22, 2026
    
    -   [database](/changelog/tag/database/)
    
    You can now preview proposed data changes for your Netlify database with a Git-style diff view, then apply part or all of those changes to a production version of your database.
    
    This update allows you to carefully review proposed changes from across your team and make sure you’re confident about making changes to the production version of your database before going live. Learn more in our docs on [Data changes for Netlify Database](https://docs.netlify.com/build/data-and-storage/netlify-database/data-changes/).
    
    [Permalink to Preview data changes in Netlify Database Permalink](/changelog/2026-06-22-preview-data-changes-netlify-database/)
    
-   [
    
    ## SAML provisioning upgrades for assigning default roles
    
    ](/changelog/2026-06-22-saml-provisioning-role-options/)
    
    June 22, 2026
    
    -   [security](/changelog/tag/security/)
    
    When you provision new users through SAML SSO, you now have more options for assigning a default role.
    
    Before this update, the Developer role was assigned by default. Now you can assign other roles with fewer permissions, such as [Reviewers](https://docs.netlify.com/manage/accounts-and-billing/team-management/roles-and-permissions/#reviewer) and [Internal Builders](https://docs.netlify.com/manage/accounts-and-billing/team-management/roles-and-permissions/#internal-builder).
    
    Learn more about your options for provisioning with [SAML SSO on Netlify](https://docs.netlify.com/manage/security/secure-netlify-access/configure-organization-saml-sso/).
    
    [Permalink to SAML provisioning upgrades for assigning default roles Permalink](/changelog/2026-06-22-saml-provisioning-role-options/)
    
-   [
    
    ## React Router 8 is now supported on Netlify
    
    ](/changelog/2026-06-18-react-router-8-support/)
    
    June 18, 2026
    
    -   [framework](/changelog/tag/framework/)
    -   [remix](/changelog/tag/remix/)
    
    React Router 8 [was just released](https://remix.run/blog/react-router-v8) and is already supported on Netlify.
    
    The breaking changes are largely limited to these new minimums:
    
    -   Node.js 22.22.0+
    -   React 19.2.7+
    -   Vite 7+
    
    ## How to upgrade
    
    To upgrade your existing Netlify project follow the [React Router 8 upgrade guide](https://reactrouter.com/upgrading/v7) and upgrade the [Netlify React Router Vite plugin](https://npmx.dev/package/@netlify/vite-plugin-react-router) to v4.0.0+:
    
    ```
    npm i @netlify/vite-plugin-react-router@latest
    ```
    
    ## Try it now
    
    To deploy a brand new, React Router 8 application to Netlify, click this button:
    
    [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify/react-router-template)
    
    ## What you get
    
    Full framework feature support, [serverless](https://docs.netlify.com/build/functions/overview/) and [edge functions](https://docs.netlify.com/build/edge-functions/overview/) included, plus full Netlify platform emulation in local dev for you and your agents.
    
    -   [React Router on Netlify](https://docs.netlify.com/build/frameworks/framework-setup-guides/react-router/)
    -   [`@netlify/vite-plugin-react-router` release notes](https://github.com/netlify/remix-compute/releases/tag/vite-plugin-react-router-v4.0.0)
    
    [Permalink to React Router 8 is now supported on Netlify Permalink](/changelog/2026-06-18-react-router-8-support/)
    
-   [
    
    ## Project labels are now available on Pro
    
    ](/changelog/2026-06-12-project-labels-on-pro/)
    
    June 12, 2026
    
    -   [workflow](/changelog/tag/workflow/)
    
    Team Owners on the credit-based Pro plan can now create and assign labels to organize projects across their team, a capability previously limited to Enterprise.
    
    Use labels to group projects by environment, purpose, or team—for example, staging, marketing, or production—then filter and find projects faster from your team’s project list.
    
    Learn more in [Organize projects](https://docs.netlify.com/manage/projects/organize-projects/) in the Netlify documentation.
    
    [Permalink to Project labels are now available on Pro Permalink](/changelog/2026-06-12-project-labels-on-pro/)
    
-   [
    
    ## Environment variable size limit removed for Serverless Functions
    
    ](/changelog/2026-06-12-serverless-functions-env-var-size-limit-removed/)
    
    June 12, 2026
    
    -   [functions](/changelog/tag/functions/)
    
    You can now use as many environment variables as your Serverless Functions need. The 4KB total size limit on environment variables no longer applies to functions running on the current Netlify Functions runtime.
    
    This limit was a common source of friction. Teams with several API keys, connection strings, or feature flags could quietly bump into the cap and see their functions fail to deploy or run, often with confusing errors. With the limit gone, you no longer have to ration space or work around the ceiling for the configuration your functions legitimately need.
    
    The limit still applies to functions running in Lambda compatibility mode. If your functions are using Lambda compatibility mode and you want to remove the size limit entirely, consider upgrading to the current Netlify Functions runtime.
    
    Learn more about [environment variables in Netlify Functions](https://docs.netlify.com/build/functions/environment-variables/) in our documentation.
    
    [Permalink to Environment variable size limit removed for Serverless Functions Permalink](/changelog/2026-06-12-serverless-functions-env-var-size-limit-removed/)
    
-   [
    
    ## Netlify is now in the Cursor marketplace
    
    ](/changelog/2026-06-09-netlify-cursor-marketplace/)
    
    June 9, 2026
    
    -   [extensions](/changelog/tag/extensions/)
    -   [ai](/changelog/tag/ai/)
    
    Netlify is now listed in the [Cursor marketplace](https://cursor.com/marketplace/netlify), so you can connect your AI-assisted coding environment directly to Netlify without leaving your editor.
    
    Whether you’re spinning up a new project or iterating on an existing site, having Netlify available from within Cursor means fewer context switches between building and deploying.
    
    Find it at [cursor.com/marketplace/netlify](https://cursor.com/marketplace/netlify).
    
    [Permalink to Netlify is now in the Cursor marketplace Permalink](/changelog/2026-06-09-netlify-cursor-marketplace/)
    

[Previous page](/changelog/page/3) [Next page](/changelog/page/5)