Changelog

Subscribe to feed
  • Claude Fable 5 reactivated in AI Gateway

    Anthropic’s Claude Fable 5 model is once again available through Netlify’s AI Gateway with zero configuration required.

    Use the Anthropic SDK directly in your Netlify Functions without managing API keys or authentication. The AI Gateway handles everything automatically. Here’s an example using the Claude Fable 5 model:

    import Anthropic from '@anthropic-ai/sdk';
    export default async () => {
    const anthropic = new Anthropic();
    const response = await anthropic.messages.create({
    model: 'claude-fable-5',
    max_tokens: 4096,
    messages: [
    {
    role: 'user',
    content: 'How can AI improve my coding?'
    }
    ]
    });
    return new Response(JSON.stringify(response), {
    headers: { 'Content-Type': 'application/json' }
    });
    };

    Claude Fable 5 is available for all Function types. You get automatic access to Netlify’s caching, rate limiting, and authentication infrastructure.

    Learn more in the AI Gateway documentation.

    Permalink to Claude Fable 5 reactivated in AI Gateway
  • Nano Banana 2 Lite (Gemini 3.1 Flash-Lite Image) is now available in 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.

    Permalink to Nano Banana 2 Lite (Gemini 3.1 Flash-Lite Image) is now available in AI Gateway.
  • Claude Sonnet 5 now available in AI Gateway and Agent Runners

    Anthropic’s Claude Sonnet 5 model is now available through Netlify’s AI Gateway and Agent Runners with zero configuration required.

    Use the Anthropic SDK directly in your Netlify Functions without managing API keys or authentication. The AI Gateway handles everything automatically. Here’s an example using the Claude Sonnet 5 model:

    import Anthropic from '@anthropic-ai/sdk';
    export default async () => {
    const anthropic = new Anthropic();
    const response = await anthropic.messages.create({
    model: 'claude-sonnet-5',
    max_tokens: 4096,
    messages: [
    {
    role: 'user',
    content: 'How can AI improve my coding?'
    }
    ]
    });
    return Response.json(response);
    };

    Claude Sonnet 5 is available for all Function types and Agent Runners. You get automatic access to Netlify’s caching, rate limiting, and authentication infrastructure.

    Learn more in the AI Gateway documentation and Agent Runners documentation.

    Permalink to Claude Sonnet 5 now available in AI Gateway and Agent Runners
  • Functions redesigned for agents

    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. See the table below for a summary.

    FeatureWhat changedWhat it means for agentsWhat you need to do
    Event handlersExport typed event handlers from the default export objectTyped 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 functionsDeclare with background: true in config instead of the -background filename suffixType-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 selectionSet per-function via the region config property, replacing the global UI settingAgents 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 vCPUSet via memory or vcpu config properties; both values scale together automaticallyAgents 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()Named import from @netlify/functions, replacing the Netlify.context globalNamed 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, which has also been recently revamped.

    Permalink to Functions redesigned for agents
  • Astro 7 just works on Netlify

    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, and all other official integrations together. You can also check out the official migration guide.

    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 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 doc, or just click this button:

    Deploy to Netlify

    Permalink to Astro 7 just works on Netlify
  • Preview data changes in Netlify 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.

    Permalink to Preview data changes in Netlify Database
  • SAML provisioning upgrades for assigning default roles

    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 and Internal Builders.

    Learn more about your options for provisioning with SAML SSO on Netlify.

    Permalink to SAML provisioning upgrades for assigning default roles
  • React Router 8 is now supported on Netlify

    React Router 8 was just released 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 and upgrade the Netlify React Router Vite plugin 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

    What you get

    Full framework feature support, serverless and edge functions included, plus full Netlify platform emulation in local dev for you and your agents.

    Permalink to React Router 8 is now supported on Netlify
  • Project labels are now available on Pro

    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 in the Netlify documentation.

    Permalink to Project labels are now available on Pro
Next page