Post on: 2024-12-12Last edited: 2026-7-21Words 487Read Time 3 min

In early 2024, OpenAI moved ChatGPT's frontend from Next.js to Remix, and the frontend world talked about it for a while. Next.js is the default React framework for many teams, backed heavily by Vercel. When a company at OpenAI's scale switches, the natural question is: is Remix simply better, or was it better for that specific situation?

Where The Two Frameworks Come From

Next.js was created by Vercel, then called Zeit, in 2016. It was one of the earliest frameworks that made React server-side rendering feel usable out of the box. Over time, it added file-based routing, automatic code splitting, SSR, SSG, ISR, and many other features. For many React projects, it became the default answer.
Remix arrived later. It was released in 2021 by the React Router team with a different philosophy. It leans harder on web standards, avoids extra client-side machinery when possible, and lets the browser and server handle more of the work directly. Shopify acquired it later, which brought it into more production conversations.

How The Mental Models Differ

Take a common case: loading data on the server. In Next.js, the older pages-router style looks like this:

// pages/api/data.js
export async function getServerSideProps() {
  const res = await fetch('https://api.example.com/data')
  const data = await res.json()

  return {
    props: { data },
  }
}

In Remix, the same idea looks like this:

// app/routes/index.tsx
export async function loader() {
  const data = await fetch('https://api.example.com/data')
  return json(await data.json())
}

The code looks similar, but the mental model is different. Next.js treats the fetched data like page props. Remix treats data loading as part of the route itself. Each route has its own loader and action, and UI, forms, and data flow are tied to the route hierarchy.

Why OpenAI Moved

According to the Remix post about OpenAI's migration, server-side rendering time dropped from around 300ms to around 180ms. The number is interesting, but the reason matters more. Remix's "web standards plus server-first" approach can be more stable under heavy traffic. Smaller client JavaScript means faster initial load. Native form behavior also means less dependence on expensive client hydration.
ChatGPT is a high-traffic, highly interactive, state-heavy application. Every millisecond gets multiplied by an enormous number of users. In that setting, the "full-featured" nature of Next.js can become weight, while Remix's lighter approach can become an advantage.

How I Would Choose

For a personal project, blog, or marketing site, I would still usually pick Next.js without much hesitation. The ecosystem is mature, deployment is easy, and Vercel support is excellent.
For a large server-driven product, especially one where the team is willing to think in web-standard terms, Remix deserves a serious look. OpenAI's migration at least proves one thing: in the right environment, a framework that does less can save real money.

References

Follow updates

Use open feeds for new articles, research, and important updates.


Loading...
Statsify Finance: Technical Breakdown

Statsify Finance: Technical Breakdown

A product and architecture walkthrough for Statsify Finance, covering its analysis, strategy, article, search, and finance-term pages, plus the Next.js, Tailwind, Ant Design, ECharts, MongoDB, and TypeScript stack behind it.


MCP Is Infrastructure, Not the Ultimate AI Solution

MCP Is Infrastructure, Not the Ultimate AI Solution

MCP standardizes how AI apps connect to tools, resources, prompts, and external systems. It is useful infrastructure for reducing integration glue, but it does not replace permissions, confirmations, logging, threat modeling, or tool-safety design.