• next-forge 6 is now available

    next-forge is a production-grade Turborepo template for Next.js apps, designed to be a comprehensive, opinionated starting point for new apps.

    This major release comes with a number of DX improvements, an agent skill, and new guides for quickstart, Docker, and migration paths.

    next-forge skill

    You can now install a next-forge skill into your preferred agent, giving it structured knowledge of next-forge architecture, packages, and common tasks.

    npx skills add vercel/next-forge

    Bun by default

    The default package manager is now Bun. The CLI init script detects your current package manager before prompting, and pnpm, npm, and yarn are still supported through the init flow.

    Graceful degradation

    Every optional integration now silently degrades when its environment variables are missing, rather than throwing an error. Stripe, PostHog, BaseHub, and feature flags all return safe defaults. The only required environment variable to boot the project is DATABASE_URL.

    New guides

    The quickstart guide gets you to a running dev server in a few minutes with just Clerk and a Postgres database.

    There is also a new Docker deployment guide and migration guides are available for Appwrite (auth, database, storage), Convex (database), and Novu (notifications).

    Read the documentation to get started.

  • AI Elements 1.9 is now available

    npx ai-elements

    AI Elements 1.9 adds new components, an agent skill, and a round of bug fixes across the library.

    AI Elements skill

    You can now install an AI Elements skill into your preferred agent, giving it a better understanding of how to build and use composable AI interfaces.

    npx skills add vercel/ai-elements

    <JSXPreview />

    The new <JSXPreview /> component renders JSX strings dynamically, supporting streaming scenarios where JSX may be incomplete. It automatically closes unclosed tags during streaming, making it a good fit for displaying AI-generated UI in real time.

    npx ai-elements@latest add jsx-preview

    <PromptInputActionAddScreenshot />

    A new <PromptInput /> sub-component that captures a screenshot of the current page, useful for giving visual feedback to AI models.

    npx ai-elements@latest add prompt-input

    Download conversations

    The <Conversation /> component now includes an optional button that downloads the conversation as a markdown file.

    Read the documentation to get started.

  • Deprecating the DHE cipher suite for TLS connections

    On June 30th, 2026, Vercel will remove support for the legacy DHE-RSA-AES256-GCM-SHA384 cipher suite.

    This cipher may still be used by automated systems, security scanners, and HTTP clients with non-standard TLS configurations.

    After this date, clients using TLS 1.2 will only be able to connect to the Vercel network with our six remaining cipher suites:

    • ECDHE-ECDSA-AES128-GCM-SHA256

    • ECDHE-RSA-AES128-GCM-SHA256

    • ECDHE-ECDSA-AES256-GCM-SHA384

    • ECDHE-RSA-AES256-GCM-SHA384

    • ECDHE-ECDSA-CHACHA20-POLY1305

    • ECDHE-RSA-CHACHA20-POLY1305

    Modern clients and TLS 1.3 connections are unaffected.

    If you operate integrations or automated systems that connect to a domain hosted on Vercel over TLS 1.2, verify that your TLS client supports at least one of the above cipher suites. Modern TLS libraries support these by default.

  • Vercel Flags are now optimized for agents

    The Vercel CLI now supports programmatic flag management, giving teams a direct way to create and manage feature flags from the terminal without opening the dashboard.

    vercel flags create my-flag

    Add the Flags SDK skill

    Building on this foundation, the Flags SDK skill lets AI agents generate and manage flags through natural language prompts.

    The skill leverages the CLI under the hood, enabling agents to implement server-side evaluation that prevents layout shifts and maintains confidentiality. Using the SDK's adapter pattern, agents can connect multiple providers and evaluate user segments without rewriting core flag logic.

    npx skills add vercel/flags

    Once added, try prompting your agent with this prompt to create your first flag.

    Add a feature flag for setting up a new promotion banner

    Start generating flags with the Flags SDK skill.

  • Subscribe to webhook events for Vercel Flags

    You can now subscribe to webhook events for deeper visibility into feature flag operations on Vercel.

    New event categories include:

    • Flag management: Track when teams create, modify, or delete flags across your project.

    • Segment management: Receive alerts when segments are created, updated, or deleted.

    These events help teams build monitoring directly into their workflows. You can track the complete lifecycle of your flags, monitor changes across projects, and integrate feature flag data with your external systems.

    Read the documentation to start tracking feature flag events.

  • Chat SDK adds WhatsApp adapter support

    Chat SDK WhatsApp OG image

    Chat SDK now supports WhatsApp, extending its single-codebase approach to Slack, Discord, GitHub, Teams, and Telegram with the new WhatsApp adapter.

    Teams can build bots that support messages, reactions, auto-chunking, and read receipts. The adapter handles multi-media downloads (e.g., images, voice messages, stickers) and supports location sharing with Google Maps URLs.

    Try the WhatsApp adapter today:

    import { Chat } from "chat";
    import { createWhatsAppAdapter } from "@chat-adapter/whatsapp";
    const bot = new Chat({
    userName: "mybot",
    adapters: {
    whatsapp: createWhatsAppAdapter(),
    },
    });
    bot.onNewMention(async (thread, message) => {
    await thread.post(`You said: ${message.text}`);
    });

    The adapter does not support message history, editing, or deletion. Cards render as interactive reply buttons with up to three options, and fall back to formatted text. Additionally, WhatsApp enforces a 24-hour messaging window, so bots can only respond within that period.

    Read the documentation to get started or browse the adapters directory.

    Special thanks to @ghellach, whose community contribution in PR #102 laid the groundwork for this adapter.

  • Improved data collection for Web Analytics and Speed Insights with resilient intake

    Web Analytics and Speed Insights version 2 introduces resilient intake to improve data collection reliability. By dynamically discovering endpoints instead of relying on a single predictable path, the new packages ensure you capture more complete traffic and performance data.

    To utilize resilient intake, update your packages and deploy your changes. No other configuration is required, and existing implementations will continue working as before. It's available to all teams at no additional cost.

    Install the latest versions

    npm install @vercel/analytics@latest

    npm install @vercel/speed-insights@latest

    These packages include a license change from Apache-2.0 to MIT to align with other open source packages. Nuxt applications can leverage Nuxt modules for a one-line installation of Speed Insights and Web Analytics.

    Update your packages to capture more data, or explore the Web Analytics documentation and Speed Insights documentation.

    Damien Simonin Feugas

  • Chat SDK adds PostgreSQL state adapter

    Chat SDK now supports PostgreSQL as a state backend, joining Redis and ioredis as a production-ready option with the new PostgreSQL adapter.

    Teams that already run PostgreSQL can persist subscriptions, distributed locks, and key-value cache state without adding Redis to their infrastructure.

    Try the PostgreSQL state adapter today:

    import { Chat } from "chat";
    import { createPostgresState } from "@chat-adapter/state-pg";
    const bot = new Chat({
    userName: "mybot",
    adapters: {
    /* ... */
    },
    state: createPostgresState(),
    });

    The adapter uses pg (node-postgres) with raw SQL queries and automatically creates the required tables on first connect. It supports TTL-based caching, distributed locking across multiple instances, and namespaced state via a configurable key prefix.

    Read the documentation to get started or browse the adapters directory.

    Special thanks to @bai, whose community contribution in PR #154 laid the groundwork for this adapter.