Vercel Ship 2025 – The focus of this year’s Vercel Ship event was on making AI development faster and safer. Here is a recap of all major releases and announcements:
⚡️ Sponsor
📙 Articles, Tutorials
How to think about data security in Next.js – All the past advice on Next.js data security is now in one place. The guide brings together best practices for data fetching, using a Data Access Layer, and keeping sensitive info off the client. It also covers new security features and input validation tips // Next.js
📦 Projects / Packages / Tools
Ultracite – Ultracite is a fast, zero-config code formatter and linter for Next.js, React, and TypeScript projects. It runs on Biome and Rust, automatically fixing code style and lint issues every time you save. It’s designed to keep code consistent for both teams and AI tools, with no setup required // Hayden Bleasel
iron-session – A stateless session library for Next.js that stores session data in encrypted cookies. No server-side storage is needed, and it works with API routes, the App Router, and server components // Vincent Voyer
Drizzle CRUD – Automatically generate CRUD operations for your Drizzle ORM schemas with built-in validation, filtering, pagination, soft deletes, and access control // Saas.js
Recharts v3.0.0 – Version 3 introduces a new state management system, improved accessibility, and support for custom components and portals. The update also fixes many bugs and adds new features for axes and tooltips // recharts
⚡️ Sponsor
OAuth integration doesn’t have to be a dreaded task – With Clerk’s latest OAuth improvements, you get out-of-the-box support for authorization flows: built-in consent prompts for users, robust token security, and support for public client use-cases. Perfect for teams using React, Next.js, or building AI-powered apps. // Clerk
🌈 Related
Tailwind is the worst form of CSS, except for all the others – Some devs love the productivity boost and built-in guardrails that TailwindCSS provides, others can’t stand the learning curve or the “class soup” it leaves behind. This article discusses the tradeoffs of adopting Tailwind and how it changes the way teams write CSS. // Darius Cepulis
► Watch this if you use shadcn/ui – Radix, the core of shadcn/ui, is facing maintenance issues. Key contributors have left, and open issues are piling up. Some in the community now see Radix as a risk for new projects and recommend Base UI and Aria Kit as alternatives // Theo - t3.gg
Using await at the top level in ES modules – With top-level await, you can write asynchronous code directly in ES modules without wrapping it in an async function. Perfect for fetching configs or loading modules on startup // Matt Smith
|