I’ve been trying to write this post at least a dozen times. I don’t mean this figuratively; at one point, I literally had a desktop folder with a dozen abandoned drafts.
Oracle has just issued its latest reply in the ongoing proceedings at the US Trademark and Patent Office. We’re now waiting on the USPTO to weigh in—this is the moment when public attention matters.
Reconciliation is the process by which React updates the DOM to match your component tree. It’s what makes React’s declarative programming model possible - you describe what you want, and React figures out how to make it happen efficiently.
Fixing performance issues in the real world means bridging the gap between your development environment and the diverse performance experiences of your users. In this post, we'll look at new features in Chrome DevTools that help you base more of your performance debugging decisions on real data rather than guesswork.
A step-by-step guide to shrinking your React bundle with a real example. In this post, I’ll show you 7 proven ways to reduce bundle size and speed up your builds — with a real demo you can try.
Cover Flow – the iconic carousel of tilted album covers made famous by Apple in the late 2000s – remains a visually striking UI pattern. Originally seen in iTunes and Mac OS X Finder, Cover Flow let users flip through items as if browsing a tangible collection.
Anthropic Claude 3.7 Sonnet, Claude 3.5 Sonnet, OpenAI o3-mini, and Google Gemini Flash 2.0 are now generally available in GitHub Copilot. With this change, these models are promoted from preview release terms to generally available release terms.
Microservices changed how we build software by breaking systems into composable, independently deployable units. But as systems scale, so does the cognitive and operational load on developers — tracking dependencies, debugging across services, and managing deployments.
Over the last few months, our Node.js team has explored how to leverage large language models (LLMs) using JavaScript, TypeScript, and Node.js. With TypeScript/JavaScript often being the second language supported by frameworks used to leverage LLMs, we investigated various frameworks to see how easy they are to use and how they might affect the results we get.
Pinterest Search is one of the key surfaces on Pinterest where users can discover inspiring content that aligns with their information needs. Search relevance measures how well the search results aligned with the search query.
In JavaScript, code has color: It is either synchronous or asynchronous. In this blog post, we explore: The key problem is that synchronous code can’t call asynchronous code. On one hand that introduces a lot of duplication:
Last week, we published CVE-2025-29927 and patched a critical severity vulnerability in Next.js. Here’s our post-incident analysis and next steps. On 27 Feb 2025 06:03:00 GMT, the vulnerability was disclosed to the Next.js team through GitHub private reporting.
Learn how to instantly improve online viewing experience for your users by embracing the new AV1 video format that is already supported by Chrome, Safari and Firefox. This short guide will also show how to replace your GIF’s with videos, using AV1 or H.
There's a subset of request headers that can't be modified by a spec-compliant user agent. Let's explore why they're useful for determining how and for what purpose a request was triggered.
Here’s a CSS technique that produces blurry image placeholders (LQIPs) without cluttering up your markup — Only a single custom property needed! Granted, it’s a very blurry placeholder especially in contrast to other leading solutions.
Your browser extensions could be secretly sold to malicious actors without your knowledge. What starts as helpful tools created by passionate developers can transform into dangerous spyware when sold to the highest bidder.
Full article
Native speed for parsing and type checking is wonderful. I also want the huge benefits of writing lint rules in an ecosystem's primary language. Here's how I think we can have both. It’s an exciting time for web dev tooling.
For years, I dodged React like the plague. In fact, I avoided JavaScript altogether, even in web-related tasks. Take static site generators, for example. For my old chemistry blog, I experimented with a variety of tools, year by year: Pelican, Jekyll, Hugo, Grav... In the end, I settled on Zola.
You may not hear them, but they’re there. Working in the background adjusting code, optimizing layouts, handling repetitive tasks — AI agents have been quietly infiltrating frontend development.
Maintaining and contributing to open source projects can be rewarding—but it comes with a lot of small, repetitive tasks. The good news? GitHub Actions can automate the more tedious and error-prone parts of maintainership, freeing you up to focus on what matters: building and growing your community.
Picking the technology stack for a project is an important and consequential decision. In the enterprise space in particular, it often involves a multi-year commitment with long-lasting implications on the roadmap of the project, the pace of its development, the quality of the deliverables, and even the ability to assemble and maintain a happy team.
Very applied queue theory. There’s a well-known rule of thumb that one queue is better than two. When you’ve got or people waiting to check out at the supermarket, having a single shared queue improves utilization and reduces wait times.
Usability testing with disabled users will highlight accessibility barriers missed in typical accessibility audits. I was speaking about “alt text” all the way back in the early 90’s. I’m still raising awareness about that.
After an engaging discussion about the front-end and full-stack market, I couldn’t stop wondering: Are my skills and interests in demand? While there are plenty of development-related surveys, the results gauge preference and interest, not demand.
I’ve needed this before - a couple of times. Third time I figured I needed something small, nimble - yet complete. And - at the same time - wondering about how to do it in a very simple manner. I think it worked out great, so let’s dig in. Most UIs will have some form of undo functionality.
Updated for Next.js 15. When it comes to deploying a Next.js app to production, generally everyone thinking starts from Vercel, and ends with Netlify, Firebase type providers. Not only are these providers very expensive, but they also have a lot of limitations.
It feels like almost everyone building AI applications and agents is talking about the Model Context Protocol (MCP), as well as building MCP servers that you install and run locally on your own computer. You can now build and deploy remote MCP servers to Cloudflare.
Vite comes from the French word for “quick”, but is it really? I’ve spent the last 3, almost 4 years building our web app at Particl with Next.js. For the most part, it has been a great, productive experience.
The Node.js Technical Steering Committee (TSC) has officially voted to stop distributing Corepack with future versions of Node.js. The decision, made via an encrypted ballot, will impact future releases of Node.js (i.e. 25+), though Corepack will remain available in Node.
Having a monolithic architecture has many advantages. One big advantage is that everything is in a single place. There is often one domain name, one service, one database, one release pipeline etc. It makes things reasonably simple.
The software industry is experiencing its most significant transformation since cloud computing. AI is fundamentally changing how we build, operate, and interact with software. As someone who has observed and written about major recent industry shifts from SOA to microservices, and from containers to serverless I see AI driving an even more profound change.
When people think about omnichannel retail experiences, they often start by considering in-store and digital as two distinct elements. But for a modern retailer, in-store is just another kind of digital, sometimes referred to as “phygital”.
Retrieval-Augmented Generation (RAG) lets you enhance large language model (LLM) applications by supplementing your users’ prompts with context from internal sources. For instance, you may want to provide an internal chatbot to your employees.
As the new year approaches, it’s a time of reflection, and this extends into the workplace. So I thought I’d share some of my own personal “do’s” and “don’ts” at work, which I’ve formulated throughout the years.
Some critics question the agnostic nature of Web Components, with some even arguing that they are not real components. Gabriel Shoyomboa explores this topic in-depth, comparing Web Components and framework components, highlighting their strengths and trade-offs, and evaluating their performance.
In this post, I talk about vite-ssg-react, which is an attempt to configure Vite so that we may use React to write static websites. E.g.: Vite is an awesome bootstrapping tool, but the assumed use case is that you're writing a SPA.
Buttons are essential to making dynamic web applications. Buttons open menus, toggle actions, and submit forms. They provide the foundation of interactivity on the web. Making buttons simple and accessible can lead to some surprising challenges.
The year 2024 got me excited about React's ecosystem again. Despite the various challenges and dramas (the biggest one of them moving React to the server with React Server Components) we had last year, there are emerging React trends that everyone should have on their watchlist.
As a frontend developer who has spent years working with complex TypeScript codebases, I’ve learned that solid linting is essential for maintaining long-term code quality.
See this post for inspiration. Over the past few months, I’ve moved as much code as possible away from Next.js. While I see why people are attracted to it and its growing ecosystem, I am no longer sipping the KoolAid.
The Document Picture-in-Picture API (Document PiP API) lets web applications open a floating, always-on-top window (a picture-in-picture window) that can display any arbitrary HTML content.
There's been a whole lot of discussion recently about the impact of AI on the market for web developers, for programmers in general, and even more generally the entire labor market.
One important facet of running production software is observability—monitoring logs, traces, and metrics so you can identify and fix issues quickly. In Node.js servers, adding observability isn’t trivial. You have to add instrumentation code, modify your logger, and configure various services.
This guide will cover how you can build APIs with Next.js, including setting up your project, understanding the App Router and Route Handlers, handling multiple HTTP methods, implementing dynamic routing, creating reusable middleware logic, and deciding when to spin up a dedicated API layer.
No matter where you are in your coding career, you will likely come across a new codebase or problem domain that is completely unfamiliar to you. Because codebases can be filled with many layers of design patterns, bugfixes, and temporary workarounds, learning a new one can be a time-consuming and frustrating process.
In this post, we will dive into how ECMAScript engines store variables, go over storage optimizations, and learn about scope analysis. If you are an ECMAScript developer, you will get some practical tips to improve the performance of your code.
SkyPilot uses the venerable SQLite for state management. SQLite can handle millions of QPS, and terabytes of data. However, our efforts to scale our Managed Jobs feature ran up against the one downfall of SQLite: many concurrent writers.
The Jotai store API was introduced in Jotai v2. Before v2, it was an internal API. Jotai conceptually functions like a WeakMap, and the store API is designed to reflect that. By the way, Jotai’s implementation internally uses multiple WeakMaps.
AI for coding is in a weird spot right now. You get people claiming that you can build a complete SaaS in 3 days, and others saying that it's worse than useless. Both of these people are probably just exaggerating or straight up lying.
Astro 5.4 brings remote image optimization in Markdown, enhanced security for dev and preview servers, RegExp support for Vercel ISR excludes, and more! To upgrade an existing project, use the automated @astrojs/upgrade CLI tool.